如何检查文本框中的文本是否与PHP中的变量匹配

时间:2014-06-05 10:54:21

标签: php

我正在尝试检查用户是否在我的文本框中输入的文字名为'有效'等于包含随机生成的6位数字的变量。

$validkey = rand(100000,999999);

我的问题是;在'如果'语句如何检查用户是否在文本框中输入了与$ validkey变量相同的数字?如果检查下一个名为“' next”的按钮,它将被嵌入到一个内容中。已被点击。因此,当单击按钮时,它将进行检查。

我目前的代码如下:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
E-mail: <input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit"> 
<br>
<input type="text" name="valid">
<input type="submit" name="next" value="Next">
</form>

<?php 
$validkey = rand(100000,999999);

if (isset($_POST["submit"]))// the user has submitted the form 
{    
    if (preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) 
    {
        if (isset($_POST["email"])) // Check if the "from" input field is filled out
        {
        $from = "Simon"; // sender
        $subject = "Validation Key";
        $message = "Your Validation key:      ".$validkey."      enter this key into the required field to gain access to the Cyber Security Health Check";
        $message = wordwrap($message, 70);
        mail($_POST["email"],$subject,$message,"From: $from\n");
    echo '<span class="success">We have sent a validation key to your email!</span>';

         }
    }
}

if (isset($_POST["next"]))
{
if ($_POST['valid'] == $validkey)
{
    echo '<span class="success">CORRECT!</span>';
}
else
{
    echo '<span class="error">INCORRECT!</span>';
}
}
?>

如果我说错了这个问题,或者我没有提供足够的信息,我很抱歉,我有点像PHP新手。

感谢您提前提供任何帮助。

4 个答案:

答案 0 :(得分:0)

使用intval函数解析输入值,然后将其与生成的值进行比较。

答案 1 :(得分:0)

这是什么事吗?

if isset($_REQUEST['next']) { // next has been pressed
    if($_REQUEST['textentry'] === $validkey) { // entered text identical to the valid key
        // handle correct entry
    }
    else {
        // handle incorrect entry
    }
}
else {
    // handle some other button being pressed
}

答案 2 :(得分:0)

我不知道它是否有帮助或我理解你的问题

你是否尝试过($ _POST [&#39;有效&#39;] === $ validkey){}

或者您也可以使用jquery Ajax请求,当用户离开文本框时,无需提交下一个按钮,ajax请求将验证,您可以根据该显示消息。

$(document).ready(function(){
$("input[name='valid']").on('blur', function(){
    var text = $("input[name='valid']").val();
    var data = 'valid=' + text;
    $.ajax({
        type:"POST",
        url:"checkvalidkey.php",
        data: data,
        success: function(html){
            $("p").html(html)
        }
    })
});

});

答案 3 :(得分:0)

试试这段代码。这是非常基本的代码。进行必要的更改,例如添加表单和所有内容,并根据需要使用它。

<?php $validkey="hello" ?> 
<script type="text/javascript">
function check_value()
{

  var code = document.getElementById("code").value;
  if(code=='<?php echo $validkey; ?>')
  {
    alert('Matches');
  }
}
</script>
<input type ="text" name="code" id="code" />
<button onclick="check_value();">Click</button>

希望这就是你要找的东西。