Я пытаюсь сериализовать класс (User) и передать его как переменную GET на следующую страницу.
Вот мой тестовый код:
$usr->getByLoginPass($db,"perf@stud.de","a32636ba1c7875b19c6f32121078c2da0be6f857");
$serial = $usr->serialize();
$handle = fopen("http://localhost/newClassSite/utests/userSerializationTest.php?data=$serial", "rb");
$contents = "";
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
if(strpos($contents,"Perfect") === false) {
echo"$contents<br>";
echo"Problem with serialization testUser.test:16" . $usr->getLastError() . "<br>";
}
Вот код в userSerializationTest.php:
$data = $_GET['data'];
echo"5: $data<br>";
include('../user.inc');
$usr = new User();
$usr->deserialize($data);
$usr->printUser();
Вот код в классе:
public function serialize() {
$serial = serialize($this);
$df = gzdeflate($serial);
$b64 = base64_encode($df);
$ue = urlencode($b64);
echo "<font face='Courier New'>1: $serial<br><br>2: $df<br><br>3: $b64<br><br>4: $ue<hr><br>";
return($ue);
}
public function deserialize($data) {
$ud = urldecode($data);
$u64 = base64_decode($ud);
$gf = gzinflate($u64);
$us = unserialize($gf);
echo"6: $ud<br><br>7: $u64<br><br>8: $gf<br><br>9: $us<hr><br>";
}
А вот и вывод:
1: O: 4: «Пользователь»: 9: {s: 12: «UseruserID»; s: 1: «9»; s: 15: «UserstudentID»; s: 3: «007»; s: 11: "USEREMAIL"; s: 12: "perf@stud.de"; s: 10: "Usersha1"; s: 40: "a32636ba1c7875b19c6f32121078c2da0be6f857"; s: 11: "Userfname"; s: 7: "Идеальный"; с: 11: "Userlname"; s: 7: "Студент"; s: 12: "UserStatus"; s: 2: "ОК"; s: 17: "UsermiddleNames"; s: 0: ""; s: 15 : "UserlastError"; s: 0: "";}
2:] M ™ = 0 @ [hŸº0 & ÖÄxÊOlÒVte¼ »” † ƺðÍ0o † ÐÝi ‹‚ · Bm¦ófËé € vªâ ^ $ ÍùQéÁÏrc $ t / Ú. ¢ ÷ ÒÖì§ + [¥ # à ^Œ Î Œ Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î ! ¢ • d & £ «IKI • Àf|, þ ™ Ào1” º † 9Zúμ¡û1ÜæÚ © Wz <ð £> X @ õ9Š <‰}«T§ / ": BÍõGtÂù £ μO» г / </p>
3: XZBNDsIgFIQ9CwcwQFtonxsXujAm1sR4AMpPbNJWA3RlvLuUhsa6gfDNMG + ghhzQ3WmLoIK3A0IBbabzZgzL6YB2gQGq4l4kzflR6cHPcgYIYx4NJBl0L9ouopD30tbspytbpSPDS85DkInkgYiMsow1gkhe8qIhlWQmo4QSzEtJlcCNZqYs / gaZQfQxlAO6hjla + RWH + zHc5tqpV3qL8KObWED1OYo8iX2rVKcvISI6Qs31R3TC + aO1T7uony8 =
4: XZBNDsIgFIQ9CwcwQFtonxsXujAm1sR4AMpPbNJWA3RlvLuUhsa6gfDNMG% 2BghhzQ3WmLoIK3A0IBbabzZgzL6YB2gQGq4l4kzflR6cHPcgYIYx4NJBl0L9ouopD30tbspytbpSPDS85DkInkgYiMsow1gkhe8qIhlWQmo4QSzEtJlcCNZqYs% 2FgaZQfQxlAO6hjla% 2BrWh% 2BzHc5tqpV3qL8KObWED1OYo8iX2rVKcvISI6Qs31R3TC% 2BaO1T7uony8% 3D
5: XZBNDsIgFIQ9CwcwQFtonxsXujAm1sR4AMpPbNJWA3RlvLuUhsa6gfDNMG + ghhzQ3WmLoIK3A0IBbabzZgzL6YB2gQGq4l4kzflR6cHPcgYIYx4NJBl0L9ouopD30tbspytbpSPDS85DkInkgYiMsow1gkhe8qIhlWQmo4QSzEtJlcCNZqYs / gaZQfQxlAO6hjla + RWH + zHc5tqpV3qL8KObWED1OYo8iX2rVKcvISI6Qs31R3TC + aO1T7uony8 =
Предупреждение: gzinflate () [function.gzinflate]: ошибка данных в C: \ wamp \ www \ newClassSite \ user.inc в строке 117
6: XZBNDsIgFIQ9CwcwQFtonxsXujAm1sR4AMpPbNJWA3RlvLuUhsa6gfDNMG ghhzQ3WmLoIK3A0IBbabzZgzL6YB2gQGq4l4kzflR6cHPcgYIYx4NJBl0L9ouopD30tbspytbpSPDS85DkInkgYiMsow1gkhe8qIhlWQmo4QSzEtJlcCNZqYs / gaZQfQxlAO6hjla RWH zHc5tqpV3qL8KObWED1OYo8iX2rVKcvISI6Qs31R3TC aO1T7uony8 =
7:] M = 0 @ [hŸº0 & ÖÄxÊOlÒVte¼ »” † ƺðÍ0h! ‡ 47Zbè ÀÐ € [i¼Ùƒ2ú @j¸—‰3~Tzps܂ǃI]ö‹¨¤=ôµ»)ÊÖéHðÒóä"y b#,£
'¼¨ˆeY ¨á³Òep # Y © ‹? ¦P} eî¡ŽV« ZÇs ›j ¥] ê / ÂŽmaÔæ (ò% öRœ¼ „ˆé7ÕÓ £ µO» ¨Ÿ /
8:
9:
Пользователь:
ID: -1
Sid:
Эл. адрес:
проходить:
имя_файл:
LNAME:
статус:
середина:
Я бы хотел, чтобы поля были заполнены в конце.
Почему gzinflate не работает?
Что мне здесь не хватает?