當前位置:首頁 » 編程語言 » php判斷驗證碼正確

php判斷驗證碼正確

發布時間: 2022-09-02 04:06:47

phpcms 如何判斷驗證碼輸入正確

驗證碼生成後對應的數值存貯在session中,可安裝如下代碼進行判斷:

$this->_session_start();//開啟sesseion
......
//判斷驗證碼
$code=isset($_POST['code'])&&trim($_POST['code'])?trim($_POST['code']):showmessage(L('input_code'),HTTP_REFERER);
if($_SESSION['code']!=strtolower($code)){
showmessage(L('code_error'),HTTP_REFERER);
}

❷ php中用戶輸入的驗證碼怎樣用javascript 代碼進行判斷 是否輸入正確

驗證碼一般都是在伺服器隨機產生,在html頁面用ajax獲取驗證碼來和用戶輸入的驗證碼進行比較
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}
function doit()
{
createXMLHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open("get","auth_code.php",true);
xmlHttp.send(null);
}
function handleStateChange()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200 || xmlHttp.status==0)
{
checkAuthCodeInput(xmlHttp.responseText);
}
}
}
function checkAuthCodeInput(authcode)
{
if(document.getElementById("自定義").value==auth)
{
return true;
}
return false;
}
</script>
<img src="auth_code.php" id="img_auth_code"/>
<a href="document.getElementById('img_auth_code').src='auth_code.php?code='+Math.random();">看不清,再換一張</a>

//該頁面用於隨機獲取驗證碼rand_auth_code.php
<?php
function get_auth_code()
{
for($i=0;$i<5;$i++)
{
$_GLOBALS['rand_str'].=strtoupper(dechex(rand(0,15)));
rand_str_width+=imagefontwidth($i);
}
}
echo $_GLOBALS['rand_str'];
?>

<?php
include_once("rand_auth_code.php");//導入產生驗證碼的頁面
$img_width=100;
$img_height=25;
$img=imagecreatetruecolor($img_width,$img_height);

$img_bg_color=imagecolorallocate($img,0,0,0);

imagefill($img,0,0,$img_bg_color);

$img_font_color=imagecolorallocate($img,225,225,225);

get_auth_code();//調用方法,產生隨機驗證碼

$img_font_x=$img_width/2 - $rand_str_width/2;
$img_font_y=($img_height-imagefontwidth(5))/2;

imagestring($img,5,$img_font_x,$img_font_y,$_GLOBALS[rand_str],$img_font_color);

header("Content-Type:image/jpeg");

imagejpeg($img);

imagedestroy($img);
unset($_GLOBALS['rand_str']);
?>

不知是否符合你的要求

❸ php驗證碼判斷問題

沒明白你的意思, 驗證碼就是這樣, 生成的時候將驗證碼寫進session, 驗證的時候取出來的肯定是上次生成那個.

能詳細說一下你哪裡不明白么?

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

我想你是沒明白驗證碼的工作原理, 驗證碼多數情況是用來防止機器人自動發貼或注冊而採取的一種驗證手段, 在php中驗證碼多數用session來實現.

舉個例子讓你理解下流程.

1. 用戶訪問注冊頁面a.php
2. a.php輸出了一個驗證碼b.php,實際上等於用戶向b.php發送了一個請求.
3. b.php生成一個隨機數$a, 並將這個隨機數保存到session中, 然後將圖片顯示給用戶
4. 用戶填寫注冊表單並提交到c.php
5. c.php接受用戶注冊信息, 但在注冊之前要從session中取出隨機數$a和你提交上來的驗證碼做一下比較, 這個隨機數$a是在b.php那個請求中生成的, 也就是在a.php中看到的那個圖片. 比較如果相同那麼同意你進行申請, 如果不相同則返回錯誤信息並跳轉回a.php, 然後回到步驟1

這里我覺得你最應該了解的是session的作用,是用來在會話期間內在請求之間傳遞數據.

❹ 在php中進行驗證碼的判斷,對的話提交,錯誤的話,表單不提交,如何進行實現

