Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Skalle
HV vaatleja
liitunud: 19.11.2013
|
19.11.2013 03:56:47
mysql+rida+php |
|
|
Olen seiemaani kõik vastused veebist leidnud. Sedakorda on tõsine probleem. Ei oska mysql tabeli ühte rida välja näidata. Panen selle koodijupi ka ligi:
$kysi = mysql_query("SELECT * FROM andmed WHERE Number = '".$_POST['number']."'")or die(mysql_error());
$tulem = mysql_query($kysi);
while ($rida = mysql_fetch_row($tulem));
{
echo $rida;
}
Kuda edasi minna, vajalik oleks, et tabeli rida läheks erinevate html inputide vahele laiali. Samas pole see päring mingit tulemust andnud, isegi mitte errorit. Otse konsooli kaudu tehtud päring näitab seda, mida on küsitud.
Ette tänades Skalle.
|
|
tagasi üles |
|
 |
raitl
HV veteran

liitunud: 20.01.2002
|
19.11.2013 08:28:00
|
|
|
WHILE loopi tingimuse taga on sul üleliigne semikoolon.
$kysi = mysql_query("SELECT * FROM andmed WHERE Number = '".$_POST['number']."'")or die(mysql_error());
$tulem = mysql_query($kysi);
($rida = mysql_fetch_row($tulem))
{
echo $rida;
} |
|
|
Kommentaarid: 166 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
147 |
|
tagasi üles |
|
 |
limp
HV Guru

liitunud: 11.08.2003
|
19.11.2013 09:43:10
|
|
|
ja $rida on array, seega tuleks see print_r($rida);
_________________ Ärgake lapsed, maailm on hädaohus
Windows keskkond on nagu li*s - kõik teda ke*ivad aga keegi teda ei armasta! |
|
Kommentaarid: 56 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
52 |
|
tagasi üles |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
19.11.2013 18:15:23
|
|
|
Viga on sul päris alguses
php:
|
//siin juba teed päringu //ja nüüd üritad teha päringut eelmise päringu resultset'ga { }
|
Õige oleks
php:
|
$kysi = "SELECT * FROM andmed WHERE Number = '".$_POST['number']."'"; { }
|
Olenevalt sellest mida soovid, ei pruugi mysql_fetch_row teha päris seda mida soovid. Vaata ka funktsioone mysql_fetch_array ja mysql_fetch_assoc
Ja nüüd veel üks ohtlik koht:
$kysi = "SELECT * FROM andmed WHERE Number = '".$_POST['number']."'";
Mis siis saab kui kasutaja sisestab numbriks näiteks '#
Toksi googlesse näiteks sql injection ja saad teada, mida kurja pahatahtlik kasutaja sellise lahendusega teha saab.
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
60 |
|
tagasi üles |
|
 |
Skalle
HV vaatleja
liitunud: 19.11.2013
|
22.11.2013 13:53:29
|
|
|
Tänud vastamast, sain selle kenasti tööle. Kuna kasutajate ring on suhteliselt väike ja ligipääs parooliga kaitstud, siis ma eriti ei muretse, mida nad sinna sisestavad. Uue tellimuse number genereeritakse automaatselt. See, mille kohta ma küsisin, on tellimuse muutmise, st. andmete lisamise koht.
|
|
tagasi üles |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
22.11.2013 15:13:43
|
|
|
Ja kasutaja&parooli kontrollimine on lahendatud kuidas? Kui seda samuti SQL injection abil rünnata saab, siis saab ka ilma kasutaja ja paroolita sisse Üldiselt soovitaksin sul siiski sisse harjutada kombe SQL-le mitte otse GET/POST päringuga sissetulevaid andmeid sisse sööta. Isegi kui see antud hetkel tõesti teab mis kriitiline koht pole, on näpukad tulevikus kerged tulema kui pole harjunud koodi ka selle pilguga vaatama, et mõni võib üritada rakendust ka mittesihipäraselt kasutada. Kõige lihtsamini saad oma koodi korda, kui uurid funktsiooni mysql_real_escape_string.
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
60 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|