導航:首頁 > 編程語言 > php驗證碼登錄代碼

php驗證碼登錄代碼

發布時間:2023-12-29 04:43:19

① 驗證碼怎麼用php實現

<?php
/*
* Filename: authpage.php
*/

srand((double)microtime()*1000000);

//驗證用戶輸入是否和驗證碼一致
if(isset($HTTP_POST_VARS['authinput']))
{
if(strcmp($HTTP_POST_VARS['authnum'],$HTTP_POST_VARS['authinput'])==0)

echo "驗證成功!";
else
echo "驗證失敗!";
}

//生成新的四位整數驗證碼
while(($authnum=rand()%10000)<1000);
?>
<form action=authpage.php method=post>
<table>
請輸入驗證碼:<input type=text name=authinput style="width:
80px"><br>
<input type=submit name="驗證" value="提交驗證碼">
<input type=hidden name=authnum value=<? echo $authnum; ?>>
<img src=authimg.php?authnum=<? echo $authnum; ?>>
</table>
</form>

代碼二:

<?php
/*
* Filename: authimg.php
* Author: hutuworm
* Date: 2003-04-28
* @Copyleft hutuworm.org
*/

//生成驗證碼圖片
Header("Content-type: image/PNG");
srand((double)microtime()*1000000);
$im = imagecreate(58,28);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
imagefill($im,68,30,$gray);

//將四位整數驗證碼繪入圖片
imagestring($im, 5, 10, 8, $HTTP_GET_VARS['authnum'], $black);

for($i=0;$i<50;$i++) //加入干擾象素
{
imagesetpixel($im, rand()%70 , rand()%30 , $black);
}

ImagePNG($im);
ImageDestroy($im);
?>

② php的驗證碼代碼

