如何检查文本框中的文本是否与PHP中的变量匹配
我试图检查用户在我的文本框中输入的名为“valid”的文本是否等于包含随机生成的6位数的变量如何检查文本框中的文本是否与PHP中的变量匹配,php,Php,我试图检查用户在我的文本框中输入的名为“valid”的文本是否等于包含随机生成的6位数的变量 $validkey = rand(100000,999999); 我的问题是,;在“if”语句中,如何检查用户在文本框中输入的数字是否与$validkey变量相同?它将嵌入一个if中,if检查是否单击了一个名为“next”的按钮。因此,当点击按钮时,它将进行检查 我目前的代码如下: <form method="post" action="<?php echo htmlspecialchar
$validkey = rand(100000,999999);
我的问题是,;在“if”语句中,如何检查用户在文本框中输入的数字是否与$validkey变量相同?它将嵌入一个if中,if检查是否单击了一个名为“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新手
感谢您提前提供的帮助。使用intval函数解析输入值,然后将其与生成的值进行比较。这是一种情况吗
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
}
我不知道这是否有帮助,或者我正确理解了你的问题 您是否尝试过如果$_POST['valid']=$validkey{} 或者您也可以使用jqueryajax请求,无需提交下一步按钮,当用户将离开文本框时,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)
}
})
});
}) 试试这段代码。这是非常基本的代码。进行必要的更改,如添加表单和所有内容,并根据需要使用它
<?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>
希望这就是你一直在寻找的东西。到目前为止你做了什么?代码在哪里?我不是真的要求代码修复,更多的是要求在“if”语句中添加什么。文本框的名称为“valid”,并且位于一个具有“post”方法的表单中,因此,如果我是正确的,要获取文本框中的文本,请使用$\u post['valid']。因此,使用它和VALABLE$validkey是否不足以生成所需的'if'语句?if$\u POST['valid']=$validkey{//他们是sameI尝试过的,这实际上是我目前拥有的,但我认为这是错误的,我将编辑我的问题以添加更多信息以提供帮助。那么当你尝试它时发生了什么?伙计,这是一个很大的数字…如果我以那种形式输入,我可能永远都不会遇到真正的情况。你正在将字符串与数字进行类型比较r、 我建议将textentry转换为整数,或将$validkey转换为字符串。