Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: С PHP4 на PHP5 код не работает
 
 автор: kukuikar   (21.06.2007 в 12:14)   письмо автору
 
 

Хостер поменял PHP4 на PHP5. Теперь такая лабуда не работает.
Когда $$id != "0" то поле вообще становится пустым. Значит проверка if ($$id == "0") срабатывает, тогда почему он не назначает $order[$id] = $$id;
$order - массив - переменная сессии.
$id - input type=text с именем $id.

    foreach($order as $id => $count)
        {
        if ($$id == "0")
            unset($order[$id]);
        else
            $order[$id] = $$id;
        }

Заранее Спасибо!!!

   
 
 автор: Ressfourt   (21.06.2007 в 16:31)   письмо автору
 
   для: kukuikar   (21.06.2007 в 12:14)
 


попробуй один доллар убрать $$id => $id

   
 
 автор: kukuikar   (21.06.2007 в 17:47)   письмо автору
 
   для: Ressfourt   (21.06.2007 в 16:31)
 

Да не то это, $$ - это переменная переменной

   
 
 автор: Ressfourt   (21.06.2007 в 21:06)   письмо автору
 
   для: kukuikar   (21.06.2007 в 17:47)
 


в данном случае у тебя $$id является пустым значением и проверка не пройдет 

   
 
 автор: kukuikar   (21.06.2007 в 21:08)   письмо автору
 
   для: Ressfourt   (21.06.2007 в 21:06)
 

при пересчете заказа оно не может быть пустым, в нем обязательно что-то есть

   
 
 автор: kasmanaft   (21.06.2007 в 19:10)   письмо автору
 
   для: kukuikar   (21.06.2007 в 12:14)
 

> Когда $$id != "0" то поле вообще становится пустым.
Что за поле?

Что у Вас в $id находится? И откуда появляются $$id ?

   
 
 автор: kukuikar   (21.06.2007 в 21:04)   письмо автору
 
   для: kasmanaft   (21.06.2007 в 19:10)
 

<input type="text" name="<?=$id_prod ?>" ...... /> вот где у меня $id там у меня только цифры

И если у меня $id = 5, то $$id = $5 = value из text.

Может я не прав?

   
 
 автор: Ressfourt   (21.06.2007 в 21:09)   письмо автору
 
   для: kukuikar   (21.06.2007 в 21:04)
 


$id = "id2";
$id2 = "Test2";
print_r($$id);

вывод Test2

   
 
 автор: sergey89   (21.06.2007 в 21:10)   письмо автору
 
   для: kukuikar   (21.06.2007 в 21:04)
 

http://phpfaq.ru/globals

   
 
 автор: Ressfourt   (21.06.2007 в 21:17)   письмо автору
 
   для: sergey89   (21.06.2007 в 21:10)
 

хмм да действительно не подумал может быть регистер_глобалс не включены, но всеравно использование регистр_глобалс это сильно нарушает безапасность, но использование косвенных сылок в этом примере считаю вообще ненужным

   
 
 автор: kukuikar   (21.06.2007 в 21:26)   письмо автору
 
   для: sergey89   (21.06.2007 в 21:10)
 

у меня register_globals on
и кстати по умолчанию включены

   
 
 автор: kukuikar   (21.06.2007 в 23:06)   письмо автору
 
   для: kukuikar   (21.06.2007 в 12:14)
 

Вообщем решил проблему так:


 foreach($order as $id => $count)
        {
        if (${"n".$id} == "0")
            unset($order[$id]);
        else
            $order[$id] = ${"n".$id};
        } 


У меня в $$id было число, а имя переменной не может начинаться с числа, так написано в мануале, но в пхп 4 все работало, а в 5 застопорилось... всем спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования