检验码问题!但为什么图片无法正确显示。。?详请进!
我想实现类似www.dev-club.com的登陆检验码功能来防止恶意注册,但插入代码<input type=text name=number maxlength=4><img src=checkNumber.php?act=init>后,图片无法显示,只是一个不可显示的图片的样子,请问如何解决? 问题点数:20、回复次数:10Top
1 楼myblessu(继续混着,到被人赶走为止)回复于 2003-09-04 10:57:21 得分 0
很定是你checkNumber.php代码的问题.Top
2 楼thunderx(平生一笑)回复于 2003-09-04 11:02:14 得分 0
<?php //checknumber.php
session_start();
if($act == "init")
{
Header("Content-type: image/png");
srand(microtime() * 100000);
$login_check_number = strval(rand("1111","9999"));
session_register("login_check_number");
//这里是使用了SESSION来保存校验码.
//当然也可以用COOKIE
//setcookie("login_check_number",$login_check_number);
//然后将第一行的session_start()删除;
//不推荐使用COOKIE,因为使用COOKIE并不能进行安全的验证.
$h_img = imagecreate(40,17);
$c_black = ImageColorAllocate($h_img, 0,0,0);
$c_white = ImageColorAllocate($h_img, 255,255,255);
imageline($h_img, 1, 1, 350, 25, $c_black);
imagearc($h_img, 200, 15, 20, 20, 35, 190, $c_white);
imagestring($h_img, 5, 2, 1, $login_check_number, $c_white);
ImagePng($h_img);
ImageDestroy($h_img);
die();
}
?>Top
3 楼xuzuning(唠叨)回复于 2003-09-04 11:14:04 得分 5
检查$act 是否有值
你的php版本?
register_globals的状态?
Top
4 楼thunderx(平生一笑)回复于 2003-09-04 11:19:08 得分 0
act=init;
php是4。3。3
register_globals=on;Top
5 楼causky(sky-C中没有$)回复于 2003-09-04 11:22:28 得分 5
checknumber.php
先给$act赋个初值
去掉那个IF判断
测试一下具体问题
程序看起来没太大问题
很可能是楼上说的在php.ini中把register_globals打开Top
6 楼myblessu(继续混着,到被人赶走为止)回复于 2003-09-04 11:27:35 得分 5
确认你的机子上能支持 imagecreate 等涵数吗?Top
7 楼thunderx(平生一笑)回复于 2003-09-04 11:37:13 得分 0
我已经加载了php_gd2.dllTop
8 楼xuzuning(唠叨)回复于 2003-09-04 11:44:39 得分 5
代码本身无误,去掉判断再试Top
9 楼thunderx(平生一笑)回复于 2003-09-04 11:48:07 得分 0
谢谢大家了,我自己已经搞定了!好了,下网了!Top
10 楼xinyaoxp(云枫)回复于 2003-11-24 18:03:17 得分 0
upTop




