MMGP logo
Присоединяйтесь к нашему инвестиционному форуму, на котором уже 649,420 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение - зарегистрируйтесь прямо сейчас.
Все, что относится к Web-Программированию (PHP, Perl, JavaScript, MySQL, XML и т.д.)
Тема закрыта
Первый пост Опции темы
Старый 05.05.2011, 21:13
#1
Любитель
 
Пол: Мужской
Регистрация: 07.03.2011
Сообщений: 227
Благодарностей: 18
unserialize() вообще не работает и при этом никаких ошибок не выдает

Доброго времени суток, надеюсь кто-нибудь знает в чем тут проблема...
сразу чтобы отбросить глупые предположения - magic_quotes = Off...

что интерестно - функция serialize работает на ура...

я где-то читал что уже не раз сталкивались с подобного рода проблемой и как понял это баг самого PHP... Но тем не менее у меня есть задача и мне ее нужно решить именно путем использования функции unserialize()...

буду очень сильно благодарен тому, кто поможет
т.к. я уже вообще незнаю где копать и что думать...

PS: в логах апача все чисто

PPS:strip_slashes тоже не помогло...

PPPS: чтобы никто не думал о какой-либо опечатке - не исполняется даже настолько простой код:

<?php

$exz = array();
$exz[]="apple";
$exz[]="red";

$ser1 = serialize($exz);

print_r(unserialize($ser1));
?>

при этом не просто не исполняется - а при запуске нету никаких ошибок, все казалось бы хорошо, собственно вывода print_r нету -_-
если точнее - то нету масива а не вывода

Последний раз редактировалось Alex9944; 06.05.2011 в 12:21.
Alex9944 вне форума
Старый 06.05.2011, 14:29
#2
Специалист
 
Пол: Мужской
Инвестирую в: HYIP
Регистрация: 07.04.2010
Сообщений: 443
Благодарностей: 129
Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Alex9944, Попробовал ваш вариант - все работает (5.2.12). Какая версия PHP? Где-то слышал, что у людей были проблемы до версии 5.2 (не факт).


Цитата:
Сообщение от Alex9944 Посмотреть сообщение
если точнее - то нету масива а не вывода
Нету массива $exz или нет строки $ser1 ?

И на крайний случай, если работать не будет, можно обойтись и без сериализации. Просто если у вас и заработает, то где гарантия, что на другом хосте тоже будет работать.

Последний раз редактировалось FоrFun; 06.05.2011 в 14:40.
FоrFun вне форума
Старый 06.05.2011, 14:48
#3
Любитель
 
Пол: Мужской
Регистрация: 07.03.2011
Сообщений: 227
Благодарностей: 18
Автор темы Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

какбы эту функцию используют довольно таки часто - для обмена информацией методом GET...

нету именно массива СТРОКА ЕСТЬ И ВЫВОДИТСЯ на ура!

Цитата:
Сообщение от FоrFun Посмотреть сообщение
Какая версия PHP?
PHP 5.3.6


Цитата:
Сообщение от FоrFun Посмотреть сообщение
обойтись и без сериализации
Cама суть ТЗ в ней

Последний раз редактировалось Alex9944; 06.05.2011 в 15:10.
Alex9944 вне форума
Старый 06.05.2011, 15:33
#4
Специалист
 
Пол: Мужской
Инвестирую в: HYIP
Регистрация: 07.04.2010
Сообщений: 443
Благодарностей: 129
Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Цитата:
Сообщение от Alex9944 Посмотреть сообщение
какбы эту функцию используют довольно таки часто - для обмена информацией методом GET...
Тоесть вы передаете эту строку через GET?
А если file.php?k1=v1&k2=v2 ....... так не лучше?
Если все происходит в пределах одного сайта - то можно использовать сессии.

Ну и на последок, если часто будет использоваться, можно сделать пользовательскую функцию

Цитата:
function mySerialize($array){
foreach($array as $k=>$v){
$stroka .= $k.'='.$v.'|';
}
return $stroka;
}

function myUnserialize($stroka){
$data = explode('|',$stroka);
array_pop($data);

foreach($data as $v){
$a = explode('=',$v);
$array[$a[0]] = $a[1];
unset($a);
}
return $array;
}

$arr = array('1'=>'a','2'=>'b');

$stroka = mySerialize($arr);

$array = myUnserialize($stroka);
Но только если массив одномерный
FоrFun вне форума
Старый 06.05.2011, 15:46
#5
Любитель
 
Пол: Мужской
Регистрация: 07.03.2011
Сообщений: 227
Благодарностей: 18
Автор темы Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

