如何对照PHP变量检查表单输入?

时间:2019-05-30 作者:Shaun21uk

我从WordPress元数组中提取了一个变量-$vCode.

此变量是一个5位数。

在页面前端,我有一个HTML表单,请求输入代码和一个提交按钮。

提交后,我希望检查输入的代码$vCode 如果匹配或不匹配,则显示“success”或“fail”。

我应该在这里使用HTML表单还是PHP

$vCode = 11111;
$message = "";
if(!isset($_POST[\'submitbutton\'])){
$message = "not submitted";
} elseif ((isset($_POST[\'submitbutton\'])) && ($input = $vCode)) {//check if form was submitted
  $input = $_POST[\'vCode\']; //get input text
  $message = "Success! You entered: ".$input;
  } elseif ((isset($_POST[\'submitbutton\'])) && ($input != $vCode)) {
  $input = $_POST[\'vCode\'];
  $message = "OOps";
}
?>
<form action="" method="post">
<?php echo $message; ?>
  Validation Code:<br>
  <input type="number" name="vCode" value=""><br>
  <input type="submit" name="submitbutton" value="Submit">
</form>
这总是表明我输入了正确的数字?

一如既往地感谢你。

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

您的问题是:

$input = $vCode
这不是比较变量。它指定了$vCode$input. 如果要比较这两个值,需要使用=====.

$input == $vCode
但它仍然不起作用,因为你还没有真正定义$input. 您只是在比较之后定义它,这没有多大用处。

因此,您的逻辑需要如下所示:

$vCode   = 11111;
$message = \'\';

if( ! isset( $_POST[\'submitbutton\'] ) ) {
    $message = \'not submitted\';
} else {
    $input = $_POST[\'vCode\'];

    if ( $input == $vCode ) {
        $message = \'Success! You entered: \' . $input;
    } elseif ( $input != $vCode ) {
        $message = \'OOps\';
    }
}
请注意:

我们正在分配$_POST[\'vCode\']$input 在检查之前$_POST[\'submitbutton\'] 设置,因为代码将运行的唯一原因是,如果是,则是因为第一个条件== 比较值。我们正在使用== 而不是===, 因为$vCode 是整数,而$_POST[\'vCode\'] 将是字符串。如果你真的$vCode 从post meta,那么它也将是一个字符串,在这种情况下,您可以使用===.

if ( (int) $input === (int) $vCode ) {

相关推荐

Dealing with html forms

I want to work with html form but i cant understand the Action method and when we need to use it.For example found this code on w3schools:<form action=\"action_page.php\"> First name:<br> <input type=\"text\" value=\"Mickey\">&#