首页 > 解决方案 > 验证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>";
        }
    }

标签: phphtml

解决方案


问题是你的逻辑失败了,如果你看

if (($qualification!=="underGrad") or (qualification!=="postGrad")) {

它是说如果资格不是本科或研究生,因为它不能同时是两者,或者总是会说一个不匹配。

你可以and说如果不是...

if (($qualification!=="underGrad") and (qualification!=="postGrad")) {

或者你可以说它是否是空的(所以它必须包含一些东西)

if ( empty($qualification) ) {

最后一个还允许您添加更多选项而无需更新条件。


推荐阅读