1) массив многомерный
2) я не спрашивал чем заменить эту функцию
3) я в курсе что того что такое сессии и как ими пользоваться...
Я повторюсь - задача должна быть решена именно так, если она будет решена каким либо другим образом, то она не будет считаться решенной, это не мои примхи...

конечно - я бы вообще закинул бы все это дело в кохану и сделал бы там все с помощью сессий, но такой возможности, как я надеюсь вы уже все-таки поняли, к сожелению, нет.
Alex9944 вне форума
Старый 06.05.2011, 15:58
#6
Специалист
 
Пол: Мужской
Инвестирую в: HYIP
Регистрация: 07.04.2010
Сообщений: 443
Благодарностей: 129
Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Цитата:
Сообщение от Alex9944 Посмотреть сообщение
Я повторюсь - задача должна быть решена именно так, если она будет решена каким либо другим образом, то она не будет считаться решенной, это не мои примхи...
Цель - решить задачу именно таким способом или решить ее вообще?
Не работает встроенная функция PHP и тут два варианта - либо идти в обход, либо обновлять PHP, писать разработчикам и ......

Цитата:
конечно - я бы вообще закинул бы все это дело в кохану и сделал бы там все с помощью сессий, но такой возможности, о5 таки, к сожелению, нет
Тоесть в обычном скрипте сессиями сделать нельзя?

В общем удачи в поисках.
FоrFun вне форума
Старый 06.05.2011, 16:29
#7
Любитель
 
Пол: Мужской
Регистрация: 07.03.2011
Сообщений: 227
Благодарностей: 18
Автор темы Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Цитата:
Сообщение от FоrFun Посмотреть сообщение
Цель - решить задачу именно таким способом
вот правильный ответ

можно, причем здесь это, вы меня вобщем так и не поняли...
Решение именно таким методом это обязательный пункт ТЗ -_-


Цитата:
Сообщение от FоrFun Посмотреть сообщение
В общем удачи в поисках.
ок, спс
Alex9944 вне форума
Старый 06.05.2011, 16:49
#8
Специалист
 
Пол: Мужской
Инвестирую в: HYIP
Регистрация: 07.04.2010
Сообщений: 443
Благодарностей: 129
Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Цитата:
Сообщение от Alex9944 Посмотреть сообщение
Решение именно таким методом это обязательный пункт ТЗ -_-
Ну тогда извините, если что не так. Не знал про задание.

PHP версию не пробовали менять? Единственный вариант остается.
FоrFun вне форума
Старый 06.05.2011, 16:53
#9
Любитель
 
Пол: Мужской
Регистрация: 07.03.2011
Сообщений: 227
Благодарностей: 18
Автор темы Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Цитата:
Сообщение от FоrFun Посмотреть сообщение
PHP версию не пробовали менять?
пробовал, более того - переустанавливал и реконфигал с 0я Apache...
судя по всему прийдется отказаться от задания, вообще очень странная ошибка...
даже предположений нет в чем тут проблема...

вот думаю еще как вариант поставить денвер попробывать может...
Alex9944 вне форума
Старый 06.05.2011, 17:12
#10
Специалист
 
Пол: Мужской
Инвестирую в: HYIP
Регистрация: 07.04.2010
Сообщений: 443
Благодарностей: 129
Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Цитата:
Сообщение от Alex9944 Посмотреть сообщение
вот думаю еще как вариант поставить денвер попробывать может...
Я на денвере и тестировал. Работало.
Что пишет так var_dump(unserialize($ser1))
И если можно, скинте строку после сериализации.
FоrFun вне форума
Старый 06.05.2011, 17:23
#11
Любитель
 
Пол: Мужской
Регистрация: 07.03.2011
Сообщений: 227
Благодарностей: 18
Автор темы Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

a:1:{s:3:"res";s:2:"ok";}
ну вот пример

да я как-то просто не сторонник Денвера, благо знания позваляют юзать нормальное полноценное ПО, обидно лишь то что прийдется сносить все -_-
Alex9944 вне форума
Старый 06.05.2011, 17:27
#12
Специалист
 
Пол: Мужской
Инвестирую в: HYIP
Регистрация: 07.04.2010
Сообщений: 443
Благодарностей: 129
Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Цитата:
Сообщение от Alex9944 Посмотреть сообщение
a:1:{s:3:"res";s:2:"ok";}
ну вот пример
a:2:{i:0;s:3:"rez";i:1;s:2:"ok";}
Вот мой пример. Засуньте его в unserialize и посмотрите.
Я так понимаю массив был таким array('rez','ok')
FоrFun вне форума
Сказали спасибо:
Alex9944 (06.05.2011)
Старый 06.05.2011, 17:35
#13
Любитель
 
Пол: Мужской
Регистрация: 07.03.2011
Сообщений: 227
Благодарностей: 18
Автор темы Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Array ( [0] => rez [1] => ok ) -_-

да массив получить надо именно такой (в случае успеха конечно)...

я чего-то недопонимаю...

почему тогда неработает:
<?php
$exz = array();
$exz[]="apple";
$exz[]="red";
$ser1 = serialize($exz);
print_r(unserialize($ser1));
?>

по тз.
т.е. тут скорее всего трабла в коде самого сервера как я понимаю, моя задача простая - сериализировать, отправить, получить, унсериализировать обработать условие...
Alex9944 вне форума
Старый 06.05.2011, 17:57
#14
Специалист
 
Пол: Мужской
Инвестирую в: HYIP
Регистрация: 07.04.2010
Сообщений: 443
Благодарностей: 129
Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Цитата:
Сообщение от Alex9944 Посмотреть сообщение
Array ( [0] => rez [1] => ok ) -_-

да массив получить надо именно такой (в случае успеха конечно)...

я чего-то недопонимаю...

почему тогда неработает:
<?php
$exz = array();
$exz[]="apple";
$exz[]="red";
$ser1 = serialize($exz);
print_r(unserialize($ser1));
?>

по тз.
т.е. тут скорее всего трабла в коде самого сервера как я понимаю, моя задача простая - сериализировать, отправить, получить, унсериализировать обработать условие...
Скорее всего. Других причин нет.
Единственое, это то, что у нас сериализованные строки различаются.
В интернете по этому вопросу только один ответ - magic_quotes.
Если найдете ответ, будьте добры, запостите здесь - мало ли, сам столкнусь.
FоrFun вне форума
Старый 06.05.2011, 18:02
#15
Любитель
 
Пол: Мужской
Регистрация: 07.03.2011
Сообщений: 227
Благодарностей: 18
Автор темы Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

да проблема из разряда, мягко говоря, сложно вычесляемых...

Цитата:
Сообщение от FоrFun Посмотреть сообщение
будьте добры, запостите здесь
обязательно, если найду - отпишу
Alex9944 вне форума
Старый 08.05.2011, 06:22
#16
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 13.12.2006
Сообщений: 5,553
Благодарностей: 3,381

награды Ветеран MMGP.RU Волшебный горшочек 
Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Цитата:
Сообщение от Alex9944 Посмотреть сообщение
Array ( [0] => rez [1] => ok ) -_-

да массив получить надо именно такой (в случае успеха конечно)...

я чего-то недопонимаю...

почему тогда неработает:
<?php
$exz = array();
$exz[]="apple";
$exz[]="red";
$ser1 = serialize($exz);
print_r(unserialize($ser1));
?>

по тз.
т.е. тут скорее всего трабла в коде самого сервера как я понимаю, моя задача простая - сериализировать, отправить, получить, унсериализировать обработать условие...
Код:
D:\>p.php
Array
(
    [0] => apple
    [1] => red
)

D:\>
работает.
Включайте наверное вывод нотисов и смотрите.

точно ли это чистый код и к нему ничего не цепляется?
dkameleon вне форума
Старый 08.05.2011, 20:36
#17
Любитель
 
Пол: Мужской
Регистрация: 07.03.2011
Сообщений: 227
Благодарностей: 18
Автор темы Re: unserialize() вообще не работает и при этом никаких ошибок не выдает

Цитата:
Сообщение от dkameleon Посмотреть сообщение
точно ли это чистый код и к нему ничего не цепляется?
естественно да

Цитата:
Сообщение от dkameleon Посмотреть сообщение
Включайте наверное вывод нотисов и смотрите.
думаете я не пробывал? да уже не актуально, я не знаю как там и почему оно не работает, но я отдал ТЗ знакомому.
Alex9944 вне форума
Тема закрыта
Войдите, чтобы оставить комментарий.
Быстрый переход
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Куда поставить стоп-лос? (и ставить ли его вообще?) Bestlive08 Forex: общий форум 497 09.05.2022 14:10
Можно ли торговать вообще без убытков, или кто как хеджируется? Дмитрий Manager Forex: общий форум 78 10.04.2013 21:08
А для чего вообще ТИЦ господа? Pioner Поисковая оптимизация 24 28.08.2009 05:35