флажок останавливает мой скрипт Jquery - PullRequest
1 голос
/ 07 сентября 2010

У меня есть форма входа, если я не проверяю флажок Запомнить меня в PHP-скрипте, это выдает ошибку <b>Notice</b>: Undefined index: autologin in в моем файле .php у меня есть $check_autologin = $_POST['autologin']; И я проверяю, проверено ли пользователем

if($check_autologin == 1)
    {
   $password_hash = $encrypted_mypassword;     
   setcookie ($cookie_name, 'usr='.$username.'&hash='.$password_hash, time() + $cookie_time);
   }

и это мое поле флажка <input type="checkbox" name="autologin" value="1">Remember Me<br />

Как флажок может вернуть любое значение по умолчанию, если оно не отмечено?

Ответы [ 2 ]

2 голосов
/ 07 сентября 2010

Я подозреваю, что проблема в том, что ваш флажок не установлен, значение не существует в массиве $ _POST.

Попробуйте изолировать проверку значения с помощью

isset( $_POST['autologin'] )

Таким образом:

$check_autologin = false;
if( isset( $_POST['autologin'] ) ) {
    $check_autologin = $_POST['autologin'];
}
0 голосов
/ 07 сентября 2010

Неопределенный индекс означает, что вы просите PHP сообщить вам значение элемента массива, который не существует.

Это «Уведомление», что означает, что это не фатальная ошибка ине останавливает выполнение программы, но это хорошая идея для исправления.(также можно установить PHP так, чтобы он не сообщал о событиях уровня уведомления, но, опять же, лучше просто исправить проблему)

Как это исправить?

a) Как ужеРекомендуется проверить, установлено ли оно, прежде чем проверять значение.Поэтому вместо того, чтобы просто сказать, если ($ _ POST ['x']) сказать, если (isset ($ _ POST ['x]) && $ _POST [' x '])

b) Явно подавить предупреждение.PHP позволяет вам сделать это с символом @.Таким образом, вы бы сказали, что если (@ $ _ POST ['x'])

c) Убедитесь, что вы когда-либо делали ссылку только на те переменные, которые, как вы знаете, были установлены.Это будет означать другой подход к вашему коду, но может стать началом к ​​повышению его надежности в целом.Например, вместо того, чтобы смотреть прямо на ожидаемые вами значения $ _POST, вы можете написать цикл foreach ($ _ POST), который позволяет вам проверять все в $ _POST.Это также позволит вам определить, когда кто-то публикует значения, которые вы не ожидаете получить.

...