PHP 验证码 详细代码带注释 推荐!_PHP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:PHP操作文件类实例代码
发一个刚写完的文件操作类 第一次写类,写的不好,大家多提意见,不过不要骂我 刚才又加了两个功能,又加了注释,高手一定帮我看看哪有问题啊,谢谢 file.class.php ?php /** *本类为文件操作类,实现了文件的建立,写入,删除,修改,复制,移动,创建目录,

checkcode.php

生成验证码图片,还有变量 $_SESSION[check_pic]。

  1. <? 
  2.  
  3. session_start(); 
  4.  
  5. for($i=0; $i<4; $i++){ 
  6.     $rand.= dechex(rand(1,15)); 
  7. $_SESSION[check_pic]=$rand
  8. //echo $_SESSION[check_pic]; 
  9. // 设置图片大小 
  10. $im = imagecreatetruecolor(100,30); 
  11. // 设置颜色 
  12. $bg=imagecolorallocate($im,0,0,0); 
  13. $te=imagecolorallocate($im,255,255,255); 
  14. // 把字符串写在图像左上角 
  15. imagestring($im,rand(5,6),rand(25,30),5,$rand,$te); 
  16. // 输出图像 
  17. header("Content-type:image/jpeg"); 
  18. imagejpeg($im); 
  19.  
  20. ?> 
form.php
通过 <img src="checkcode.php"> 调用生成的验证码图片
  1. <div class="bottomAds"> 
  2. <fieldset class="bottomAds_quote"><legend>留言</legend> 
  3. <div class="ads"> 
  4. <form action="../utity/post.php" method="post" onsubmit="return chkinput(this)"> 
  5. <input name="name" type="text" /> 您的名字 
  6. <input name="email" type="text" /> 您的邮件 
  7. <input name="website" type="text" /> 您的网站 
  8. <textarea name="content" style="width:340; height:150;"> 
  9. </textarea><br /> 
  10. <img src="checkcode.php"><input type="text" name="check"><br /> 
  11. <input type="submit" value="提交" /> 
  12. </form> 
  13. </div> 
  14.  
  15. <br clear="both" />  
  16. </fieldset> 
imagestring($im,rand(5,6),rand(25,30),5,$rand,$te); 使用了 int imagestring(int im, int font, int x, int y, string s, int col); 函数,这个函数用于绘横式字符串。
这个函数在图片上绘出水平的横式字符串。参数 font 为字形,设为 1 到 5 表示使用默认字形。参数 x、y 为字符串起点坐标。字符串的内容放在参数 s 上。参数 col 表示字符串的颜色。
post.php
比较 $_POST[check] 与 $_SESSION[check_pic],若相等则执行数据库插入操作。不相等就返回上一页。
  1. <?php 
  2.  
  3.     session_start(); 
  4.  
  5.     if(isset($_POST[check])) 
  6.     { 
  7.         if($_POST[check] == $_SESSION[check_pic]) 
  8.         { 
  9.             // echo "验证码正确".$_SESSION[check_pic]; 
  10.             require("dbinfo.php"); 
  11.             $name = $_POST['name']; 
  12.             $email = $_POST['email']; 
  13.             $website = $_POST['website']; 
  14.             $content = $_POST['content']; 
  15.             $date = date("Y-m-d h:m:s"); 
  16.      
  17.             // 连接到 MySQL 服务器 
  18.             $connection = mysql_connect ($host$username$password); 
  19.             if (!$connection)  
  20.             { 
  21.                 die('Not connected : ' . mysql_error()); 
  22.             } 
  23.      
  24.             // 设置活动的 MySQL 数据库 
  25.             $db_selected = mysql_select_db($database$connection); 
  26.             if (!$db_selected)  
  27.             { 
  28.                 die ('Can\'t use db : ' . mysql_error()); 
  29.             } 
  30.      
  31.             // 向数据库插入数据 
  32.             $query = "insert into table (nowamagic_name, nowamagic_email, nowamagic_website, nowamagic_content, nowamagic_date) values ('$name','$email','$website','$content','$date')";  
  33.      
  34.             $result = mysql_query($query); 
  35.             if($result
  36.             { 
  37.                 echo "<script>alert('提交成功'); history.go(-1);</script>"
  38.             } 
  39.             if (!$result)  
  40.             { 
  41.                 die('Invalid query: ' . mysql_error()); 
  42.             } 
  43.         } 
  44.         else 
  45.         { 
  46.             echo "<script>alert('验证码错误'); history.go(-1);</script>"
  47.         } 
  48.     } 
  49.       
  50. ?> 

分享:PHP上传自动生成缩略图及水印类(含代码)
思路很大一部分是原创的,但也有一些是COPY网络的,写得不够规范,还请各位大大不要见笑,同时给小弟些意见。 开始第一步: 创建文件夹,布局: annex:附件(该目录下存放上传的原图片) |— smallimg:存放缩略图片 |— mark:存放水印图片 include:存放

来源:模板无忧//所属分类:PHP教程/更新时间:2012-06-10
相关PHP教程