PHP,未定义变量
我试图进行验证码验证,但我的一个变量没有定义。以下是我的验证码生成器代码:PHP,未定义变量,php,Php,我试图进行验证码验证,但我的一个变量没有定义。以下是我的验证码生成器代码: <?php $num = rand(1,3); switch($num) { case 1: $img = ""; $answer = "nov 18th"; break; case 2: $img = ""; $answer = "jan 19t
<?php
$num = rand(1,3);
switch($num) {
case 1:
$img = "";
$answer = "nov 18th";
break;
case 2:
$img = "";
$answer = "jan 19th";
break;
case 3:
img = "";
$answer = "school bad";
break;
}
?>
下面是我的脚本代码,用于检查验证码输入是否正确:
<?php
ini_set('display_errors',1);
print "<br /><br />";
$captcha = $_POST['captcha-verif'];
if ($captcha == $answer) {
header('Location: recommend-action.php');
}
else {
print "Incorrect Captcha. <a href='music.php'>Try Again</a>";
}
?>
我一直收到这样的信息:
注意:未定义变量:在第9行的/var/www/tts/recomment-verify-captcha.php中回答
您没有在
推荐验证captcha.php
中声明应答变量,因此该变量不存在
根据你们的代码,我知道你们想要的答案是结果
<?php
$num = rand(1,3);
switch($num) {
case 1:
$img = "";
$answer = "nov 18th";
break;
case 2:
$img = "";
$answer = "jan 19th";
break;
case 3:
$img = "";
$answer = "school bad";
break;
}?>
然后在推荐验证captcha.php
文件中使用此函数,可能类似于
<?php
ini_set('display_errors',1);
print "<br /><br />";
$captcha = $_POST['captcha-verif'];
$answer = getCapcha();
if ($captcha == $answer) {
header('Location: recommend-action.php');
}
else {
print "Incorrect Captcha. <a href='music.php'>Try Again</a>";
}
?>
您需要一个会话变量:
<?php
// start session here
session_start();
$num = rand(1,3);
switch($num) {
case 1:
$img = "";
// store answer in session variables.
$_SESSION['answer'] = "nov 18th";
break;
case 2:
$img = "";
$_SESSION['answer'] = "jan 19th";
break;
case 3:
$img = "";
$_SESSION['answer'] = "school bad";
break;
}
?>
在第二个代码段中,确保再次启动会话
<?php
// restart session
session_start();
ini_set('display_errors',1);
print "<br /><br />";
$captcha = $_POST['captcha-verif'];
// compare $captcha against answer stored in the session
if ($captcha == $_SESSION['answer']) {
header('Location: recommend-action.php');
}
else {
print "Incorrect Captcha. <a href='music.php'>Try Again</a>";
}
?>
“我的一个变量未定义”。你想让我们猜猜是哪一个?您得到的具体错误消息是什么?$answer没有定义,我很抱歉。案例3:
-您在变量名中省略了$
。这就是我的想法。如何将$answer的数据传输到建议验证captcha.php?您使用的是两个不同的文件?似乎是这样,这就是为什么。另外,上面针对案例3所说的内容代码>至$answer=“学校坏”因为这也会引发一个未定义的常量错误。使用isset()
将所有内容放在一个文件中。错误来自第二个代码片段,而不是第一个。不相关,因为它是在案例中定义的
块。似乎不会更改任何内容。旁注:answer=“school bad”
-OP说$
在他们的代码中,“哦,我无意中删除了这个问题中的$,但它在我的实际文件中。”<代码>回答=“学校坏”如果有人访问问题/答案,code>将抛出未定义的持续通知(如果此答案中没有修复)。谢谢。Fred。又是打字错误。
<?php
// restart session
session_start();
ini_set('display_errors',1);
print "<br /><br />";
$captcha = $_POST['captcha-verif'];
// compare $captcha against answer stored in the session
if ($captcha == $_SESSION['answer']) {
header('Location: recommend-action.php');
}
else {
print "Incorrect Captcha. <a href='music.php'>Try Again</a>";
}
?>