php中如何将随机产生数组中值写入session

来源:百度知道 编辑:UC知道 时间:2024/09/22 10:25:20
我用PHP做一个中文字图片验证码,我用以下代码产生一个4位的中文字
<?php
srand((float) microtime() * 10000000);
$input = array("请","转","到","图","像","我","非","常");
$rand_keys = array_rand($input, 4);
print $input[$rand_keys[0]];
print $input[$rand_keys[1]];
print $input[$rand_keys[2]];
print $input[$rand_keys[3]];
?>
现在我想把上面产生的4个字的中文字的值写入SESSION,用于与输入的文字验证是否相同,这个代码怎么写?
imagettftext($im,12,0,20,20,$te,'stxingka.ttf',"要显示中文字");
上面代码为把上面产生的4位中文用GD库存中的IMAGETTFTEXT函数写入图片,我又如何获得上面数组中产生4位中文字的值呢,
请PHP高手指点一下,谢谢呀
按到你这个做法的话我应该如何写代码验证SESSION和输入的值是否相同呢,
还有就是下面的问题你还没有回答呀,就是我如何获得随机产生的4个中文字的值写入生成中文字图片中呀

$_SESSION是PHP默认的一个数组
你可以通过以下操作把变量写到这个数组里
$_SESSION['rand_keys_0'] = $input[$rand_kyes[0]];
$_SESSION['rand_keys_1'] = $input[$rand_kyes[1]];
$_SESSION['rand_keys_2'] = $input[$rand_kyes[2]];
$_SESSION['rand_keys_3'] = $input[$rand_kyes[3]];

不过这需要你在跟这个功能相关的脚本都开启SESSION功能
具体做法是,在每个脚本的开始处添加
session_start();
也就是在<?php的下一行添加!

我先理清你的思路吧
1、生成随机字符串
2、将随机字符串写入session,同时写入验证码图像里
3、用户输入验证码
4、将用户输入的验证码与session中保存的验证码进行比较,如果相同则成功

假设你的验证码输入框是用post方式发送的,那么你可以这样子做!
$_SESSION['rand_keys'] = $_SESSION['rand_keys_0'].$_SESSION['rand_keys_1'].$_SESSION['rand_keys_2'].$_SESSION['rand_keys_3'];
$user_input = $_POST['yanzhengma'];
if($_SESSION['rand_keys']==$user_input){
echo "验证成功";
}
else{
echo "验证失败";
}