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

Форум PHP

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

 

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

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

тема: Проблема со switch - помогите разобраться!
 
 автор: Mouse   (23.01.2006 в 12:41)   письмо автору
 
 

Здравствуйте, уважаемые господа. Проблема такая
В одном учебнике по РНР нашел пример, вот он:
--
Пример применения инструкции switch приведен ниже. Обратите внимание, что в форме использовано поле типа select.Итак - это форма, вызывающая скрипт:
Какая планета четвертая по счету от земли?
< form action="script2_1.php" method="POST">
<select name=n1 >
<option value="Земля"> Земля
<option value="Марс"> Марс
<option value="Венера"> Венера
</select>
<input type=submit value="Готово">
</form>А это скрипт, обрабатывающий форму.
< ?php
switch ($n1)
{
case "Земля":
print "не верно";
break;

case "Марс":
print "Верно !";
break;

case "Венера":
print "не верно";
break;
}
?>
--
создал два файла, но когда выбираю что нибудь из списка и нажимаю "ГОТОВО" - у меня выскакивает надпись:
Notice: Undefined variable: n1 in e:\WWW\HTML\script2_1.php on line 2
то есть не может найти переменную "n1"
Может быть у меня РНР кривой?
Спасибо!

   
 
 автор: PantiL   (23.01.2006 в 13:11)   письмо автору
 
   для: Mouse   (23.01.2006 в 12:41)
 

У Вас отключены register_globals - Добавьте в обработчик в начало перед switch

$n1 = $_POST['n'];

   
 
 автор: Дембель   (23.01.2006 в 13:16)   письмо автору
 
   для: PantiL   (23.01.2006 в 13:11)
 


$n1 = $_POST['n1']; 

   
 
 автор: Mouse   (23.01.2006 в 13:16)   письмо автору
 
   для: PantiL   (23.01.2006 в 13:11)
 

Не помогло, похоже у меня с переменными какая-то фигня - по поводу переменных нужны какие-нибудь записи в php.ini? Спасибо.

   
 
 автор: Дембель   (23.01.2006 в 13:21)   письмо автору
 
   для: Mouse   (23.01.2006 в 13:16)
 

1)Уберите все кавычки из формы вот так сделаете <form action=our_file.php method=post>
2) Какое установлено ПО(версия php)

   
 
 автор: Mouse   (23.01.2006 в 13:27)   письмо автору
 
   для: Дембель   (23.01.2006 в 13:21)
 

Без ковычек помогло! Спасибо большое!

   
 
 автор: P@Sol   (23.01.2006 в 13:28)   письмо автору
 
   для: Mouse   (23.01.2006 в 13:27)
 

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

   
 
 автор: Дембель   (23.01.2006 в 13:30)   письмо автору
 
   для: P@Sol   (23.01.2006 в 13:28)
 

>хм....по идеи и с кавычками должно работать...я всегда
>ставлю кавычки

Дело в том, что в последних версиях пхп кавычки не поддерживаются в формах

   
 
 автор: P@Sol   (23.01.2006 в 13:33)   письмо автору
 
   для: Дембель   (23.01.2006 в 13:30)
 

в честь чего это? как связана html форма с кавычками в пхп?
а на счет последних версий вы про php5 или про 4.4.1?

   
 
 автор: Mouse   (23.01.2006 в 13:50)   письмо автору
 
   для: Дембель   (23.01.2006 в 13:30)
 

У меня 5.0.4 - это новая версия или как?

   
 
 автор: P@Sol   (23.01.2006 в 13:57)   письмо автору
 
   для: Mouse   (23.01.2006 в 13:50)
 

это одна из последних в серии php5...последня 5.1.2

   
 
 автор: Mouse   (23.01.2006 в 14:01)   письмо автору
 
   для: P@Sol   (23.01.2006 в 13:57)
 

Вы знаете, у меня сложилось впечатление что РНР5 много чем отличается от 4-го - начиная с того что по умолчанию не поддерживает MySQL. Есть у него еще какие-нибудь "подводные камни" типа этого с кавычками, не в курсе?

   
 
 автор: cheops   (23.01.2006 в 14:33)   письмо автору
 
   для: Mouse   (23.01.2006 в 14:01)
 

На самом деле всё логично, если учитывать тот факт, что начиная с PHP 5 все расширения по умолчанию отключены и пользователь должен сам подключать те из них, которые ему необходимы.

   
 
 автор: cheops   (23.01.2006 в 14:36)   письмо автору
 
   для: Mouse   (23.01.2006 в 14:01)
 

Кавычки работают одинаково во всех версиях. Просто начиная с последних версий директива register_globals по умолчанию отключена и отключена директива register_long_arrays, которая разрешает использование длинных суперглобальных массивов, поэтому лучше ориентироваться только на короткие суперглобальные массивы ($_GET, $_POST и т.п.).

   
 
 автор: P@Sol   (24.01.2006 в 12:52)   письмо автору
 
   для: cheops   (23.01.2006 в 14:36)
 

ну не пойму я причем тут кавычки из html тэга <form> и php? они разнесены по времени и месту....

   
 
 автор: Timax   (31.03.2006 в 20:43)
 
   для: P@Sol   (24.01.2006 в 12:52)
 

А где ж вы </otions> закрываете в форме?! ;)

   
Rambler's Top100
вверх

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