PHP 驗證碼的實現代碼

來源:互聯網
上載者:User

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>";
}
}
?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.