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

Форум PHP

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

 

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

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

тема: Notice: Undefined variable: organ in ....
 
 автор: Василий   (05.01.2012 в 22:39)   письмо автору
 
 

Передаю переменную
<input name="organ" type="hidden" value="<?php echo $_GET['organ']; ?>">


на входе проверяю
if  (isset($_POST['organ']))          {$organ = $_POST['organ']; if ($organ == '') {unset ($organ);}}


выходит ошибка

Notice: Undefined variable: organ in ....

указывает на эту строку
$result = mysql_query ("insert bd SET organ='$organ");


Если переменная organ не пустая, то ошибки нет.
Зачем передавать пустую переменную? Потому что у одного пользователя она пустая, у другого - не пустая
На странице редактирования своих данных пользователь не может organ редактировать.
И если не передавать organ то при
$result = mysql_query ("insert bd SET organ='$organ");

стирается старое значение organ
Как решить задачку?

  Ответить  
 
 автор: cheops   (05.01.2012 в 22:43)   письмо автору
 
   для: Василий   (05.01.2012 в 22:39)
 

Все верно, у вас переменная $organ возникает только если определен элемент $_POST['organ']. В результате переменная является неинициализированной, что беспокоит интерпретатор. Можно поступить следующим образом.
<?php
  
if  (isset($_POST['organ']))
    
$organ $_POST['organ'];
  else
    
$organ "";
?>

  Ответить  
 
 автор: Василий   (05.01.2012 в 22:53)   письмо автору
 
   для: cheops   (05.01.2012 в 22:43)
 

ПРавильно ли я Вас понимаю, что таким образом надо переписать все переменные, которые могут быть пустыми.
Чем грозит оставить эти переменные неинициализированными, вроде все работает

  Ответить  
 
 автор: cheops   (05.01.2012 в 22:58)   письмо автору
 
   для: Василий   (05.01.2012 в 22:53)
 

Если вам нужно каждый элемент массива $_POST['organ'] преобразовать в отдельную переменную, то да, нужно будет переписать каждую.

>Чем грозит оставить эти переменные неинициализированными, вроде все работает
Да особенно ни чем (ну ошибку заметите позже, безопасности это уже почти не угрожает), более того, вывод этих замечаний можно отключить при помощи функции
  error_reporting(E_ALL & ~E_NOTICE);
Только ошибок можете больше допустить, если отключите замечания - они полезные бывают. Иногда можно ошибиться в написании переменной и замечания вам на это укажут, если они отключены - вы этого не заметите. Правда при обработке формы, замечания действительно заставляют создавать лишний код, код ради удовлетворения замечаний, а не ради какой-то пользы. В общем решайте сами, как вам лучше тут поступить.

  Ответить  
Rambler's Top100
вверх

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