Hejsan,
Nu har nog snurrat tillräckligt, dags o fråga nån som vet!
Magic quotes är på, och dödar den serializerade strängen :(
Exempel på när vi skickar in: ab
(Kommentarer efter för att ha koll på värdet)
$foo = $_POST["postvalue"]; // ab
$foo = serialize($foo); // s:2:"ab";
// och sedan så sparar vi värdet i mysql och hämtar det igen
$bar = $myrow["value"]; // s:2:"ab";
$bar = unserialize($bar); // ab
Funka fint... men
Exempel på när vi skickar in: a"b
$foo = $_POST["postvalue"]; // a\"b
$foo = serialize($foo); // s:4:"a\"b";
// och sedan så sparar vi värdet i mysql och hämtar det igen
$bar = $myrow["value"]; // s:4:"a"b";
$bar = unserialize($bar); // <blank>
Nu blev det inget värde alls efts längen på strängen stämmer inte längre. Står att den skall vara 4'a men är faktiskt bara 3.
Men det är nog inget lite stripslashes och htmlentities kan fixa
Exempel på när vi skickar in: a"b igen
$foo = $_POST["postvalue"]; // a\"b
$foo = htmlentities(stripslashes($foo),ENT_QUOTES); // a"b
$foo = serialize($foo); // s:8:"a"b";
// och sedan så sparar vi värdet i mysql och hämtar det igen
$bar = $myrow["value"]; // s:8:"a"b"
$bar = unserialize($bar); // a"b
Allt frid och fröjd igen... men (ja, det är många men)
Exempel på när vi skickar in: ab\c
$foo = $_POST["postvalue"]; // ab\\c
$foo = htmlentities(stripslashes($foo),ENT_QUOTES); // ab\c
$foo = serialize($foo); // s:5:"ab\\c";
// och sedan så sparar vi värdet i mysql och hämtar det igen
$bar = $myrow["value"]; // s:5:"ab\c";
$bar = unserialize($bar); // <blank>
Och så var det blankt igen x(
Någon som har någon lösning?