PHP、未定义索引、isset 和单选按钮
PHP, undefined index, isset and radio buttons
我有一个表单并且正在执行输入验证,所以当用户输入错误时我会生成一条错误消息并重新填写用户输入的所有字段。
现在,当我开始将 php.ini 文件用于 mysql 内容时,会弹出一些错误,例如
Undefined index: var in file.php on line n
对于简单的文本输入(标题),我可以很容易地解决这个问题,方法是
value="<?= isset($_POST["title"]) ? $_POST["title"] : "";?>"
不过,我还使用了 5 个单选按钮来给出评分,如下所示:
value="1" <?= $_POST["grade"] == "1" ? "checked" : "" ?>
value="2" <?= $_POST["grade"] == "2" ? "checked" : "" ?>
etc
我也试过用isset绷带,
value="1" <?= isset($_POST["grade"] == "1") ? "checked" : "" ?>
但我很快就被提醒,isset 只适用于变量和数组,不适用于布尔值。
解决这个问题的合适方法是什么?
您要做的第一件事是检查变量是否已设置。然后您可以将您的比较附加到运算符。
value="1" <?= isset($_POST["grade"]) && $_POST["grade"] == "1" ? "checked" : "" ?>
我有一个表单并且正在执行输入验证,所以当用户输入错误时我会生成一条错误消息并重新填写用户输入的所有字段。
现在,当我开始将 php.ini 文件用于 mysql 内容时,会弹出一些错误,例如
Undefined index: var in file.php on line n
对于简单的文本输入(标题),我可以很容易地解决这个问题,方法是
value="<?= isset($_POST["title"]) ? $_POST["title"] : "";?>"
不过,我还使用了 5 个单选按钮来给出评分,如下所示:
value="1" <?= $_POST["grade"] == "1" ? "checked" : "" ?>
value="2" <?= $_POST["grade"] == "2" ? "checked" : "" ?>
etc
我也试过用isset绷带,
value="1" <?= isset($_POST["grade"] == "1") ? "checked" : "" ?>
但我很快就被提醒,isset 只适用于变量和数组,不适用于布尔值。
解决这个问题的合适方法是什么?
您要做的第一件事是检查变量是否已设置。然后您可以将您的比较附加到运算符。
value="1" <?= isset($_POST["grade"]) && $_POST["grade"] == "1" ? "checked" : "" ?>