не отображается ошибка

Тема в разделе "PHP", создана пользователем sunyang, 10 май 2011.

Модераторы: latteo
  1. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    444
    Симпатии:
    30
    не могу вывести ошибку в случае неправельно введенных логина или паса.

    вот скрипт:

    PHP:
    <?
     
    //Устанавливам сессию и закидываем туда переменные логина и пароля
            
    function setSession ($login$pass)
            {
              
    $name cut ($login);
              
    $pass cut ($pass);
              
    $_SESSION["login"] = $name;
              
    $_SESSION["pass"] = $pass;
              
    $_SESSION["enter"] = "false";
              
            }

             function 
    checkUser()
                {
                  if (isset (
    $_SESSION['login']) and $_SESSION['pass'])
                  {

                
    $q "SELECT * FROM ws_users WHERE mail = '$_SESSION[login]' and  pass = '$_SESSION[pass]'";
                
    $result mysql_query ($q);
                
    $row mysql_fetch_array($result);

                    if (
    $row==0)
                        {
                            
    $_SESSION["enter"] = "false";
                        }

                    else {
                     
                    
    $_SESSION["enter"] = "true";
                    
    $total_vots explode ("|"$row['votes']);
                    
    $_SESSION["total_vots"] = $total_vots//Список всех голосований, в которых принимал участие юзер
                    
    $_SESSION["id_user"] = $row['id']; //Список всех голосований, в которых принимал участие юзер
                    
    $_SESSION["status"] = $row['status'];
                         }
                         
               if (
    $_SESSION["enter"] == "false"header ("location: enter.php");
              }
              else 
    header ("location: enter.php");

              }



    if (!empty (
    $logon))
    {
    if (!empty (
    $name) and !empty ($pas))
        {
        
    $ses = new Users;
        
    $ses->setSession ($name,$pas);
        
        
    $ses->checkUser();
        if (
    $_SESSION['enter'] == "true"header ("location: index.php");
        else 
    $msg "ОШИБКА !!!"
        
    }
    }
    include (
    "tpl/top.php");
    ?>


    <h4>Вход в авторский раздел</h4>

    <? print $msg; ?>

    <form method="post">
    <input type="hidden" name="submit" value="login">
    <p>E-mail: <input type="text" name='name' size=25>
    <br>Пароль <input type="password" name='pas' size=25>
    <input type="submit" name="logon" value="Войти">
    </form>
    при вводе неправильных логов почему-то не показывает переменную $msg

    Как сделать print ошибки при неправильно введенных логах в данном случае?:(
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    ф-ция checkUser()

    PHP:
     if ($_SESSION["enter"] == "false"header ("location: enter.php"); 
    и ниже

    PHP:
      $ses->checkUser(); 
        if (
    $_SESSION['enter'] == "true"header ("location: index.php"); 
        else 
    $msg "ОШИБКА !!!" 
    т.е. если логин неверно введен то делаем редирек
    а код с назначением переменной $msg находится ниже
    => после редиректа он уже пустой ...
    а до редиректа оно туда соответственно не доходит
     
  3. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    444
    Симпатии:
    30
    т.е. я так понял нужно проверять на совпадение введенных логов на хранящиеся в базе до работы сессий?
     
  4. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    т.е. ф-ция должна проверять че там она проверяет и возвращать какой-то признак .. к примеру true / false or 1/2/3 ...
    а во внешнем скрипте в зависимости от возвращенного значнеия принимать решение об редиректе или же выводить сообщение об ошибке
     
  5. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    разпостраненная ошибка - после перенаправления нету вызова звершения работы скрипта (die, exit).