Gå til innhold

Anbefalte innlegg

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 av kennteh
Lenke til kommentar
Videoannonse
Annonse

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...