PHP логин и редирект - PullRequest
       18

PHP логин и редирект

0 голосов
/ 29 июля 2011

Следующий код PHP отображает ошибку перед вводом неверного пароля и выдает - Примечание: неопределенный индекс: пароль

<?php 
    //Specify password here
    $pass='pass';
    if($_POST['password']!=$pass)
    {
        echo ("<div class='errmg'>Error</div>");
    }
    else
    {
        header( 'Location: admin.php' ) ;
    }
?>

Ниже у меня есть следующий HTML

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
            Enter password:
            <input name="password" type="password">
            <input name="send" type="submit" value="Log in!">
        </form>

Пожалуйста, помогите мне исправить эти ошибки и сделать это перенаправление логина лучше

Ответы [ 2 ]

4 голосов
/ 29 июля 2011

Если вы не отправили форму, $_POST пусто, поэтому нет $_POST['password'], как говорится в ошибке. Всегда проверяйте, существуют ли переменные, которые могут быть или не быть установлены, прежде чем их использовать:

if (isset($_POST['password'])) {
    if ($_POST['password'] == $pass) {
        header(…);
    } else {
        // error
    }
}
1 голос
/ 29 июля 2011

Это означает, что $ _POST ['password'] установлен неправильно.Я не уверен, почему, это выглядит найти в вашем коде.Я просто посмотрю, установлен ли он первым, а затем посмотрим, правильно ли он.

   if(isset($_POST['password']) {
    if($_POST['password'] != $pass) {
        echo "<div class='errmg'>Error</div>";
    } else {
        header('Location: admin.php');
    }
}

Во-вторых, вы всегда должны закрывать свои HTML-теги, оба входных тега не закрыты, чтобы закрыть их, добавьте "/> "в конце вместо просто"> ", например, так:

<input name="password" type="password" />
<input name="send" type="submit" value="Log in!" />
...