php - 验证php中的单选按钮不起作用
问题描述
我正在尝试使用 PHP 验证单选按钮。但是,即使选择了其中一个选项,我仍然会收到一条错误消息,指出未选择任何一个单选按钮,即“请选择您的资格。这是我的 html 代码:
<p>Qualification: </p>
<p><label for="underGrad">Undergraduate</label>
<input type="radio" id="underGrad" name="qualification" value="underGrad">
</p>
<p><label for="postGrad">Postgraduate</label>
<input type="radio" id="postGrad" name="qualification" value="postGrad">
</p>
我的 PHP 验证代码:
if (!isset($_POST["qualification"])) {
header("location:register.php");
exit();
}
else{
$qualification=$_POST["qualification"];
$qualification=sanitise_input($qualification);
if (($qualification!=="underGrad") or (qualification!=="postGrad")) {
$err_msg .="<p>Please select your qualification.</p>";
}
}
解决方案
问题是你的逻辑失败了,如果你看
if (($qualification!=="underGrad") or (qualification!=="postGrad")) {
它是说如果资格不是本科或研究生,因为它不能同时是两者,或者总是会说一个不匹配。
你可以and
说如果不是...
if (($qualification!=="underGrad") and (qualification!=="postGrad")) {
或者你可以说它是否是空的(所以它必须包含一些东西)
if ( empty($qualification) ) {
最后一个还允许您添加更多选项而无需更新条件。
推荐阅读
- python-3.x - Python:如何通过比较列表的内容将列表拆分为多个?
- android - 在将数据从一个片段发送到另一个片段时,在同一行中初始化和声明 Bundle
- php - Laravel foreach:未定义的变量
- java - 如何执行jdbc查询?
- angular - Angular 9 createEffect Observable 类型错误
- java - glBufferData 使用 Buffer 的哪一部分
- python - 如何使用子进程函数执行命令
- vba - 为什么对象引用过早销毁?
- c# - Websocket 仅在存在 Console.Write() 时才接收消息,这是为什么呢?
- javascript - 我在菜单中的切换按钮遇到问题,当它的最大宽度 = 1200 像素时。即当我切换到切换按钮时,什么都没有出现