<?php
/**
* 類說明:
* 使用時,可按自己的需要設置輸出圖片的寬度和高度,以及要產生的驗證碼個數和干擾部分;
* 使用時,只需要將validate實例化,然後調用show_image()可生即可生成驗證碼。
* 獲取驗證碼的方法是在其它頁面 首先開戶session_start(),然後直接使用$_SESSION['code']即可;
* 注意,大多數新手可能會遇到一個問題,就是$_SESSION['code']的值總是要慢一拍,用戶在輸入驗證碼點提交後,
* session的值才會被刷新,這樣使用不會有錯,如果直接用JS去獲取得取到的是上次的產生的.
* 最後:該類由游天小蝦製作,您可以不保留此信息,可任意傳播,如果您對本類有什麼提意,
* 可發關郵件到:[email protected]
* 或者加入我們的網頁製作交流群(聚義堂) 69574955
* **/
class validate {
private $width = '80';//驗證碼的寬度
private $height = '20';//驗證碼的高度
private $randcode = '';//驗證碼, 無需賦值,後面會隨機生成
private $num = '4';//驗證碼的字數
private $interferon = '80';//干擾素數量
private $line ='2';//線條干擾條數
private $im = '';//無需賦值,圖片自動生成/**
* 輸入網頁類型
* */
private function conten_type(){
header("Content_type:image/gif");
}
/***
*打開session
* **/
private function session_star(){
session_start();
}/**
* 產生隨機數
* **/
private function random(){
$this->randcode = strtoupper(substr(md5(rand()),0,$this->num));
return $this->randcode;
}
/**
* 置障session的值
* **/
private function resession(){
$_SESSION['code'] = $this->randcode;
}
/**
* 產生驗證圖片
***/
private function create_image(){
$this->im = imagecreate($this->width,$this->height);
imagecolorallocate ($this->im, rand(50,60), rand(150,200),rand(230,250));
return $this->im;
} /**
* 產生干擾素
* **/
private function create_interferon(){
for($i=0;$i<$this->interferon;$i++){
$infcolor = imagecolorallocate($this->im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($this->im,rand(0,80),rand(0,20),$infcolor);
} } /**
* 產生干擾線條
* **/
private function create_line(){
for($j=0;$j<$this->line;$j++){
$lineColor = imagecolorallocate($this->im,rand(0,255),rand(0,255),rand(0,255));
imageline($this->im,rand(0,80),rand(0,20),rand(0,80),rand(0,20),$lineColor);
}
} /**
* 寫入字元
* **/
private function read_text(){
for($i=0;$i<$this->num;$i++){
$textColor = imagecolorallocate($this->im,rand(0,100),rand(0,100),rand(0,100));
$x = rand(($this->width/$this->num*$i),($this->width/$this->num)*($i+1)-10);
$y = rand(2,$this->height-13);
imagechar($this->im,rand(4,5),$x,$y,$this->randcode[$i],$textColor);
} } /**
* 輸出驗證碼圖片
* **/
public function show_image(){
$this->session_star();
$this->conten_type();
$this->random();
$this->resession();
$this->create_image();
$this->create_interferon();
$this->create_line();
$this->read_text();
imagepng($this->im);
imagedestroy($this->im);
}} $va = new validate(); $va->show_image();
?>

③ php 驗證碼 使用

你訪問http://你地址/上述程序的文件名.php?action=verifycode

這樣就可以看到圖片了,同理插入到登錄框用

<imgsrc="http://你地址/上述程序的文件名.php?action=verifycode"/>

就可以了

-------------------------

leboc代碼你都沒看懂,$_GET["action"]=="verifycode"是判斷動作的,當動作為verifycode的時候調用rand_create()函數產生一個隨機驗證碼.不是你說的

"每個驗證碼不會都是"verifycode"?吧?".而是每次調用驗證碼都要用verifycode

補充回答-----------------------------------

彈出迅雷?請確認你的電腦支持PHP,的運行環境.

我用你的代碼保存為c.php,保存在伺服器上,

同時,建立一個1.html,代碼內容僅為

<imgsrc="c.php?action=verifycode"/>.存放與c.php同一目錄.

運行後是可以正常顯示驗證碼的.

④ 求一個php登陸界面和圖片驗證碼(網址也可以)

index.php

<?php
session_start();
session_register('SafeCode');
?>
<SCRIPT language=javascript>
<!--
function CheckForm()
{
if(document.Login.u_name.value=="")
{
alert("請輸入用戶名!");
document.Login.u_name.focus();
return false;
}
if(document.Login.u_pass.value == "")
{
alert("請輸入密碼!");
document.Login.u_pass.focus();
return false;
}
if (document.Login.CheckCode.value==""){
alert ("請輸入您的驗證碼!");
document.Login.CheckCode.focus();
return(false);
}
}

//-->
</SCRIPT>
<script language="javascript">
var vimg_src = "../inc/code.php";
function chg_vimg()
{
var vimg = document.getElementById("vimg");
vimg.src = vimg_src + "?" + Math.random();

}
</script>
<?php
if ($deng){
if($CheckCode != $_SESSION['SafeCode'] || empty($CheckCode)){
echo "<script>alert('校驗碼不正確!');window.location.href='index.php';</script>";
exit;
}
$u_pass1=md5($u_pass);
$sql = "select * from user where name='$u_name' and pass='$u_pass1' limit 0,1";
$rs = mysql_query($sql);
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)){
$_SESSION['u_admin_name'] = $row['u_name'];
echo "<script>window.location.href='main.php';</script>";
exit;
}
echo "<script>alert('用戶名或密碼不正確!');window.location.href='index.php';</script>";
exit;
}
?>
<TABLE cellSpacing=0 cellPadding=0 width=561 border=0>
<FORM name=Login onSubmit="return CheckForm();" action="index.php?deng=deng" method=post target=_parent>
<TBODY>

<TR>
<TD width=75 rowSpan=2>用戶登錄</TD>
<TD width=126><FONT color=#043bc9>用戶名稱:</FONT></TD>
<TD width=39 rowSpan=2></TD>
<TD width=131><FONT color=#043bc9>用戶密碼:</FONT></TD>
<TD colspan="2"><font color=#043bc9>驗證碼:</font></TD>
<TD colSpan=2 rowspan="2"><input type="submit" value="提交"></TD>
</TR>
<TR>
<TD><INPUT name=u_name></TD>
<TD><INPUT name=u_pass type=password ></TD>
<TD width="33"><input maxlength=4 size=6
name=CheckCode></TD>
<TD width=53><font color=#00cc33><a href='javascript:chg_vimg();' tabindex='-1' ><img src=code.php id=vimg title="看不清換一個!" border="0"></a></font></TD>
</TR></TBODY>
</FORM>
</TABLE>

