【发布时间】:2016-06-24 06:26:19
【问题描述】:
我有以下生成验证码的脚本:
// captcha.php
session_start();
$captcha_token='';
for($i=1; $i<=5; $i++){$captcha_token .= rand(0,9).' ';}
$_SESSION['captcha'] = str_replace(" ","",$captcha_token);
$im = imagecreatetruecolor(110, 34);
$red = imagecolorallocate($im, 245, 245, 245);
imagefill($im, 0, 0, $red);
$text_color = imagecolorallocate($im, 80, 80, 80);
imagestring($im, 8, 15, 9, $captcha_token, $text_color);
header('Content-Type: image/jpeg');
imagejpeg($im);
imagedestroy($im);
我还有多个页面需要验证码。我对所有这些都使用captcha.php。像这样的:
// contact.php
<input name="captcha" type="text" />
<img src="captcha.php" />
// resend_password.php
<input name="captcha" type="text" />
<img src="captcha.php" />
// multiple_wrong_login.php
<input name="captcha" type="text" />
<img src="captcha.php" />
一切都好。正如您所见,所有脚本只有一个会话$_SESSION['captcha']。当我打开contact.php 并紧接着resend_password.php 时,contact.php 中的 captcha 将无效。我该如何解决?我的意思是如何为不同的页面制作单独的验证码?
【问题讨论】:
-
每个会话应该只覆盖最后一个,
-
@Dagon emm,你是什么意思“最后一个”?
-
您正在重用相同的代码,它写入相同的会话变量,所以最后设置\看到的值应该是正确的
-
@Dagon 是的,目前我的脚本如你所说。但我想为不同的页面分配不同的会话变量。其实我想要多个有效的验证码。
-
如果它按原样工作,那么为什么