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

sunyang

Мастер
Регистрация
25 Апр 2009
Сообщения
440
Реакции
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 ошибки при неправильно введенных логах в данном случае?:(
 
ф-ция checkUser()

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

и ниже

PHP:
  $ses->checkUser(); 
    if ($_SESSION['enter'] == "true") header ("location: index.php"); 
    else $msg = "ОШИБКА !!!"

т.е. если логин неверно введен то делаем редирек
а код с назначением переменной $msg находится ниже
=> после редиректа он уже пустой ...
а до редиректа оно туда соответственно не доходит
 
т.е. я так понял нужно проверять на совпадение введенных логов на хранящиеся в базе до работы сессий?
 
т.е. ф-ция должна проверять че там она проверяет и возвращать какой-то признак .. к примеру true / false or 1/2/3 ...
а во внешнем скрипте в зависимости от возвращенного значнеия принимать решение об редиректе или же выводить сообщение об ошибке
 
разпостраненная ошибка - после перенаправления нету вызова звершения работы скрипта (die, exit).
 
Назад
Сверху