Beste PHPers,

Het probleem
Met Javascript roep ik een PHP-bestand aan dat vervolgens iets in MySQL stopt. De variabele wordt afgebroken bij de eerste spatie. Het PHP script ziet er zo uit:

$nl_woord = "INSERT INTO nl (nl) VALUES ('".urldecode($_GET['nl'])."')";
mysql_query($nl_woord);
echo $nl_woord."<br/>";
echo $_GET['nl'];


Het resultaat


INSERT INTO nl (nl) VALUES ('asd as sa asd asd asd asd asd')
asd as sa asd asd asd asd asd


In de database staat dit
asd

Al geprobeerd
urlencode, urldecode, str_replace...
Heb je gewoon geen varchar van 3 tekens in de database staan of een andere instelling die het aantal op te slaan tekens beperkt?
Dat dacht ik ook eerst, maar nee:

nl	mediumtext	utf8_general_ci		Nee	Geen


Althans, ik denk dat het 'm hier niet in zit.
Ik zou in ieder geval eens mysql_real_escape_string gebruiken over je GET (en POST en COOKIE)-variabelen. Nu is SQL-injection heel simpel mogelijk door hackers.
Ja weet ik, maar ik dacht deze heel even weg te halen om het een en ander te proberen. Vandaar :-)

[size=xsmall]Toevoeging op 07/11/2012 10:42:25:[/size]

Het is opgelost
Waarschijnlijk toch de database instellingen, ik ben eerst de code gaan veranderen, daarna de database en daarna weer de code. Dus het komt er op neer dat ik de hele tijd voor niets aan die code heb zitten klooien, terwijl het in de database zit.

Toch bedankt!

Reageren