PHP驗證程序,假設資料庫存儲的是用戶名和 md5 加密後的密碼:
// 表單提交後...
$posts = $_POST;
// 清除一些空白符號
foreach ($posts as $key => $value)
{
$posts[$key] = trim($value);
}
$password = md5($posts["password"]);
$username = $posts["username"];
$query = "SELECT `username` FROM `user` WHERE `password` = '$password'";
// 取得查詢結果
$userInfo = $DB->getRow($query);
if (!empty($userInfo))
{
if ($userInfo["username"] == $username)
{
// 當驗證通過後,啟動 session
session_start();
// 注冊登陸成功的 admin 變數,並賦值 true
$_session["admin"] = true;
}
else
{
die("用戶名密碼錯誤");
}
}
else
{
die("用戶名密碼錯誤");
}
我們在需要用戶驗證的頁面啟動 session,判斷是否登陸:
// 防止全局變數造成安全隱患
$admin = false;
// 啟動會話,這步必不可少
session_start();
// 判斷是否登陸
if (isset($_SESSION["admin"]) && $_session["admin"] === true)
{
echo "您已經成功登陸";
}
else
{
// 驗證失敗,將 $_session["admin"] 置為 false
$_session["admin"] = false;
die("您無權訪問");
}
?>

❺ php驗證碼怎麼先在客戶端用js判斷

這個有兩種方式
A:該值保存在cookie裡面,然後使用js獲取cookie中的指定變數對比就知道驗證碼對不對了,好處就是驗證准確,缺點就是可能被破解。
B:驗證碼應該符合一個演算法的規定,例如,驗證碼為6位,其ascII代碼的值加起來應該能被某個數整除,然後js端用該演算法檢查驗證碼得知是否正確,有點是難於破解,缺點是有可能通過js驗證但是實際上用戶輸入的驗證碼根本不對。

但是一般還是推薦後面一種方式。

❻ php驗證碼判斷

session_start();
$str_number = trim($_POST['number']);
if(strtolower($_SESSION['rand'])==strtolower($str_number )){
echo "驗證碼正確";
}else{
echo "驗證碼不正確";
}

最好加strtolower函數轉換下大小寫,這樣子,用戶在輸入時就不用區分大小寫了。不然用戶體驗會很麻煩,這是我個人理解。

❼ php驗證碼 問題

試試我的吧
【code.php】
<?php
/**
* 驗證碼圖片
*/
session_start();
Header("Content-type: image/gif");
/*
* 初始化
*/
$border = 0; //是否要邊框 1要:0不要
$how = 4; //驗證碼位數
$w = $how*15; //圖片寬度
$h = 20; //圖片高度
$fontsize = 10; //字體大小
$alpha = "abcdefghijkmnpqrstuvwxyz"; //驗證碼內容1:字母
$number = "23456789"; //驗證碼內容2:數字
$randcode = ""; //驗證碼字元串初始化
srand((double)microtime()*1000000); //初始化隨機數種子

$im = ImageCreate($w, $h); //創建驗證圖片

/*
* 繪制基本框架
*/
$bgcolor = ImageColorAllocate($im, 255, 255, 255); //設置背景顏色
ImageFill($im, 0, 0, $bgcolor); //填充背景色
if($border)
{
$black = ImageColorAllocate($im, 0, 0, 0); //設置邊框顏色
ImageRectangle($im, 0, 0, $w-1, $h-1, $black);//繪制邊框
}

/*
* 逐位產生隨機字元
*/
for($i=0; $i<$how; $i++)
{
$alpha_or_number = mt_rand(0, 1); //字母還是數字
$str = $alpha_or_number ? $alpha : $number;
$which = mt_rand(0, strlen($str)-1); //取哪個字元
$code = substr($str, $which, 1); //取字元
$j = !$i ? 4 : $j+15; //繪字元位置
$color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字元隨即顏色
ImageChar($im, $fontsize, $j, 3, $code, $color3); //繪字元
$randcode .= $code; //逐位加入驗證碼字元串
}

