15. januar 2009 - 19:22Der er
12 kommentarer og 1 løsning
hjælp til en blog
Hej eksperter...
Jeg sidder og arbejder lidt med et forum hvor jeg har nogle kategorier. den del virker fint. men mit problem er at de indlæg jeg lægger ind under mine kategorier vil ikke blive vist. jeg kan ikke rigtig finde ud af hvorfor.
her kommer min side hvor jeg skal have indlægende vist.
liste.php
<table border="0" width="600" cellpadding="0" cellspacing="0" align="center"> <tr> <td width="70" height="20" align="center">Dato</td> <td width="330" height="20" align="center">Overskrift</td> <td width="100" height="20" align="center">Navn</td> <td width="50" height="20" align="center">Stgr</td> <td width="50" height="20" align="center">Svar</td> </tr> <?php *** $sql = mysql_query("select bid, title, dato, navn, stgr, cat from blog where cat='$cid' order by dato") or die(mysql_error()); if(mysql_num_rows($sql)) { while($row1 = mysql_fetch_array($sql)) { echo '<tr><td>'.$row1['dato'].'</td><td><a href="#">'.$row1['titel'].'</a></td><td>'.$row1['navn'].'</td><td>'.$row1['stgr'].'</td><td></td></tr>'; } } else { echo '<tr><td colspan="5" height="450" align="center" valign="middle">Det er ingen indlæg endnu...</td></tr>'; } ?> </table>
*** der hvor jeg har dette stående cat='$cid' skulle gerne have gjort det at den skulle hente alle de indlæg som ligge i den kategori der hedder 1, 2, 3 osv. Men desværre har jeg bare en helt blank skærm. i får lige det link jeg bruger for at komme ind til den side der hedder liste.php
her er scriptet med linket i.
<?php $sql = mysql_query("select * from blogcat order by cat") or die(mysql_error()); if(mysql_num_rows($sql)) { while($row1 = mysql_fetch_array($sql)) { echo'<tr><td width="600"><a href="razzia.php?valg=liste$$cid='.$row1['cid'].'">'.$row1['cat'].'</a></td></tr>'; } } else { echo '<tr><td width="600" height="450" align="center" valign="middle">Der er ikke nogen indlæg endnu</td></tr>'; } ?>
Hvis du ikke har register_globals slået til. Så skal du ændre: $sql = mysql_query("select bid, title, dato, navn, stgr, cat from blog where cat='$cid' order by dato") or die(mysql_error()); til: $sql = mysql_query("select bid, title, dato, navn, stgr, cat from blog where cat='" . $_GET['cid'] . "' order by dato") or die(mysql_error());
Dog vil den være unescaped, og derfor åben for sql injections. Så derfor bør du nok istedet skrive noget i stil med:
if (ctype_digit($_GET['cid']) { $cid = $_GET['cid']; } else { $cid = 0; } $sql = mysql_query("select bid, title, dato, navn, stgr, cat from blog where cat='" . $_GET['cid'] . "' order by dato") or die(mysql_error());
Ved så heller ikke om de 3 stjerner foran $sql er bevidst... Men de burde ikke være der.
typo fix: if (ctype_digit($_GET['cid']) { $cid = $_GET['cid']; } else { $cid = 0; } $sql = mysql_query("select bid, title, dato, navn, stgr, cat from blog where cat='" . $_GET['cid'] . "' order by dato") or die(mysql_error());
Skulle være: if (ctype_digit($_GET['cid'])) { $cid = $_GET['cid']; } else { $cid = 0; } $sql = mysql_query("select bid, title, dato, navn, stgr, cat from blog where cat='" . $_GET['cid'] . "' order by dato") or die(mysql_error());
splazz har jeg lave en fejl i denne del. for den vil ikke hente min bid fra min blog tabel
$sql = mysql_query("select * from blog where cat='$cid' order by dato") or die(mysql_error()); if(mysql_num_rows($sql)) { while($row1 = mysql_fetch_array($sql)) { echo '<tr><td>'.$row1['dato'].'</td><td><a href="razzia.php?valg=visblog&bid="'.$row1['bid'].'"" style="color:000066;">'.$row1['title'].'</a></td><td>'.$row1['navn'].'</td><td>'.$row1['stgr'].'</td><td></td></tr>'; } } else { echo '<tr><td colspan="5" height="450" align="center" valign="middle">Det er ingen indlæg endnu...</td></tr>'; }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.