PHP 验证码的实现代码 |
本文标签:PHP验证码 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>"; } } ?> |