/*
* 如果需要添加干擾就將注釋去掉
*
* 以下for()循環為繪背景干擾線代碼
*/
/* + -------------------------------繪背景干擾線 開始-------------------------------------------- + */
for($i=0; $i<5; $i++)//繪背景干擾線
{
$color1 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干擾線顏色
ImageArc($im, mt_rand(-5,$w), mt_rand(-5,$h), mt_rand(20,300), mt_rand(20,200), 55, 44, $color1); //干擾線
}
/* + -------------------------------繪背景干擾線 結束-------------------------------------- + */

/*
* 如果需要添加干擾就將注釋去掉
*
* 以下for()循環為繪背景干擾點代碼
*/
/* + --------------------------------繪背景干擾點 開始------------------------------------------ + */
/*
for($i=0; $i<$how*40; $i++)//繪背景干擾點
{
$color2 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干擾點顏色
ImageSetPixel($im, mt_rand(0,$w), mt_rand(0,$h), $color2); //干擾點
}
*/
/* + --------------------------------繪背景干擾點 結束------------------------------------------ + */

//把驗證碼字元串寫入session 方便提交登錄信息時檢驗驗證碼是否正確 例如:$_POST['randcode'] = $_SESSION['randcode']
$_SESSION['randcode'] = $randcode;

/*繪圖結束*/
Imagegif($im);
ImageDestroy($im);
/*繪圖結束*/
?>
【test.php】
<img src="code.php">

❽ 用PHP、JS寫判斷驗證碼是否正確,不要alert彈出框,我要的是在輸入之後顯示是否正確。

注冊按鈕綁定click 事件 事件開頭判斷 Checkvar();

如果是FORM 要在 聲明onsubmit="Checkvar();"

functionCheckvar(){

varvarcode=$("#vc");//這里獲取輸入的注冊碼
vartipsmsg=$("#msg")//提示框對象
$.ajax({
url:"checkcode.php?code="+varcode+"&",
async:false,//關閉非同步

success:function(data){用回調函數檢查伺服器返回的結果
if(data=="0"){未通過
tipsmsg.html('驗證碼錯誤');
returnfalse;
}else{//通過
tipsmsg.html('成功');
returntrue;
}

}
});
}

checkcode.php
<?
session_start();

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

echo"1";
}else{
echo"0";
}
?>

❾ PHP驗證碼已經生成圖片瞭然後應該怎麼把圖片拿過去放在登錄哪裡驗證用戶輸入的驗證碼是否正確 大佬們

verification.php 生成驗證圖片,並且將驗證碼寫到session
login-action.php 判斷用戶提交的數據中的驗證碼和session中的驗證碼比對即可

❿ php中,我使用jquery+ajax 判斷驗證碼是否正確。失敗了就不提交表單怎麼做,驗證失敗就不提交

你的form提交應該有個 return 驗證方法() 這個方法裡面判斷php返回驗證碼錯誤就return false; 就會把false 傳遞到 form提交那裡! 就實現了不能提交~

熱點內容
壓縮皇冠 發布:2025-01-16 01:51:27 瀏覽:274
全鍵盤編程鍵盤 發布:2025-01-16 01:38:59 瀏覽:422
尾貨棉服直播間腳本 發布:2025-01-16 01:21:45 瀏覽:228
vb編程步驟 發布:2025-01-16 01:11:58 瀏覽:202
bb霜解壓 發布:2025-01-16 01:11:11 瀏覽:596
編程懟人 發布:2025-01-16 00:53:08 瀏覽:761
建立共享伺服器地址 發布:2025-01-16 00:26:40 瀏覽:565
android開機動畫修改 發布:2025-01-16 00:26:26 瀏覽:872
怎麼解壓pc版游戲 發布:2025-01-16 00:16:32 瀏覽:122
v9更新到91有方舟編譯器嗎 發布:2025-01-16 00:11:49 瀏覽:500