Hoi luitjes,
Ik ben al een tijdje aant stoeien met het volgende. Tijdens het maken van een software project waar ik mee bezig ben, kwam ik achter het volgende: als ik een variabele bewerkte met addslashes en die via een mysql_query in de database duwde, dat als ik het daarna opvroeg dat de slashes niet meer in de regel staan.
Nu ben ik al een uur aan het testen met een testscriptje:
Dit script retourneert dit:
Ik heb gekeken naar magic quotes, maar dat werkt, als ik goed gelezen heb, alleen bij $_POST en $_GET. Ik ben al aardig wat tijd bezig met php en mysql, maar hier kom ik gewoon niet uit.
Wat mis ik?
Misschien nog interessant, op mn dev servertje draait: Windows Server 2003, Apache, PHP 4.4, MySQL 4 (I know, het is beetje oud maar het werkt prima voor het meeste wat ik doe).
Ik ben al een tijdje aant stoeien met het volgende. Tijdens het maken van een software project waar ik mee bezig ben, kwam ik achter het volgende: als ik een variabele bewerkte met addslashes en die via een mysql_query in de database duwde, dat als ik het daarna opvroeg dat de slashes niet meer in de regel staan.
Nu ben ik al een uur aan het testen met een testscriptje:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <?php mysql_connect('localhost', 'xxx', 'xxx'); mysql_select_db('test'); $string_een = "Dit is een teststring, met vreemde tekens ' @ < \" \ €"; $string_twee = addslashes($string_een); $query_insert = "INSERT INTO test (test) VALUES ('{$string_twee}');"; mysql_query($query_insert); $result = mysql_query('SELECT test FROM test ORDER BY id DESC LIMIT 0,1'); $string_drie = mysql_result($result, 0, 'test'); echo 'Orgineel: ' . $string_een . '<br />'; echo 'Met slashes: ' . $string_twee . '<br />'; echo 'DB Select: ' . $string_drie . '<br />'; echo 'Insert Query: '. $query_insert; ?> |
Dit script retourneert dit:
Waarom is het resultaat van $string_drie (c.q: DB Select) niet hetzelfde als $string_twee?Orgineel: Dit is een teststring, met vreemde tekens ' @ < " \ €
Met slashes: Dit is een teststring, met vreemde tekens \' @ < \" \\ €
DB Select: Dit is een teststring, met vreemde tekens ' @ < " \ €
Insert Query: INSERT INTO test (test) VALUES ("Dit is een teststring, met vreemde tekens \' @ < \" \\ €");
Ik heb gekeken naar magic quotes, maar dat werkt, als ik goed gelezen heb, alleen bij $_POST en $_GET. Ik ben al aardig wat tijd bezig met php en mysql, maar hier kom ik gewoon niet uit.
Wat mis ik?
Misschien nog interessant, op mn dev servertje draait: Windows Server 2003, Apache, PHP 4.4, MySQL 4 (I know, het is beetje oud maar het werkt prima voor het meeste wat ik doe).
LG Therma V Split WP: HU143MA.U33-HN1636M NK5