Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Метод POST

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Notice: Undefined index
criaton
Отправлено: 10 Февраля, 2012 - 14:51:26
Post Id


Гость


Покинул форум
Сообщений всего: 93
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. if ($this->data['filter_sale'] = $_POST['filter_sale'])
  4.  
  5.         {
  6.  
  7.        setcookie("filter_sale",$_POST['filter_sale']);
  8.  
  9.        }
  10.  
  11.  
  12.  
  13.  
  14. else
  15.  
  16. {
  17.  
  18. $this->data['filter_sale'] = $_COOKIE['filter_sale'];
  19.  
  20.  }
  21.  
  22.  



При выполнении передачи значения методом POST
появляется ошибка: Notice: Undefined index

так как значения нет, не подскажите, что нужно изменить или добавить в данном коде,
что ошибка не выходила
 
 Top
Зверь
Отправлено: 10 Февраля, 2012 - 14:57:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




У вас тут как минимум ошибка уровня parse error
if(присваивать значения переменным здесь нельзя)

PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['filter_sale']) && $this->data['filter_sale'] == $_POST['filter_sale']) {
  2.              setcookie("filter_sale",$_POST['filter_sale']);
  3. }else{
  4.  
  5. $this->data['filter_sale'] = $_COOKIE['filter_sale'];
  6.  
  7.  }
 
 Top
Мелкий Супермодератор
Отправлено: 10 Февраля, 2012 - 15:01:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Проверять на isset.

Присваивание в 3-ей строке - баг или фича?
(Добавление)
Зверь пишет:
if(присваивать значения переменным здесь нельзя)

Можно.


-----
PostgreSQL DBA
 
 Top
Зверь
Отправлено: 10 Февраля, 2012 - 15:06:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




Действительно можно Не понял По-моему раньше это у меня выбивало parse error, впрочем какая разница, оно всегда возвращает true
 
 Top
Мелкий Супермодератор
Отправлено: 10 Февраля, 2012 - 15:08:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Зверь пишет:
какая разница, оно всегда возвращает true

Не всегда, а только если присваиваемое значение приводится к true.
Неужто никогда не писали while($row = mysql_fetch_assoc($res))? Тот же смысл.


-----
PostgreSQL DBA
 
 Top
EuGen Администратор
Отправлено: 10 Февраля, 2012 - 15:16:05
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Мелкий пишет:
Не всегда, а только если присваиваемое значение приводится к true

Оно всегда приведется к boolean (т.к. в if интерпретатор ожидает boolean - и, стало быть, оператор присваивания приводится к boolean в любом случае). Дело другое, что оно может при приведении к boolean стать false (если, например, присваимое значение есть 0 или null или false и т.п.)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Зверь
Отправлено: 10 Февраля, 2012 - 15:16:49
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




Мелкий пишет:
Зверь пишет:
какая разница, оно всегда возвращает true

Не всегда, а только если присваиваемое значение приводится к true.
Неужто никогда не писали while($row = mysql_fetch_assoc($res))? Тот же смысл.

Не приходилось Улыбка буду знать
Пользуюсь pdo, у него есть прекрасный метод fetchAll
 
 Top
EuGen Администратор
Отправлено: 10 Февраля, 2012 - 15:18:51
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Зверь пишет:
Пользуюсь pdo, у него есть прекрасный метод fetchAll

... который я настоятельно рекомендую не использовать. Дело в том, что этот метод загружает в память всю структуру строк таблицы, тогда как fetch() - только ту строку, которой соответствует внутренний указатель. Иными словами, при числе строк в выборке, скажем, 10000 - начинаются значительные потери памяти.
Но это, как я полагаю, уже вне темы.

По теме: ошибка означает то, что в $_POST нет указанного индекса (то есть соответствующий параметр не передан)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Зверь
Отправлено: 10 Февраля, 2012 - 15:23:59
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)





EuGen пишет:
Иными словами, при числе строк в выборке, скажем, 10000 - начинаются значительные потери памяти.

Пока нет необходимости использовать данные в таком количестве
LIMIT решает Улыбка

(Отредактировано автором: 10 Февраля, 2012 - 15:24:26)

 
 Top
criaton
Отправлено: 10 Февраля, 2012 - 16:01:08
Post Id


Гость


Покинул форум
Сообщений всего: 93
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. $this->data['filter_sale'] = $_COOKIE['filter_sale'];


ошибка выходит из за неизвестного пока значения cookie

до передачи методом POST

как указать что если значения cookie пока пустые то выводить пустую ячейку а не сообщение об ошибке
 
 Top
Зверь
Отправлено: 10 Февраля, 2012 - 16:37:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




$this->data['filter_sale'] = (isset($_COOKIE['filter_sale'])) ? $_COOKIE['filter_sale'] : null;
 
 Top
LIME
Отправлено: 10 Февраля, 2012 - 16:45:42
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




criaton а вообще Notice это не совсем ошибка
это замечание
работать будет если убрать вывод ошибок
(Добавление)
Зверь пишет:
f(присваивать значения переменным здесь нельзя)
можно любые выражения использовать
и если результат отличен от пустой строки нуля или чего там еще)) тогда тру
а иначе иначе ))
(Добавление)
ой чтото с вниманием у меня ))
 
 Top
criaton
Отправлено: 10 Февраля, 2012 - 16:58:52
Post Id


Гость


Покинул форум
Сообщений всего: 93
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Зверь, спасибо.
LIME, да я знаю, это замечание, но его не хотелось отключать.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB