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

Форум PHP

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

 

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

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

тема: Notice: Undefined index: submit in
 
 автор: Lex88   (31.01.2007 в 21:25)   письмо автору
 
 

Подскажите пожалуйста, везде в книжках написано что проверять была ли нажата кнопка submit надо так: if ($submit =='Login') или if ($_POST['submit']=='Login'). У меня почемуто ошибка вываливается когда страница первый раз грузится если кнопка ненажата была. Как тут надо делать?

   
 
 автор: Саня   (31.01.2007 в 21:34)   письмо автору
 
   для: Lex88   (31.01.2007 в 21:25)
 

Для этого нужно присвоить name кнопке:
<input type="submit" name="submit" value="Login"/>
Проверочный код будет выглядет так:
if ($_POST['submit' ]== 'Login')

Или же
<input type="submit" name="blah" value="Войти"/>
Тогда проверочный код будет выглядет так:
if ($_POST['blah' ]== 'Войти')

   
 
 автор: Alph[p]a   (31.01.2007 в 21:35)   письмо автору
 
   для: Lex88   (31.01.2007 в 21:25)
 

<form ..
<input name=enter>
</form>
Проверка
$enter=$_POST['enter'];
if ($enter)
{
...
}
опоздал немного (((

   
 
 автор: cheops   (01.02.2007 в 01:13)   письмо автору
 
   для: Lex88   (31.01.2007 в 21:25)
 

Ошибка какого рода? Приведите текст сообщения?

   
 
 автор: Lex88   (01.02.2007 в 10:16)   письмо автору
 
   для: cheops   (01.02.2007 в 01:13)
 

Вот эта ошибка Notice: Undefined index: submit in T:\home\localhost\login.php on line 11
Эта строка if ($_POST['submit'] == 'Enter' )
Загружается этаже страница где форма, при первой загрузке эта ошибка, а если нажать на форму то пропадает ошибка.
Вот форма <FORM ACTION="$php_self" METHOD="post" NAME="searchform">
<INPUT TYPE="TEXT" NAME="user_name" SIZE="15" CLASS="zinput" VALUE="Логин"><br>
<INPUT TYPE="password" NAME="password" SIZE="15" CLASS="zinput" VALUE="Пароль">
<INPUT TYPE="Submit" name="submit" CLASS="zinput" VALUE="Enter">
</FORM>

   
 
 автор: Trianon   (01.02.2007 в 10:37)   письмо автору
 
   для: Lex88   (01.02.2007 в 10:16)
 

запишите эту строку if ($_POST['submit'] == 'Enter' )
так: if (!empty($_POST['submit']))

   
 
 автор: Lex88   (01.02.2007 в 10:38)   письмо автору
 
   для: Trianon   (01.02.2007 в 10:37)
 

так работает, но чето кажется не практично это)

   
 
 автор: Trianon   (01.02.2007 в 10:42)   письмо автору
 
   для: Lex88   (01.02.2007 в 10:38)
 

Вот как? Аргументы воспоследуют?
Если нет, останется посоветовать перекреститься. Говорят, помогает в таких случаях.

   
 
 автор: Lex88   (01.02.2007 в 10:47)   письмо автору
 
   для: Trianon   (01.02.2007 в 10:42)
 

мда... я серьезно, а ты тут сразу нервничать

   
 
 автор: Trianon   (01.02.2007 в 11:07)   письмо автору
 
   для: Lex88   (01.02.2007 в 10:47)
 

А если серьезно, то к переменным (или элементам массива) существование которых под вопросом, можно обращаться только двумя методами. С помощью функции isset() и с помощью функции empty(). Любой другой способ при включенных диагностических сообщениях будет приводить к выдаче диагностики.

   
 
 автор: cheops   (01.02.2007 в 12:46)   письмо автору
 
   для: Lex88   (01.02.2007 в 10:38)
 

Вы можете отключить вывод Notice - это лишь советы (на всех хостингах вывод Notice отключён).

   
 
 автор: Fox   (01.02.2007 в 01:22)   письмо автору
 
   для: Lex88   (31.01.2007 в 21:25)
 

Создай две страници

//------- index.html
<html>
<form action='do.html' method='post'>
<input type='text' name='txt[0]' value=''>
<input type='submit' value='Отправить'>
</form>
</html>
//------- do.html
<?
if($Submit)
{
while(list($key,$val) = each($txt))
echo "ключ - $key, значение - $val<br>\n";
}
?>

   
 
 автор: Lex88   (01.02.2007 в 10:18)   письмо автору
 
   для: Fox   (01.02.2007 в 01:22)
 

такой способ работает, это я знаю. А вот если форма на той же странице

   
 
 автор: Alph[p]a   (01.02.2007 в 11:57)   письмо автору
 
   для: Lex88   (01.02.2007 в 10:18)
 

вот так...токо не говори что это не практично)
index.php

<?php
echo '<form action=index.php method=POST>';
echo 
'<input type=text name=name><br>';
echo 
'<input type=submit name=ready>';
echo 
'</form>';
$ready=$_POST['ready'];
$name=$_POST['name'];
if (!empty(
$ready))
{
echo 
'Вы ввели - '.$name;    
}
else
{echo 
'<br>Введите данные';}
?>

   
 
 автор: Trianon   (01.02.2007 в 12:35)   письмо автору
 
   для: Alph[p]a   (01.02.2007 в 11:57)
 

Ок. Не он. Я скажу. При прямом запуске скрипта, обращение к несуществующему элементу массива _POST в строке $ready=$_POST['ready']; к чему приведет?

   
Rambler's Top100
вверх

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