php生成验证码小心空白符产生的问题



现在大多数网站出于版权以及软件授权费用的考虑,大多使用开源的lamp来作为基础构架,lamp也就是linux,apache,mysql以及php,所以我们所处理的很多网站或者说代码中出现的问题所花的时间大多都花在了它们身上。在用php生成验证码的时候有一些问题出现,错误有时候很容易理解,我们很快就解决好了,但是有些问题却莫名其妙,代码没问题,逻辑结构也没漏洞,但是在前端就是见不到验证码图片,这个时候普通人是很难想到其实是php的运行机制在起作用,而我们专业做这一方面工作的也是碰的多了之后才有了经验。



      
在生成验证码的代码之中,有一个很隐蔽的php运行机制会让大多数刚刚接触php的初学者不知所以然,很多时候我们是将验证码的生成和认证放在同一个页面的,这其中就用到了服务器端session、客户端cookie,还有图片生成技术以及页面类型定义,session用来维系验证生成和验证认证,cookie用来作为客户端唯一性认证防止不同客户之间产生混淆,图片生成技术通过php代码来生成图片内容,前面这三者一般都不会有什么问题产生,就算有问题也能很轻易地找出来,倒是最后一点页面类型定义常常会出现意想不到的状况,我们定义一个页面返回的类型时常用的代码是php里的header函数,比如通过Header("Content-type:
image/png");就返回一个png图片类型的页面,但是这个函数常常会在内部消消地发生改变,比如你在一个php页面的开头处有空白符,那一开始这个页面就将其定义为text/html类型,先将这几个空白符发送给客户端了,当你再定义页面类型为image/png的时候发现来不及了。



      
页面开头的几个空白符就有可能让你的整个代码失效,而空白符大多数时候却不会引起人的注意,所以当用php生成验证码的时候,一定要小心那几个空白符,如果出现了莫名其妙的问题,那很有可能就是因为你在开头多打了一行空白,多打了几个空格,把它们都删了吧。



  更多可参考:www.zhima365.com



转载于:https://my.oschina.net/zhima365/blog/133260

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值