给别人写的验证。这PHP环境比较BT,4.2版本,非WIN主机,未开启cookie,未配置php_gd.dll文件导致无法用画图法。可以用session。最好能在关闭IE的短期内,保证hash的持续性。小弟虚心地向大家请教一些实现这个验证的思路(请不要说配置服务器文件的方法,谢谢合作)。

解决方案 »

  1.   

    直接用文字,比如 25+16=
    回答数字可以用session
      

  2.   

    js绘图...?
    做效果js很强大...客户端绘图,用activeX?
      

  3.   

    1你先做0-9每个数字做一张图片
    2然后产生随机4位随机数并用session记录下来
    3页面显示4位随机数对应的图片
    4取得用户随机数并与session比较
      

  4.   

    既然能用SESSION 也就代表能用cookie吧 特殊关闭了COOKIE函数?完善点楼上的思路图片不可以直接输出文件名 否则这个验证码没有一点效果
    用img.php?id=1 img.php?id=2 这样的形式输出 只要有file函数就可以验证码不简简单单的是 数字或者字符的图片 应该还有混淆背景
    否者效果也不会很好 现在图片识别的代码N多 可以在有GD库的环境下生成图片 例如第1位生成100种样式的 可以有颜色 倾斜 位置等等 随机就好了
    输出的时候随机输出其中1个就好了
    要求更高的时候按背景分组生成不同样式 随机使用某组的某个样式
    实际中俺也是这么做的即使有GD库也不即时生成图片 俺认为太耗费CPU和内存 也容易被攻击
    测试过的 GD库绘制图像的时候比正常页面对CPU的消耗要高出数倍 呵呵 1+1=?这样的问题 俺认为没有什么意义 输出字符很容易被猜解 输出图片又多此一举
    中文问题又不能太过复杂 呵呵 简单的同样容易被猜解
      

  5.   

    如果不支持cookie只能用get传值 session_id
    或每页均读数据库验证