Когда я устанавливаю флажок, ошибок нет, но когда я не установил флажок, это дает мне ошибки.
<?php if(isset($_REQUEST['btn'])) { $remmber = $_REQUEST['active']; if($remmber == "on") { echo "Checked"; } else {$remmber = "";} } ?> <html> <form name= "frm" action = "test.php" method = "post" > <p>Username <input type = "text" name = "name" value = "" /> </p> <p>Password <input type = "text" name = "password" value = "" /> </p> <p> <td colspan = "2"><input type = "checkbox" name = "active" value = "active" />Keep Me Loged In </p> <p><input type = "submit" name = "btn" value = "Login" /> </p> </form> </html>
Для флажков, если они не отмечены, они не отправляются. Поэтому проверьте, присутствует ли оно в опубликованных данных, затем установите значение, иначе задайте blank
значение переменной. Попробуйте –
if(isset($_REQUEST['btn'])) { $remmber = !empty($_REQUEST['active']) ? 'on' : ''; if($remmber == "on") { echo "Checked"; } else $remmber = ""; }
if($remmber == "on")
но вы используете и указываете значение value = "active"
Поэтому вам нужно настроить его так, чтобы читать как
if($remmber == "active")
Изменить: (объяснение)
Причина, по которой вы получаете неопределенный индекс, заключается в том, что после того, как вы нажмете на submit submit и не отметьте этот флажок, он выдает это уведомление.
Измените свой код для чтения и проверьте, установлено ли значение флажка.
if(isset($_REQUEST['btn'])) { if(isset($_REQUEST['active'])){ $remmber = $_REQUEST['active']; if($remmber == "active") { echo "Checked"; } else {$remmber = "";} } // closing brace for if(isset($_REQUEST['active'])) }
Дополнительное изменение, чтобы показать пользователю, что флажок не установлен:
if(isset($_REQUEST['btn'])) { if(isset($_REQUEST['active'])){ $remmber = $_REQUEST['active']; if($remmber == "active") { echo "Checked"; } else {$remmber = "";} } // closing brace for if(isset($_REQUEST['active'])) else{ echo "The checkbox was not ticked."; } }
Примечания:
Вы также должны использовать условные !empty()
для ваших входов.
Вы проверяете, установлены ли флажок submit и checkbox.
Заметив комментарий, вы оставили в другом ответе:
@Barmar Я просто использую это для страницы входа, где я использую флажок, чтобы запомнить имя пользователя и пароль. – Акшат Дхиман
Пожалуйста, прочитайте следующие вопросы и ответы на стек:
Он также содержит ценную информацию о паролях.
password_hash()
а также подготовленные операторы . вы можете просто использовать isset
if(isset($_REQUEST['btn'])) { $remmber = isset($_REQUEST['active']) ? $_REQUEST['active'] : ''; if($remmber == "on") { echo "Checked"; } else {$remmber = "";} }