Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一个变量的验证不能等于另一个变量不起作用_Php - Fatal编程技术网

Php 一个变量的验证不能等于另一个变量不起作用

Php 一个变量的验证不能等于另一个变量不起作用,php,Php,我试图做一个验证,当值相同时,不允许用户插入,但每当我试图正常插入时,每个数据都不同,它不会插入 这是我的代码,问题在于if和elseif。插入在没有ifs和else的情况下工作,但我需要进行验证,当值相同时,该验证不允许我插入 <?php $url='Settings.php'; if(isset($_POST['submitanswertype'])) { $radio1 = $_POST['radio1']; $radio2 = $_POST['rad

我试图做一个验证,当值相同时,不允许用户插入,但每当我试图正常插入时,每个数据都不同,它不会插入

这是我的代码,问题在于if和elseif。插入在没有ifs和else的情况下工作,但我需要进行验证,当值相同时,该验证不允许我插入

<?php


$url='Settings.php';

    if(isset($_POST['submitanswertype'])) {

    $radio1 = $_POST['radio1'];
    $radio2 = $_POST['radio2'];
    $radio3 = $_POST['radio3'];
    $radio4 = $_POST['radio4'];
    $radio5 = $_POST['radio5'];
    $radio6 = $_POST['radio6'];
    $radio7 = $_POST['radio7'];
    $radio8 = $_POST['radio8'];
    $radio9 = $_POST['radio9'];
    $radio10 = $_POST['radio10'];
    $answerype = $_POST['answertype'];

    $answer = new CategoryDAO();

        if($radio1 == $radio2 || $radio1 == $radio3 || $radio1 == $radio4 || $radio1 == $radio5 || $radio1 == $radio6 || $radio1 == $radio7 || $radio1 == $radio8 || $radio1 == $radio9 || $radio1 == $radio10)
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }
        else if($radio2 == $radio1 || $radio2 == $radio3 || $radio2 == $radio4 || $radio2 == $radio5 || $radio2 == $radio6 || $radio2 == $radio7 || $radio2 == $radio8 || $radio2 == $radio9 || $radio2 == $radio10)
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }
        else if($radio3 == $radio1 || $radio3 == $radio2 || $radio3 == $radio4 || $radio3 == $radio5 || $radio3 == $radio6 || $radio3 == $radio7 || $radio3 == $radio8 || $radio3 == $radio9 || $radio3 == $radio10)
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }
        else if($radio4 == $radio1 || $radio4 == $radio2 || $radio4 == $radio3 || $radio4 == $radio5 || $radio4 == $radio6 || $radio4 == $radio7 || $radio4 == $radio8 || $radio4 == $radio9 || $radio4 == $radio10)
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }
        else if($radio5 == $radio1 || $radio5 == $radio2 || $radio5 == $radio3 || $radio5 == $radio4 || $radio5 == $radio6 || $radio5== $radio7 || $radio5 == $radio8 || $radio5 == $radio9 || $radio5 == $radio10)
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }
        else if($radio6 == $radio1 || $radio6 == $radio2 || $radio6 == $radio3 || $radio6 == $radio4 || $radio6 == $radio5 || $radio6 == $radio7 || $radio6 == $radio8 || $radio6 == $radio9 || $radio6 == $radio10)
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }
        else if($radio7 == $radio1 || $radio7 == $radio2 || $radio7 == $radio3 || $radio7 == $radio4 || $radio7 == $radio5 || $radio7 == $radio6 || $radio7 == $radio8 || $radio7 == $radio9 || $radio7 == $radio10)
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }
        else if($radio8 == $radio1 || $radio8 == $radio2 || $radio8 == $radio3 || $radio8 == $radio4 || $radio8 == $radio5 || $radio8 == $radio6 || $radio8 == $radio7 || $radio8 == $radio9 || $radio8 == $radio10)
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }
        else if($radio9 == $radio1 || $radio9 == $radio2 || $radio9 == $radio3 || $radio9 == $radio4 || $radio9 == $radio5 || $radio9 == $radio6 || $radio9 == $radio7 || $radio9 == $radio8 || $radio9 == $radio10)
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }
        else if($radio10 == $radio1 || $radio10 == $radio2 || $radio10 == $radio3 || $radio10 == $radio4 || $radio10 == $radio5 || $radio10 == $radio6 || $radio10 == $radio7 || $radio10 == $radio8 || $radio10 == $radio9)
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }
        else{

    //echo "this line waas called ". $_SESSION['catid'] . "vALUE". $_POST['submitsubcategory'];
    $answer->AddAnswerType( $_POST['answertype'], $radio1, $radio2, $radio3, $radio4, $radio5, $radio6, $radio7, $radio8, $radio9, $radio10); // adds the subcategory to the 'category' table
        echo '<META HTTP-EQUIV=REFRESH CONTENT="0; '.$url.'">';
        }
}

