喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: [问题] 一个验证码生成图片的问题  
 
sundyandy
新手上路
Rank: 1


UID 90145
精华 0
积分 13
帖子 9
金钱 13 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-3-26
状态 离线
一个验证码生成图片的问题

<?php    //yanzhengma.php
session_start();
session_register("login_check_number");

$img_height=70;    //先定义图片的长、宽
$img_width=25;

    for($Tmpa=0;$Tmpa<4;$Tmpa++)
        {
        $nmsg.=dechex(rand(0,15));
        }

    $HTTP_SESSION_VARS[login_check_number] = $nmsg;

    $aimg = imageCreate($img_height,$img_width);    //生成图片
    ImageColorAllocate($aimg, 255,255,255);            
    $black = ImageColorAllocate($aimg, 0,0,0);         
    ImageRectangle($aimg,0,0,$img_height-1,$img_width-1,$black);//先成一黑色的矩形把图片包围

    //下面生成雪花背景了
    for ($i=1; $i<=100; $i++)
        {   
        imageString($aimg,1,mt_rand(1,$img_height),mt_rand(1,$img_width),"*",imageColorAllocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));      
    }
        //加入数字和字母
    for ($i=0;$i<strlen($HTTP_SESSION_VARS[login_check_number]);$i++)
        {
        imageString($aimg, mt_rand(3,5),$i*$img_height/4+mt_rand(1,10),mt_rand(1,$img_width/2), $HTTP_SESSION_VARS[login_check_number][$i],imageColorAllocate($aimg,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
    }
    Header("Content-type: image/jpeg");
    imagejpeg($aimg);
    imagedestroy($aimg);
?>
<img src="yanzhengma.php? align="absbottom">


上面代码生成4位图形验证码并显示出来
现在有几个问题:
1。
    Header("Content-type: image/jpeg");
    imagejpeg($aimg);
    imagedestroy($aimg);
这已经说明生成JPG图片文件,为何生成后仍为BMP?
2。
   上面问题在不要SESSION的情况下得到解决,为什么?
3。
   是否可以保留SESSION的情况下生成JPG?

谢谢各位
2007-3-29 08:13 PM#1
查看资料  发短消息  顶部
 
seakingx
金牌会员
Rank: 6Rank: 6


UID 75142
精华 0
积分 1224
帖子 801
金钱 663 喜悦币
威望 0
人脉 561
阅读权限 70
注册 2006-6-18
来自 海口
状态 离线
[推荐阅读] 寻找徐文龙的<<PHP+MYSQL网站设计入门实践>>
我也问几个问题来回答你的问题
1、怎么知道生成后是BMP ?
2、 $HTTP_SESSION_VARS[login_check_number]  这个不是SESSION 吗?
3、SESSION 不是保留了吗 ? 不然怎么实现验证功能?




锐升科技
2007-3-29 09:39 PM#2
查看资料  Blog  发短消息  QQ  顶部
 
sundyandy
新手上路
Rank: 1


UID 90145
精华 0
积分 13
帖子 9
金钱 13 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-3-26
状态 离线
[推荐阅读] 和日历有关的程序
答seakingx :
1.在生成后图片右键--->另寸为的时候显示BMP.且该页在LINUX下不能显示
2.只在该页删除所有SESSION语句,可以在LINUX下显示该页
3.可以用COOKIES保存
2007-3-30 09:29 AM#3
查看资料  发短消息  顶部
 
sundyandy
新手上路
Rank: 1


UID 90145
精华 0
积分 13
帖子 9
金钱 13 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-3-26
状态 离线
[推荐阅读] 数九寒天下起了瓢泼大雪
up up~
2007-3-30 12:43 PM#4
查看资料  发短消息  顶部
 
aaron4tc
新手上路
Rank: 1



UID 90385
精华 0
积分 1
帖子 1
金钱 1 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-3-29
状态 离线
[推荐阅读] 上海资深网站开发工程师(储备研发主管)
把:
$black = ImageColorAllocate($aimg, 0, 0, 0);
ImageRectangle($aimg, 0, 0, $img_height-1, $img_width-1, $black);//最后生成一黑色的矩形把图片包围
以上两行改到 Header("Content-type: image/jpeg"); 前面, 生成的矩形就不会有断掉的感觉了...
2007-3-30 01:07 PM#5
查看资料  发短消息  顶部
 
sundyandy
新手上路
Rank: 1


UID 90145
精华 0
积分 13
帖子 9
金钱 13 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-3-26
状态 离线
[推荐阅读] 瑞德视讯招聘PHP开发人员


QUOTE:
原帖由 aaron4tc 于 2007-3-30 01:07 PM 发表
把:
$black = ImageColorAllocate($aimg, 0, 0, 0);
ImageRectangle($aimg, 0, 0, $img_height-1, $img_width-1, $black);//最后生成一黑色的矩形把图片包围
以上两行改到 Header("Content-type: image ...
这不是重点。。。
2007-3-30 07:44 PM#6
查看资料  发短消息  顶部
 
seakingx
金牌会员
Rank: 6Rank: 6


UID 75142
精华 0
积分 1224
帖子 801
金钱 663 喜悦币
威望 0
人脉 561
阅读权限 70
注册 2006-6-18
来自 海口
状态 离线
[推荐阅读] 求助:SQL Server的配置表问题(在线等)


QUOTE:
原帖由 sundyandy 于 2007-3-30 09:29 AM 发表
答seakingx :
1.在生成后图片右键--->另寸为的时候显示BMP.且该页在LINUX下不能显示
2.只在该页删除所有SESSION语句,可以在LINUX下显示该页
3.可以用COOKIES保存
1、我刚刚才发现我以前做的验证码图片也是另存为是BMP , 这个不明白了
2、这个问题很奇怪, 因为客户端是接收HTML格式文件,  你试过LINUX只显示session验证码图片, 也不成功吗?
3、用COOKIES 就有可能发生客户端伪造。




锐升科技
2007-3-30 08:37 PM#7
查看资料  Blog  发短消息  QQ  顶部
 
sundyandy
新手上路
Rank: 1


UID 90145
精华 0
积分 13
帖子 9
金钱 13 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-3-26
状态 离线
[推荐阅读] 通过复选框 给表里添加数据的一个复杂问题


QUOTE:
原帖由 seakingx 于 2007-3-30 08:37 PM 发表
1、我刚刚才发现我以前做的验证码图片也是另存为是BMP , 这个不明白了
2、这个问题很奇怪, 因为客户端是接收HTML格式文件,  你试过LINUX只显示session验证码图片, 也不成功吗?
3、用COOKIES 就有可能 ...
只显示验证码图片也不成功
2007-4-3 10:04 AM#8
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.027746 second(s), 7 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP