當前位置:首頁 » 編程語言 » php獲取驗證碼

php獲取驗證碼

發布時間: 2023-02-14 13:59:55

php 驗證碼

大哥!!!
哪裡沒有起作用了啊!????
checknum.php
你看最後一行你寫了什麼???
session_destroy();
你都銷毀了所有的SESSION
那麼你在code_check.php
肯定是看不到 $_SESSION['CODE'];的啊!!!
你刪除session_destroy();看下
還有就是你在code_check.php這個頁面中
$_SESSION['CODE'];大小寫錯了!!!
應該是$_SESSION['code'];,拜託以後看清楚啊!!

② PHP 驗證碼

問題一、你的驗證碼代碼,沒有發現開啟session,也沒有將隨機產生的字元串保存到session,沒保存,自然就無法比對
問題二、要點擊一下刷新,其實很簡單,給圖片加一個點擊事件,讓圖片重新請求一次伺服器執行php驗證碼文件,需要注意的是,有於緩存的關系,在重新請求伺服器的時候,給驗證碼圖片路徑加一個隨機參數,防止刷新而驗證碼不變化,代碼示例如下:
<img src='code.php' onclick="this.src='code.php?'+Math.random();" />

③ 如何用PHP生成驗證碼

php生成驗證碼,php驗證碼,php怎樣生成驗證碼?
工具/原料
這個驗證碼較實用,大家可以應用到項目中。
方法/步驟
1.
<?php
/*設置文件頭為圖片輸出*/
Header("Content-type:image/JPEG");

/*調用生成驗證碼函數*/
$checkcode=make_rand(4);

/**
*生成驗證碼字元
*@paramint$length驗證碼字元長度
*@returnstring
*/
functionmake_rand($length="32"){
$str="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$result="";
for($i=0;$i<$length;$i++){
$num[$i]=rand(0,25);
$result.=$str[$num[$i]];
}
return$result;
}
2.
/*調用輸出驗證碼圖片函數*/
getAuthImage($checkcode,160,40);

/**
*生成驗證碼圖片
*@paramstring$text驗證碼字元
*/
functiongetAuthImage($text,$w,$y){
/*設置圖片的寬度和高度*/
$im_x=$w;
$im_y=$y;
/*創建圖片*/
$im=imagecreatetruecolor($im_x,$im_y);
$text_c=ImageColorAllocate($im,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));
$tmpC0=mt_rand(100,255);
$tmpC1=mt_rand(100,255);
$tmpC2=mt_rand(100,255);
$buttum_c=ImageColorAllocate($im,$tmpC0,$tmpC1,$tmpC2);
imagefill($im,16,13,$buttum_c);
3.
/*字體文件*/
$font='t1.ttf';
for($i=0;$i<strlen($text);$i++)
{
$tmp=substr($text,$i,1);
$array=array(-1,1);
$p=array_rand($array);
$an=$array[$p]*mt_rand(1,10);//角度
$size=28;
imagettftext($im,$size,$an,15+$i*$size,35,$text_c,$font,$tmp);
}

/*將字元寫入文件中*/
$distortion_im=imagecreatetruecolor($im_x,$im_y);
imagefill($distortion_im,16,13,$buttum_c);
for($i=0;$i<$im_x;$i++){
for($j=0;$j<$im_y;$j++){
$rgb=imagecolorat($im,$i,$j);
if((int)($i+20+sin($j/$im_y*2*M_PI)*10)<=imagesx($distortion_im)&&(int)($i+20+sin($j/$im_y*2*M_PI)*10)>=0){
imagesetpixel($distortion_im,(int)($i+10+sin($j/$im_y*2*M_PI-M_PI*0.1)*4),$j,$rgb);
}
}
}
4.
/*干擾元素點的數量*/
$count=160;
/*創建干擾元素點*/
for($i=0;$i<$count;$i++){
$randcolor=ImageColorallocate($distortion_im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
imagesetpixel($distortion_im,mt_rand()%$im_x,mt_rand()%$im_y,$randcolor);
}
/*創建干擾線條*/
$rand=mt_rand(5,30);
$rand1=mt_rand(15,25);
$rand2=mt_rand(5,10);
for($yy=$rand;$yy<=+$rand+2;$yy++){
for($px=-80;$px<=80;$px=$px+0.1)
{
$x=$px/$rand1;
if($x!=0)
{
$y=sin($x);
}
$py=$y*$rand2;
imagesetpixel($distortion_im,$px+80,$py+$yy,$text_c);
}
}
5.
/*以PNG格式將圖像輸出到瀏覽器*/
ImagePNG($distortion_im);

/*銷毀圖像*/
ImageDestroy($distortion_im);
ImageDestroy($im);

④ php怎麼實現驗證碼的

驗證碼功能機制實現思路

  1. 常規的驗證碼實現:

    a、產生一張png的圖片


    b、為圖片設置背景色


    c、設置字體顏色和樣式


    d、產生4位數的隨機的驗證碼


    e、把產生的每個字元調整旋轉角度和位置畫到png圖片上


    f、加入噪點和干擾線防止注冊機器分析原圖片來惡意注冊


    g、輸出圖片


    h、釋放圖片所佔內存


    i、將驗證碼保存到session或是資料庫


    j、將和輸入的驗證碼進行對比

  2. 簡訊(郵箱)驗證碼機制:

    a、產生4-6位數的隨機的驗證碼


    b、把產生的每個字元保存到session或是資料庫


    c、將驗證碼發送到用戶的手機(郵箱)


    d、用戶在規定時間內進行輸入


    e、將驗證碼從session或是資料庫中取出


    f、將和輸入的驗證碼進行對比驗證

⑤ 修改獲取驗證碼圖片到本地的PHP程序

最近項目不是很大,所以時間比較的空間,昨天琢磨著寫點東西,想起了前幾天電信公司投票選微笑天使的活動,投票是要填寫驗證碼的,想了下想寫個投票作弊程序,可是等我放假回來,人家活動已經結束了,昨天突然想起來,就寫了一個獲取驗證碼圖片到本地的PHP程序,以備今後有類似的投票活動可以直接拿來使用。
程序採用了PHP的GD庫,原理很簡單,就是先建立一張空白圖片,然後把驗證碼的圖片使用PHP
GD庫中的imagecreatefromjpeg函數建立一個image對象,最後計算圖片的長寬,再次使用PHP內置的image復制到一開始建立的空白圖片上去。
全部代碼如下:
header("Content-type:image/png");
set_time_limit(0);//設置PHP超時時間
$url
=
$_GET['url'];
$url
=
"http://vcer..com/verify";
$imginfo
=
GetImageSize
(
$url
);
$imgw
=
$imginfo
[0];
$imgh
=
$imginfo
[1];
$bg
=
imagecreatetruecolor($imgw,$imgh);
$image
=
imagecreatefromjpeg($url);
imagecolorallocate($image,255,255,255);
image($bg,$image,0,0,
0,0,$imgw,$imgh);
imagedestroy($image);
ImagePng($bg);
此處的代碼支持驗證碼格式為jpg的格式,如果是png或者gif的格式可以參考第二頁。
通過上一頁一個獲取驗證碼圖片到本地的PHP程序,對於驗證碼為jpg格式的圖片是可以正常輸出的,對於png、gif的驗證碼則不能正常使用,今天稍微修改一下PHP代碼,使其可以支持png、gif、jpg三種格式的驗證碼。
PHP判斷圖片的格式可使用php內置的exif_imagetype函數,非常方便,
關於exif_imagetype的詳細使用方法可以訪問:http://php.net/manual/en/function.exif-imagetype.php
header("Content-type:image/png");
set_time_limit(0);//設置PHP超時時間
$url
=
$_GET['url'];
$url
=
"http://vcer..com/verify";
if(empty($url)){
echo
"沒有圖片";
die;
}
$imginfo
=
GetImageSize
(
$url
);
$type
=
exif_imagetype($url);
$imgw
=
$imginfo
[0];
$imgh
=
$imginfo
[1];
$bg
=
imagecreatetruecolor($imgw,$imgh);
if($type==IMAGETYPE_GIF){
$image
=
imagecreatefromgif($url);
}elseif($type==IMAGETYPE_JPEG){
$image
=
imagecreatefromjpeg($url);
}elseif($type==IMAGETYPE_PNG){
$image
=
imagecreatefrompng($url);
}
imagecolorallocate($image,255,255,255);
image($bg,$image,0,0,
0,0,$imgw,$imgh);
imagedestroy($image);
ImagePng($bg);

⑥ php驗證碼怎麼實現

1.新建code.php驗證碼生成文件

在此之前必須打開php的GD庫,修改php.ini文件的配置,取消extension=php_gd2.dll前面的分號。代碼如下:

<?php

session_start();

//生成驗證碼圖片

Header("Content-type: image/PNG");

$im = imagecreate(44,18);

$back = ImageColorAllocate($im, 245,245,245);

imagefill($im,0,0,$back); //背景

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

//生成4位數字

for($i=0;$i<4;$i++){

$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));

$authnum=rand(1,9);

$vcodes.=$authnum;

imagestring($im, 5, 2+$i*10, 1, $authnum, $font);

}

for($i=0;$i<100;$i++) //加入干擾象素

{

$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));

imagesetpixel($im, rand()p , rand()0 , $randcolor);

}

ImagePNG($im);

ImageDestroy($im);

$_SESSION['Checknum'] = $vcodes;

?>

2. 顯示驗證碼圖片

在需要顯示驗證碼的頁面中加入

<input type="text" name="passcode" >

<img src="code.php">

3.判斷並獲取驗證碼的值

驗證碼是通過第一步驟代碼中的$_SESSION['Checknum'] = $vcodes;賦的值,所以驗證碼的值存在$_SESSION['Checknum']當中。在驗證頁面,使用以下代碼,

...

session_start();//啟動會話

$code=$_POST["passcode"];

if( $code == $_SESSION["Checknum"])

{...}即可完成驗證碼登錄。

運行截圖:

望採納,謝謝

⑦ php 怎麼獲取驗證碼的值

$_SESSION["vcode"] = $vcode;
驗證碼的值就在 $_SESSION["vcode"] 裡面。

⑧ 下面段php代碼怎麼得到驗證碼的值啊(在頁面裡面直接輸出就可以)。

最後兩句:
$name=$_SESSION[ 'str'];
echo $name;
去掉,因為這個php實際上表現為一個圖片,你echo是不會有值的
最後填一句 $_SESSION[ 'str'] = $str;
把這個文件保存為checkimg.php
然後,新建一個同級目錄下的php文件
a.php 如下:
<?php
session_start();
?>
<img src="checkimg.php"/>
驗證碼是:
<?
echo $_SESSION["str"];
?>

⑨ php驗證碼

你把下面語句修改一下:
echo"驗證碼不正確";//否則輸出失敗
增加調試信息,修改後如下:
echo"驗證碼不正確(str=$_SESSION[str],name=$name)";//否則輸出失敗

看看輸出的信息是什麼,然後就容易知道結果了。

⑩ php 怎麼獲取驗證碼的值,接著怎麼寫

驗證碼一般都保存在session中,列印一下session的值,就能看到驗證碼對應的欄位、值;
mp($_SESSION);

熱點內容
安卓彈鋼琴的游戲叫什麼名字 發布:2024-11-08 18:38:29 瀏覽:250
演算法用英語 發布:2024-11-08 18:37:44 瀏覽:994
android自動彈出輸入法 發布:2024-11-08 18:19:51 瀏覽:275
存儲器最小單位 發布:2024-11-08 18:04:49 瀏覽:796
伺服器掛網站怎麼掙錢 發布:2024-11-08 18:03:52 瀏覽:858
csqlserver 發布:2024-11-08 17:43:08 瀏覽:207
sql綠色 發布:2024-11-08 17:26:48 瀏覽:806
安卓手機如何更新紅標 發布:2024-11-08 17:25:23 瀏覽:63
python正則空格 發布:2024-11-08 17:14:18 瀏覽:235
蟑螂資料庫 發布:2024-11-08 17:13:07 瀏覽:781