?>

正如您所注意到的,您的检查方式会导致大量代码。很难维护,我们任何人都无法排除故障

您还可以使调试变得更容易。。。如果在表单中使用数组:

<input type="radio" name="radio[]" value="some_value">
                              ^^ Now radio is an array.
这是你的解决方案

有语法错误

在php elseif中,一起编写而不是单独编写

elseif($radio2 == $radio1 || $radio2 == $radio3 || $radio2 == $radio4 || $radio2 == $radio5 || $radio2 == $radio6 || $radio2 == $radio7 || $radio2 == $radio8 || $radio2 == $radio9 || $radio2 == $radio10)
{
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
}

试试看。

你可以用这样短的方式来做

<?php


$url='Settings.php';

    if(isset($_POST['submitanswertype'])) {

    $radio1 = $_POST['radio1'];
    $radio2 = $_POST['radio2'];
    $radio3 = $_POST['radio3'];
    $radio4 = $_POST['radio4'];
    $radio5 = $_POST['radio5'];
    $radio6 = $_POST['radio6'];
    $radio7 = $_POST['radio7'];
    $radio8 = $_POST['radio8'];
    $radio9 = $_POST['radio9'];
    $radio10 = $_POST['radio10'];
    $answerype = $_POST['answertype'];

    $narray = array_unique($_POST);

    $answer = new CategoryDAO();

        if(count($_POST)!=count($narray))
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }else{

    //echo "this line waas called ". $_SESSION['catid'] . "vALUE". $_POST['submitsubcategory'];
    $answer->AddAnswerType( $_POST['answertype'], $radio1, $radio2, $radio3, $radio4, $radio5, $radio6, $radio7, $radio8, $radio9, $radio10); // adds the subcategory to the 'category' table
        echo '<META HTTP-EQUIV=REFRESH CONTENT="0; '.$url.'">';
        }
} ?>

这里没有mysql和表单html。无论如何;检查查询中的错误。我认为mysql在AddAnswerType函数中。我猜?检查$radio1-10里面是什么,为什么你要做这么多的假设?你只需要一个oO就可以做到这一点?@Fred ii-if语句的数量让我感到害怕:AddAnswerType函数返回什么?如果这一个解决了这个谜,你肯定会得到我的投票;-编辑:其他人同意,我也同意。这样更好。而不是张贴太多的输入名称。阵列就是方法@MateiMihai广播集团;但是,对于OP为什么要使用文本类型,真的很奇怪。编辑:等等。。。我想我错了。@MateiMihai它需要根据不同的情况进行一些修改,但由于OP使用了名称,这似乎是一个好的开始:-我希望OP使用的是类型收音机。这对输出没有影响谢谢先生,这对我的情况有效!我不知道为什么有人否决了你的答案,但我点击了这个答案是有用的。再次感谢@Varun Malhotrat先生,这是错误的:由于表格中还有其他输入,因此无法知道它们是否也必须是唯一的。欢迎您的光临,我也不知道有人对我的答案投了反对票,无论如何,我很高兴帮助您,谢谢我们没想到这就是为什么有时我觉得我应该离开的原因:@jeroen请阅读以下问题,即任何变量都不应具有相同的值:
<?php


$url='Settings.php';

    if(isset($_POST['submitanswertype'])) {

    $radio1 = $_POST['radio1'];
    $radio2 = $_POST['radio2'];
    $radio3 = $_POST['radio3'];
    $radio4 = $_POST['radio4'];
    $radio5 = $_POST['radio5'];
    $radio6 = $_POST['radio6'];
    $radio7 = $_POST['radio7'];
    $radio8 = $_POST['radio8'];
    $radio9 = $_POST['radio9'];
    $radio10 = $_POST['radio10'];
    $answerype = $_POST['answertype'];

    $narray = array_unique($_POST);

    $answer = new CategoryDAO();

        if(count($_POST)!=count($narray))
        {
            echo '<script language="javascript">';
            echo 'alert("Cannot insert duplicate option name")';
            echo '</script>';
        }else{

    //echo "this line waas called ". $_SESSION['catid'] . "vALUE". $_POST['submitsubcategory'];
    $answer->AddAnswerType( $_POST['answertype'], $radio1, $radio2, $radio3, $radio4, $radio5, $radio6, $radio7, $radio8, $radio9, $radio10); // adds the subcategory to the 'category' table
        echo '<META HTTP-EQUIV=REFRESH CONTENT="0; '.$url.'">';
        }
} ?>