Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Vain ensimmäinen mysql tieto näkyy

alker [03.07.2009 19:04:07]

#

Eli tälläinen on koodi

<?php
include("session.php");
include("fun.php");
yhdista();
$id = $_GET['id'];
$sql = "Select * from kommenttit  where tiedosto = '$id' order by tunnus";
$mysql = mysql_query($sql);
$rivi2 = mysql_fetch_assoc($mysql);
?>
<form method="POST" action="kirjoita.php?id=<?php echo $_GET['id']?>">
<input type="text" name="kommentti" value="Kommentti"><br>
<input type="submit" value="lähetä!">
</form>
<?php
while ($rivi = mysql_fetch_assoc($mysql)) {
echo "<br>Lähettäjä:",$rivi['tunnus'],"<br>";
echo "Kommentti:",$rivi['kommentti'],"<br><hr><br>";
}
?>
<link rel="stylesheet" type="text/css" href="style.css">

Sivustolla tuo on iframessa. Kertokaa mikä on vika

TeNDoLLA [03.07.2009 20:12:13]

#

Tuolla sun antamalla id:llä ei löydy kun yks tietue kenties?

alker [03.07.2009 20:35:08]

#

TeNDoLLA kirjoitti:

Tuolla sun antamalla id:llä ei löydy kun yks tietue kenties?

Kyllä löytyy... siinä se ihme onkin :P

Chiman [03.07.2009 21:54:56]

#

Ensimmäisen rivin otat $rivi2-muuttujaan, muttet käytä sitä mihinkään. Toisesta eteenpäin tulostat while-silmukassa. Se on tarkoituskin?

Lisäksi sijoitat käyttäjän syötteen kyselyyn sellaisenaan, mikä on iso tietoturva-aukko.

ajv [03.07.2009 21:55:00]

#

Mikä tuon rivin tarkoitus on?
$rivi2 = mysql_fetch_assoc($mysql);
Tuon mysql_fetch_assoc()-funktion kutsuminen siirtää pointterin seuraavaan riviin, eli ymmärtäisin, jos kysymyksesi olisi: miksi ensimmäinen tieto ei näy?

Tulosta tuo $sql-muuttujan sisältö sivulle ja liitä se phpMyAdminiin tai vastaavaan ja katso mitä saat sieltä tulokseksi.

Edit: Chimankin ehti toteamaan saman tässä välissä ja tarkennuksena tuohon tietoturvaaukkoon, katso miltä kyselysi näyttää, kun kirjoitat osoiteriville
?id=1'; DROP TABLE kommentit;
:)

alker [03.07.2009 22:08:15]

#

Jep While muuttujalla on tarkoitus. Tuo $rivi2 oli tarkoitus tarkistaa oliko olemassa yhtään kommenttia. Poistin tuon ja hyvin pelaa

ajv [03.07.2009 22:23:10]

#

Voit tarkistaa löytyikö yhtään kommenttia mysql_num_rows()-funktiolla.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta