On Wed, 17 Apr 2002 21:41:51 +0200, "Allan Johansen"
<hesselbjerg@adslhome.dk> wrote:
>
>"Johan Holst Nielsen" <johan@weknowthewayout.com> wrote in message
>news:3CBB70EB.11793930@weknowthewayout.com...
>> Pas på... det kan gå hen og blive en stort sikkerhedshul!
>> Den database du bruger skal forhåbentlig KUN indeholde offentlige
>oplysninger.
>> (Alle ingen tabeller med logs, passwords eller ligende?).
>>
>> Så gennemtænkt den lige en ekstra gang....
>> Lav hellere en include fil f.eks.
>> $TabelID = array(1=>"tabel_nyheder", 2=>"tabel_artikler");
>> og kald den med filnavn?tid=1
>> Dermed henter du bare tabelnavnet serverside via $TabelNavn =
>$TabelID[$tid];
>
>Hej NG
>
>Jeg takker for svarerne til mit indlæg, jeg har fået det Kasper Damkjær
>skrev til at virke, men er ikke helt sikker på, at jeg helt forstår, hvad
>Johan Holst Nielsen skriver, jeg ved godt hvad en include fil er, men
>forstår ikke helt det med variablen [$tid], men jeg vil helt sikkert give
>det en chance, da jeg helt klart gerne vil have sikkerheden med. I dette
>tilfælde er det ikke noget hemmeligt, for det går jo netop ud på at få mine
>artikler vist.
Det Johan Holst mener er at, der er lidt stor risiko at bruge tabel
linket, da du så kan skrive en_eller_anden_hemmelig_tabel også faktisk
få adgang til den!
Så du skal nok kigge lidt mere på en anden måde at lave din database
på
et eks kunne være:
tabel - kategorier
tabel - artikler
tabel - kategorier kunne indeholde følgende:
id, navn, beskrivelse
1 - katteadfaerd - Her kan du læse om kattens adfærd
tabel - artikler kunne indeholde følgende:
id, kat_id, overskrift, tekst (plus mere hvis du ønsker det)
Så kunne en forspørgel lyde følgende
$sql = mysql_query("SELECT * FROM kategorier");
while(.......) {
print "<a href='artikeloversigt.php?tabel=$id'>Læs om $navn</a>";
}
og på artikeloversigt.php
$sql = mysql_query("SELECT * FROM artikler WHERE kat_id = '$tabel'");
while(...) {
print "<a href='readartikel.php?tabel=$tabel&id=$id'>Læs om
$navn</a>";
}
og på readartikel.php
$sql = mysql_query("SELECT * FROM artikler WHERE kat_id = '$tabel' AND
id = '$id'");
while(...) {
print "jajajjaaj";
}
>
>Hvad så hvis jeg f.eks har dette link: a
>href="artikeloversigt.php?tabel=katteadfaerd"
>Så får jeg en artikeloversigt frem over de artikler som findes i tabellen
>katteadfaerd, men hvad så hvis jeg fra et link på denne side vil hente en
>artikel frem ud fra id'et og igen gerne vil angive fra hvilken tabel
>artiklen skal hentes?
artikeloversigt.php
udskriver alle de artikler som nu findes, i tabellen katteadfaerd :)
eks. på en artikeloversigt:
Man har lige trykket på et link som hedder
<a href="artikeloversigt.php?tabel=katteadfaerd">se artiler om
katteadfærd</a>
<?php
åbne forbindelse til mysql server blablabla
select database blablabla
$sql = mysql_query("SELECT * FROM $tabel") OR DIE (mysql_error());
while($row = mysql_fetch_array($sql)) {
print "<a href='readartikel.php?id=$row[id]&tabel=$tabel'>Læs mere
om $row[overskrift]</a><br />";
}
?>
Så trykker man på et af linkene
også åbner readartikel.php
som kunne skrives på noget ala
<?php
$sql = mysql_query("SELECT overskrift,tekst FROM $tabel WHERE
id='$id'") OR DIE (mysql_error());
list($overskrift,$tekst) = mysql_fetch_row($sql);
print $tekst;
print $overskrift;
?>
>
>Er det så "bare" <a href="vis.artikel.php?tabel=katteadfaerd&id=$id">læs
>mere</a> lige nu står det som nedenstående
>
>print "<td width=100% valign=top class=artikeltekst>"; if($row[id]) echo "<A
>HREF=\"vis_artikel.php?id=".$row[id]."\">Læs mere</A>";"</td>\n";
>
>
>Jeg er desværre ret ny i PHP, så jeg beklager, hvis mine spørgsmål lyder
>lidt dumme, men et eller andet sted skal jeg jo starte
>
Håber du fik svar nok, ellers bare spørg løs, men du har lige været
skyld i en krampe i min finger