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

Форум PHP

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

 

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

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

тема: Не срабатывает условие if (!isset($id)) в чем причина?
 
 автор: sparta777   (29.01.2012 в 18:25)   письмо автору
 
 


   <?php 
if (!isset($id))        
{        
$result mysql_query("SELECT title,id FROM lessons");
$myrow mysql_fetch_array($result);

do
{
printf ("<p><a href='red_lesson.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);    
}        
        
while (
$myrow mysql_fetch_array($result));        
}

else
{

print <<<HERE
<form action="add_lesson.php" method="post" name="form1">
         <p>
           <label for="title">Введите название урока</label>
           <br>
<input type="text" name="title" id="title">
         </p>
         <p>
           <label for="meta_d">Введите краткое описание<br>
           </label>
           <input type="text" name="meta_d" id="meta_d">
           </p>
         <p>
           <label for="meta_k">Введите ключевые слова</label>
           <br>
           <input type="text" name="meta_k" id="meta_k">
           </p>
         <p>
           <label for="dat">Введите дату добавления урока</label>
           <br>
           <input name="dat" type="text" id="dat" value="2012-01-28">
           </p>
         <p>
           <label for="description">Введите краткое описание урока </label>
           <textarea name="description" id="description" cols="40" rows="5"></textarea>
           </p>
         <p>
           <label for="text">Введите полный текст урока с тегами абзацев</label>
           <textarea name="text" id="text" cols="40" rows="20"></textarea>
           </p>
         <p>
           <label for="author">Введите автора урока</label>
           <br>
           <input type="text" name="author" id="author">
           <br>
<br>
           <input type="submit" name="submit" id="submit" value="Занести урок в базу">
           <br>
         </p>
       </form>
HERE;
}
        
?>


Народ кто- нибудь, помогите. Не могу понять почему не срабатывает условие. Точнее оно срабатывает но абсолютно не так как требует условие.Цель данного условия вынимать из базы данные и выводит их в виде ссылки, т.е. выполнять первое условие if. При нажатии на ссылку которая ведет на эту же самую страницу в адресс присваивается id, что по идее должно привести к выполнению второй части условия else и вывести форму. Однако происходит следующее - при if (!isset($id)) полностью срабатывает условие if, и даже в том случае если присвоен id.
Если условие изменить на - if (isset($id)) срабатывает условие else, опять же, даже если присвоен id.
2 дня мучаюсь, ошибок в условии не нахожу. Кто знает помогите. Заранее благодарю.

  Ответить  
 
 автор: Sfinks   (29.01.2012 в 19:27)   письмо автору
 
   для: sparta777   (29.01.2012 в 18:25)
 

У вас отключены register_globals в php.ini. Так и должно быть. Проверяйте
<?
if(!isset($_GET["id"])){ .... }

  Ответить  
 
 автор: sparta777   (29.01.2012 в 20:53)   письмо автору
 
   для: Sfinks   (29.01.2012 в 19:27)
 

Да помогло. От души благодарю Sfinks, я сам бы не додумался.

  Ответить  
 
 автор: sparta777   (29.01.2012 в 21:04)   письмо автору
 
   для: Sfinks   (29.01.2012 в 19:27)
 

Еще вопрос если позволите, register_globals включить? или лучше не включать и выводить через $_GET ?

  Ответить  
 
 автор: cheops   (29.01.2012 в 22:03)   письмо автору
 
   для: sparta777   (29.01.2012 в 21:04)
 

>Еще вопрос если позволите, register_globals включить?
Ни в коем случае, его уже в новых версиях помоему окончательно исключили. Эта директива была оставлена для обеспечения совместимости со старым кодом.

>или лучше не включать и выводить через $_GET ?
Да, именно так.

  Ответить  
 
 автор: sparta777   (29.01.2012 в 22:11)   письмо автору
 
   для: cheops   (29.01.2012 в 22:03)
 

Благодарю за ответ cheops, теперь буду знать.

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

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