Knebba Skrevet 26. mars 2008 Del Skrevet 26. mars 2008 (endret) holder på å lage et kommentarsystem for nyhetssiden min, men sliter med å få tellt opp hvor mange kommentarer det finnes for hver nyhet. while($rad = mysql_fetch_array($resultat)) { $id = $rad['id']; $koments = mysql_query("SELECT COUNT(id) FROM nyheter_koment WHERE nyhetid = $id") or die(mysql_error()); echo "<p><b>" . @$rad[tittel] . "</b><br>\n"; echo nl2br("" . @$rad[nyhet] . "\n"); echo "Skrevet av: <b>$rad[forfatter]</b> - <b>$rad[dato]</b></p>"; echo "kommentarer ($koments)\n"; echo "<hr>\n"; } der antallet kommentarer skal komme ut kommer det bare "kommentarer (Resource id #X)" hva kan være feilen? det er vel sql-koden? Endret 26. mars 2008 av kennteh Lenke til kommentar
Knebba Skrevet 26. mars 2008 Forfatter Del Skrevet 26. mars 2008 fant ut av det: while($rad = mysql_fetch_array($resultat)) { $id = $rad['id']; echo "<p><b>" . @$rad[tittel] . "</b><br>\n"; echo nl2br("" . @$rad[nyhet] . "\n"); echo "Skrevet av: <b>$rad[forfatter]</b> - <b>$rad[dato]</b></p>"; $res = mysql_query("SELECT COUNT(*) FROM nyheter_koment WHERE nyhetid = $id") or die(mysql_error()); $row = mysql_fetch_array($res); echo "<a href=\"filer/nyhetkoment.php\" target=\"_blank\" class=\"side\">Kommentarer ($row[0])</a>"; echo "<hr>\n"; } Lenke til kommentar
Knut Urdalen Skrevet 26. mars 2008 Del Skrevet 26. mars 2008 Bra du fant ut av det Har i tillegg et par tips til deg: 1. @ er et litt ondt tegn i PHP og du bør ha en meget god grunn til å bruke det (den fjerner alle feilmeldinger som evt. kommer fra påfølgende uttrykk - feilsituasjoner bør gjøres på andre kontrollerte måter) f.eks: <?php $tittel = isset($rad['tittel']) ? $rad['tittel'] : 'Ukjent' ?> 2. Har ikke sett hele koden din, men har en mistanke om at den er sårbar for SQL injections basert på det du viser til over. Dersom du bruker input fra brukeren i SQL'en din og du ikke har filtrert denne godt nok (escape tegn som betyr spesielle ting i SQL) så tar det ikke lang tid før noen er litt kreative å f.eks sletter all dataen din i databasen med en DELETE FORM eller TRUNCATE. Les mer på: http://en.wikipedia.org/wiki/SQL_injection og http://en.wikibooks.org/wiki/Programming:PHP:SQL_Injection Lenke til kommentar
Manfred Skrevet 27. mars 2008 Del Skrevet 27. mars 2008 Næmmen. Velkommen til forumet, Knut ^^ Som Kaffenils er en anelse opptatt av: Bruk parametriserte spørringer. Ikke bygg opp spørringen direkte som en string hvor man bare adder inn stringer. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå