標籤:style c tar http ext a
代碼如下
<?php
session_start();
$arr = array(
‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘,‘h‘,‘i‘,‘j‘,‘k‘,‘l‘,‘m‘,‘n‘,‘o‘,‘p‘,‘q‘,‘r‘,‘s‘,‘t‘,‘u‘,‘v‘,‘w‘,‘x‘,
‘y‘,‘z‘,‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘
);
$rand = "";
for($i=1;$i<=4; $i++){
$rand .= $arr[rand(0,count($arr)-1)];
}
$_SESSION[‘check_pic‘] = $rand;
//產生圖片
$im = imagecreatetruecolor(100,30);
//產生顏色,當第一次調用產生顏色的方法,是產生背景顏色
$bg = imagecolorallocate($im,0,0,0);
//第二次調用這個方法,是可以產生圖片上面的文字或其他樣式的顏色
$te = imagecolorallocate($im,255,255,255);
//在圖片上面產生文字
imagestring($im,rand(1,5),rand(3,70),rand(3,15),$rand,$te);
//要把php當成圖片輸出,必須給檔案一個頭申明
ob_clean();
header("Content-type:image/jpeg");
//最終產生圖片
imagejpeg($im);
?>
然後串連資料庫 驗證
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
</head>
<body>
<?php
session_start();
if(isset($_POST[‘check‘])){
if($_POST[‘check‘] == $_SESSION[‘check_pic‘]){
echo "驗證成功";
}else{
echo "驗證失敗";
}
}
?>
<form action="check2.php" method="post">
<input type="text" name="check"/>
<img src="check1.php" onclick="refreshImg()" id="chk" style="cursor: pointer"/>
<br/>
<input type="submit" value="提交"/>
</form>
<script>
function refreshImg(){
var rand = Math.round(Math.random()*10000);
var chk = document.getElementById("chk");
chk.src = "check1.php?num="+rand;
}
</script>
</body>
</html>