Kezdőoldal » Számítástechnika » Programozás » PHP, mi benne a hiba?

PHP, mi benne a hiba?

Figyelt kérdés

Van egy PHP fájl, és egy hibás mysql rekord létrehozás:

mysql_query("INSERT INTO users (mail, pass, namea, nameb, phone, title, date, dateb, magam, jog, regdate, history, message) values ('".@$_POST['maila']."', '".@$_POST['passa']."', '".szovegcsere(@$_POST['namea'], '11000')."', '".szovegcsere(@$_POST['nameb'], '11000')."', '".szovegcsere(@$_POST['phone'], '11000')." ', '".szovegcsere(@$_POST['title'], '11000')." ', '".@$_POST['szuev']."-".@$_POST['szuho']."-".@$_POST['szuna']."', '".@$_POST['nevnapho']."-".@$_POST['nevnapnap']."', '".szovegcsere(@$_POST['magam'], '11111')." ', '".$jo."', '".date("Y-m-d")." ', '".time()."->Regisztráció<br>', '')");

Ha ezt egy if() be teszem, akkor hamis értéket ad vissza. A mysql táblában nincs ilyen sor. A szovegcsere() funkció biztos, hogy jó. És elméletileg a változókat is jól áthozza az űrlapból. Van egy ellenőrző if is, ami csak akkor engedi futtatni ezt a kódot, ha minden POST értéke nem üres. Amelyiknél lehet üres si azt nem ellenőrzi, de így adom meg a feltöltésnél: @$_POST[""];

Egyébként kód alapján szerintem jó (nem látok benne hibát), de az if-ben hamis értéket ad vissza.


A válaszokat előre is köszönöm.


2012. szept. 27. 19:23
 1/10 anonim ***** válasza:

Az adatbázis kapcsolat megvan?

(mysql_connect)


Amúgy elég ronda ez a kód, ráadásul nagyon jó sql injection hiba van benne. (No meg nem is mondom, hogy a jelszavakat illik hashelni...)

2012. szept. 27. 19:43
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:
A csatlakozás tökéletes a többi mysql_query működik.
2012. szept. 27. 19:56
 3/10 anonim ***** válasza:
Nem igazán látom, de én úgy számoltam hogy 13 helyre akarsz tenni, de csak 12 értéket. Lehetséges hogy jól látom?
2012. szept. 27. 20:38
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:

Hogyan tudom elhárítani a mysql injection hibát?


13 helyre lehet írni, és 13 értéket adok meg.

2012. szept. 28. 23:08
 5/10 anonim ***** válasza:

Igen már látom így hogy bemásoltam notepadbe, + hibát is:

phone, title, és amitől biztos nem megy: date("Y-m-d")-nél plusz egy szpész a végén

2012. szept. 29. 00:12
Hasznos számodra ez a válasz?
 6/10 A kérdező kommentje:

Módosítottam:

$sql_a=@$_POST['maila'];

$sql_b=md5(@$_POST['passa']);

$sql_c=szovegcsere(@$_POST['namea'], '11000')." ";

$sql_d=szovegcsere(@$_POST['nameb'], '11000')." ";

$sql_e=szovegcsere(@$_POST['phone'], '11000')." ";

$sql_f=szovegcsere(@$_POST['title'], '11000')." ";

$sql_g=@$_POST['szuev']."-".@$_POST['szuho']."-".@$_POST['szuna']." ";

$sql_h=@$_POST['nevnapho']."-".@$_POST['nevnapnap']." ";

$sql_i=szovegcsere(@$_POST['magam'], '11111')." ";

$sql_j=$jo;

$sql_k=date("Y-m-d")." ";

$sql_l=time()."->Regisztráció<br> ";

$sql_m="";

mysql_query("INSERT INTO users (mail, pass, namea, nameb, phone, title, date, dateb, magam, jog, regdate, history, message) values ('".$sql_a."', '".$sql_b."', '".$sql_c." ', '".$sql_d." ', '".$sql_e." ', '".$sql_f." ', '".$sql_g." ', '".$sql_h." ', '".$sql_i." ', '".$sql_j."', '".$sql_k." ', '".$sql_l."', '".$sql_m."')");

Így jobban átlátható, a jelszót kódolja, és odatettem a plusz spacet is, de most se működik. Van még ötletetek?

2012. szept. 29. 11:30
 7/10 anonim ***** válasza:
Az adatbázisban tuti hogy megfelelő típusúak az egyes cellák amikbe akarsz adatot bevinni?
2012. szept. 29. 12:44
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:
Az e-mail és a jelszó varchar a többi text. A varcharnak 200 karakter a hossza, de ami ennél hosszabb az nem jut el a mysql_queryig.
2012. szept. 29. 13:44
 9/10 anonim ***** válasza:

De én úgy értettem hogy pont azért nem megy, mert ott van egy space :D

pl dátum formája "2012-09-29", de te a végére egy szóközt még tettél, és ezért rossz formában akarná beletenni, amit persze nem lehet, ez a hiba.

NE legyen sehol felesleges szóköz(=végén). :D

2012. szept. 29. 19:24
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:
Ja értem. Köszi a segítséget most működik.
2012. szept. 29. 22:09

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!