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

Форум PHP

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

 

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

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

тема: Проверка полей формы
 
 автор: algoritm   (04.01.2013 в 22:22)   письмо автору
 
 

У меня тут проблема, при выводе сообщений о не заполненных полях формы. Когда я нажимаю кнопку отправить забыв внести данные то все нормально сообщения выводятся например "Все поля должны быть заполнены!", их там еще несколько. Потом сессия уничтожается и выводится ошибка.
Notice: Undefined index: msg in index.php on line 61.
Подскажите пожалуйста как это исправить вот код.


<?php
session_start
();

if(!empty(
$_POST))
{

$err = array();
//Проверка всех пустых полей
    
if(!$_POST['username'] || !$_POST['email'] || !$_POST['Password'])
        
$err[] = 'Все поля должны быть заполнены!';
//Проверка длины имени пользователя      
    
if(strlen($_POST['username'])<|| strlen($_POST['username'])>32)
      {
        
$err[] = 'Имя пользователя должно содержать от 4 до 32 символов!';
      }
//Проверка email 
    
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$_POST['email']))
      {
        
$err[] = 'e-mail не верен!';
      }
    
    
    if(!
count($err))
      { 
        
$_SESSION['msg'] = "";
      }

    if(
count($err))
      {
          
$_SESSION['msg'] = implode('<br/>',$err);
      }
    
header("Location: index.php");
    exit;    
   
}

?>

<form action="" method="post">
                
                    
<?php
                        
if($_SESSION['msg'])
{
    echo 
'<div style="color:red">'.$_SESSION['msg'].'</div>';
    unset(
$_SESSION['msg']);
}
                    
?>
                    
                    
<label >Имя пользователя:
<input type="text" name="username" id="username" value="" size="23" /><br>
            </label>
                    <label>Password:
            <input type="text" name="Password" id="Password" size="23" /><br>
                    </label>
                    
                    <label>Email:
            <input type="text" name="email" id="email" size="23" />
    </label>
    <br>
                    
    <label>Пароль будет отправлен Вам по почте.</label>
    <input type="submit" name="submit" value="Зарегистрироваться"/>
</form>


  Ответить  
 
 автор: cheops   (05.01.2013 в 10:05)   письмо автору
 
   для: algoritm   (04.01.2013 в 22:22)
 

Вместо
if($_SESSION['msg'])

попробуйте следующее условие (т.е. добавьте проверку на существование)
if(isset($_SESSION['msg']) && !empty($_SESSION['msg']))

  Ответить  
 
 автор: algoritm   (05.01.2013 в 14:59)   письмо автору
 
   для: cheops   (05.01.2013 в 10:05)
 

Спасибо за ответ, помогло

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

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