设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP 验证码 详细代码带注释 分享!

发布时间:2022-07-07 13:19 所属栏目:121 来源:互联网
导读:checkcode.php 生成验证码图片,还有变量 $_SESSION[check_pic]。 ? session_start(); for($i=0; $i4; $i++){ $rand.= dechex(rand(1,15)); } $_SESSION[check_pic]=$rand; //echo $_SESSION[check_pic]; // 设置图片大小 $im = imagecreatetruecolor(100,30
     checkcode.php
 
  生成验证码图片,还有变量 $_SESSION[check_pic]。
 
  <?
  
  session_start();
  
  for($i=0; $i<4; $i++){
      $rand.= dechex(rand(1,15));
  }
  $_SESSION[check_pic]=$rand;
  //echo $_SESSION[check_pic];
  // 设置图片大小
  $im = imagecreatetruecolor(100,30);
  // 设置颜色
  $bg=imagecolorallocate($im,0,0,0);
  $te=imagecolorallocate($im,255,255,255);
  // 把字符串写在图像左上角
  imagestring($im,rand(5,6),rand(25,30),5,$rand,$te);
  // 输出图像
  header("Content-type:image/jpeg");
  imagejpeg($im);
  
  ?>
  form.php
  通过 <img src="checkcode.php"> 调用生成的验证码图片
  <div class="bottomAds">
  <fieldset class="bottomAds_quote"><legend>留言</legend>
  <div class="ads">
  <form action="../utity/post.php" method="post" onsubmit="return chkinput(this)">
  <input name="name" type="text" /> 您的名字
  <input name="email" type="text" /> 您的邮件
  <input name="website" type="text" /> 您的网站
  <textarea name="content" style="width:340; height:150;">
  </textarea><br />
  <img src="checkcode.php"><input type="text" name="check"><br />
  <input type="submit" value="提交" />
  </form>
  </div>
  
  <br clear="both" />  
  </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],若相等则执行数据库插入操作。不相等就返回上一页。
  <?php
  
      session_start();
  
      if(isset($_POST[check]))
      {
          if($_POST[check] == $_SESSION[check_pic])
          {
              // echo "验证码正确".$_SESSION[check_pic];
              require("dbinfo.php");
              $name = $_POST['name'];
              $email = $_POST['email'];
              $website = $_POST['website'];
              $content = $_POST['content'];
              $date = date("Y-m-d h:m:s");
       
              // 连接到 MySQL 服务器
              $connection = mysql_connect ($host, $username, $password);
              if (!$connection)  
              {
                  die('Not connected : ' . mysql_error());
              }
       
              // 设置活动的 MySQL 数据库
              $db_selected = mysql_select_db($database, $connection);
              if (!$db_selected)  
              {
                  die ('Can/'t use db : ' . mysql_error());
              }
       
              // 向数据库插入数据
              $query = "insert into table (nowamagic_name, nowamagic_email, nowamagic_website, nowamagic_content, nowamagic_date) values ('$name','$email','$website','$content','$date')";  
       
              $result = mysql_query($query);
              if($result)
              {
                  echo "<script>alert('提交成功'); history.go(-1);</script>";
              }
              if (!$result)  
              {
                  die('Invalid query: ' . mysql_error());
              }
          }
          else
          {
              echo "<script>alert('验证码错误'); history.go(-1);</script>";
          }
      }
        
  ?> 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读