code.php
<?
//checkNum.php
session_start();
function random($len)
{
$srcstr="abcdefghijkrmnopqrstuvwxyz"; //+0123456789
mt_srand();
$strs="";
for($i=0;$i<$len;$i++){
$strs.=$srcstr[mt_rand(0,25)];//35
}
return $strs;//strtoupper()函數轉換為大寫
}
$str=random(4); //隨機生成的字元串
$width = 40; //驗證碼圖片的寬度
$height = 17; //驗證碼圖片的高度
@header("Content-Type:image/png");
$_SESSION["SafeCode"] = $str;
//echo $str;
$im=imagecreate($width,$height);
//背景色
$back=imagecolorallocate($im,0xFF,0xFF,0xFF);
//模糊點顏色
$pix=imagecolorallocate($im,187,230,247);
//字體色
$font=imagecolorallocate($im,41,163,238);
//繪模糊作用的點
mt_srand();
for($i=0;$i<1000;$i++)
{
imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$pix);
}
imagestring($im, 5, 2, 0,$str, $font);
imagerectangle($im,0,0,$width-1,$height-1,$font);
imagepng($im);
imagedestroy($im);
$_SESSION["SafeCode"] = $str;
?>

⑤ PHP 繪制網站登錄首頁圖片驗證碼

幾乎所有的網站登錄頁都會有驗證碼,驗證碼是一種安全保護機制,在注冊時要求必須有人工操作進行驗證,用於防止垃圾注冊機大量注冊用戶賬號佔用伺服器內存從而使伺服器癱瘓。
圖片驗證碼的實現十分簡單。首先從指定字元集合中隨機抽取固定數目的字元,以一種不規則的方法畫在畫布上,再適當添加一些干擾點和干擾元素,最後將圖片輸出,一張嶄新的驗證碼就完成了。
先給大家展示下生成的驗證碼:

點擊刷新:

如果大家對實現效果非常滿意,請繼續往下看。
前端代碼如下:
<!DOCTYPE
html>
<html>
<head>
<meta
http-equiv="content-type"
content="text/html;charset=utf-8">
<title>This
is
a
test!</title>
<link
rel="stylesheet"
type="text/css"
href="css/bootstrap.min.css">
</head>
<body>
<form
name="form">
<input
type="text"
placeholder="賬號"/><br/>
<input
type="password"
placeholder="密碼"/><br/>
<input
type="text"
placeholder="驗證碼"/>
<img
id="verImg"
src="libs/verification.php"/>
<a
href="#"
class="change"
onclick="changeVer()">點擊刷新</a><br/>
<input
type="submit"
value="登錄"/>
</form>
<script
type="text/javascript">
//刷新驗證碼
function
changeVer(){
document.getElementById("verImg").src="libs/verification.php?tmp="+Math.random();
}
</script>
</body>
</html>
php腳本文件驗證碼的代碼如下:
<?php
session_start();
//開啟session記錄驗證碼數據
vCode(4,
15);//設置驗證碼的字元個數和圖片基礎寬度
//vCode
字元數目,字體大小,圖片寬度、高度
function
vCode($num
=
4,
$size
=
20,
$width
=
0,
$height
=
0)
{
!$width
&&
$width
=
$num
*
$size
*
4
/
5
+
15;
!$height
&&
$height
=
$size
+
10;
//設置驗證碼字元集合
$str
=
"";
//保存獲取的驗證碼
$code
=
''
//隨機選取字元
for
($i
=
0;
$i
<
$num;
$i++)
{
$code
.=
$str[mt_rand(0,
strlen($str)-1)];
}
//創建驗證碼畫布
$im
=
imagecreatetruecolor($width,
$height);
//背景色
$back_color
=
imagecolorallocate($im,
mt_rand(0,100),mt_rand(0,100),
mt_rand(0,100));
//文本色
$text_color
=
imagecolorallocate($im,
mt_rand(100,
255),
mt_rand(100,
255),
mt_rand(100,
255));
imagefilledrectangle($im,
0,
0,
$width,
$height,
$back_color);
//
畫干擾線
for($i
=
0;$i
<
5;$i++)
{
$font_color
=
imagecolorallocate($im,
mt_rand(0,
255),
mt_rand(0,
255),
mt_rand(0,
255));
imagearc($im,
mt_rand(-
$width,
$width),
mt_rand(-
$height,
$height),
mt_rand(30,
$width
*
2),
mt_rand(20,
$height
*
2),
mt_rand(0,
360),
mt_rand(0,
360),
$font_color);
}
//
畫干擾點
for($i
=
0;$i
<
50;$i++)
{
$font_color
=
imagecolorallocate($im,
mt_rand(0,
255),
mt_rand(0,
255),
mt_rand(0,
255));
imagesetpixel($im,
mt_rand(0,
$width),
mt_rand(0,
$height),
$font_color);
}
//隨機旋轉角度數組
$array=array(5,4,3,2,1,0,-1,-2,-3,-4,-5);
//
輸出驗證碼
//
imagefttext(image,
size,
angle,
x,
y,
color,
fontfile,
text)
@imagefttext($im,
$size
,
array_rand($array),
12,
$size
+
6,
$text_color,
'c:WINDOWSFontssimsun.ttc',
$code);
$_SESSION["VerifyCode"]=$code;
//no-cache在每次請求時都會訪問伺服器
//max-age在請求1s後再次請求會再次訪問伺服器,must-revalidate則第一發送請求會訪問伺服器,之後不會再訪問伺服器
//
header("Cache-Control:
max-age=1,
s-maxage=1,
no-cache,
must-revalidate");
header("Cache-Control:
no-cache");
header("Content-type:
image/png;charset=gb2312");
//將圖片轉化為png格式
imagepng($im);
imagedestroy($im);
}
?>
好了,關於小編給大家介紹的php繪制圖片驗證就給大家介紹這么多,希望對大家有所幫助!

⑥ 求一個PHP格式的驗證碼代碼~謝謝~

<?php
session_start();
function random($len)
{
if($i==0)
{
$str="";
$s="";
for($i=0;$i <$len;$i++){
$s.=$str[rand(0,35)];
}
}
return strtoupper($s);
}
$code=random(4); //隨機生成的字元串
$width = 50; //驗證碼圖片的寬度
$height = 20; //驗證碼圖片的高度
@header("Content-Type:image/png");
$_SESSION["code"] = $code;
$im=imagecreate($width,$height);
//背景色
$back=imagecolorallocate($im,255, 255, 255);
//模糊點顏色
$pix=imagecolorallocate($im,187,230,247);
//字體色
$font=imagecolorallocate($im,41,163,238);
//繪模糊作用的點
for($i=0;$i <1000;$i++)
{
imagesetpixel($im,rand(0,$width),rand(0,$height),$pix);
}
imagestring($im, 5, 7, 2,$code, $font);
imagerectangle($im,0,0,$width-1,$height-1,$font);
imagepng($im);
imagedestroy($im);
?>
我一般都用這個的。解釋什麼都比較清楚。

⑦ PHP中模擬登錄的驗證碼問題應該如何解決

基本思路:

首先獲取一個cookies值,再帶著這個cookies去獲取驗證碼圖片,你再帶著驗證碼值和登錄數據去模擬post登錄。下面是一個模擬獲取驗證碼的。

這里忽略獲取cookies的過程。注意文件為UTF-8無BOM格式

?php
header('Content-Type:image/png');
$url="http://hbyw.e21.e.cn/global/gd.php";//圖片鏈接
$ch=curl_init();
//Cookie:PHPSESSID=
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_COOKIE,'PHPSESSID=');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
curl_setopt($ch,CURLOPT_TIMEOUT,0);//忽略超時
curl_setopt($ch,CURLOPT_NOBODY,false);
$str=curl_exec($ch);
curl_close($ch);
閱讀全文

與php驗證碼登錄代碼相關的資料

熱點內容
如何讓安卓手機操控電腦 瀏覽:187
電腦電銷加密電話號碼破解 瀏覽:505
世界史綱pdf 瀏覽:133
湖北社保年審app叫什麼名字 瀏覽:852
邁達克雲伺服器 瀏覽:597
mfc深入淺出從mfc設計到mfc編程 瀏覽:81
螢石雲伺服器連接設置 瀏覽:325
中國名著pdf 瀏覽:592
華為伺服器設備序列號怎麼看 瀏覽:319
跑永輝生活配送用什麼app 瀏覽:149
ug識別符號命令在哪裡 瀏覽:719
pdf文件改文字 瀏覽:732
查詢qq號劍靈伺服器地址 瀏覽:552
國家反詐中心app為什麼要刷臉 瀏覽:303
iphone怎麼修改dns伺服器地址 瀏覽:85
bandizip解壓位置 瀏覽:168
伺服器的防火牆如何訪問 瀏覽:306
javagoto關鍵字 瀏覽:847
廣州少兒編程加盟排名榜 瀏覽:122
51單片機th0 瀏覽:294