後端php如何驗證呢(php驗證碼代碼怎麼寫)

本文目錄一覽:

php如何實現郵箱驗證

這是一個可以發送郵件的程序。程序是直接使用SMTP協議進行發送,用到了經典的phpMailer庫。

請閱讀apply.php文件。

發郵件之前你需要一個用來發送郵件的郵箱賬號。但不能使用這個賬號發送太多的郵件,否則會被當做垃圾郵件屏蔽。如果發送量較大,可以多申請幾個郵箱。

關鍵變數說明:

subject: 郵件的主題

email: 郵件的內容

host: SMTP主機,與你申請的郵箱的服務商有關,詳見代碼內注釋

fromname: 發件人的名字,可以任意寫,對方收到時能看到這個名字

from: 發件人地址

to: 收件人地址,代碼中寫了$to = $from,請自行更改

username和password: 你郵箱的賬號和密碼,一般username都等於發件人地址。必須提供,否則無法發送郵件。

PHPMailer說明:

$mailer = new PHPMailer(true);

$mailer-IsHTML(true); // 這是一封HTML郵件

$mailer-IsSMTP(true); // 連接SMTP服務發送郵件

# $mailer-SMTPDebug = true; // 是否開啟調試模式

$mailer-CharSet = ‘UTF-8’; // 郵件內容的編碼,和你程序的編碼保持一致

$mailer-Encoding = ‘base64’; // 郵件傳遞過程使用的編碼

$mailer-FromName = $fromname; // 發件人

$mailer-Host = $host; // SMTP服務地址

$mailer-AddAddress($to); // 添加收件人

$mailer-From = $from; // 設置發件人

$mailer-Subject = $subject; // 設置主題

$mailer-MsgHTML($email); // 設置HTML郵件內容

$mailer-SMTPAuth = true; // 開啟SMTP驗證

$mailer-Username = $username; // 設置用戶名

$mailer-Password = $passwd; // 設置密碼

$mailer-Send(); // 發送郵件

php怎樣驗證表單文本區域內容是否已存在資料庫中?

方法:查詢數據,若數據存在則輸出(前端這個要自己寫,我只寫了一個echo)

代碼如下:

//$conn = new mysqli($sql_server_name, $sql_username, $sql_password, $sql_db);

$timu = $_GET[“timu”];

$sql = $conn-query(“查詢 * from problems where timu

='”. $timu . “‘”); // 從problems庫里查 注意把「查詢」改成「select」,因為百度知道會屏蔽sql語句

if (mysqli_fetch_assoc($sql) 0) {

echo “已存在”;

} else {

echo “不存在”;

}

PHP 做的後台,如何「實名驗證」

實名認證牽涉公安備案系統,請想公安機關申請介面進行驗證。

否則只能用身份證生成規則進行驗證,但是這樣驗證不是百分之百準確的

以下附上PHP 身份證規則驗證代碼

/*/

# CopyRight: zxing

# Document: 檢查符合 GB11643-1999 標準的身份證號碼的正確性

# File:gb11643_1999.func.php Fri Mar 28 09:42:41 CST 2008 zxing

# Updated:Fri Mar 28 09:42:41 CST 2008

# Note: 調用函數 check_id();

#/*///

$id =array();

$id[] = ‘370882198601064774’;

$id[] = ‘420502198611281126’;

$id[] = ‘370882198601064770’;

$id[] = ‘370882860106477’;

$id[] = ‘63212519850703214x’;

$id[] = ‘429021198203221006’;

$id[] = ‘429036198203211023’;

foreach ($id as $key = $value){

echo check_id($value)?$value.’ 是真的!br/’: $value.’ 是假的!br/’;

}

#/*/

/*/

# 函數功能:計算身份證號碼中的檢校碼

# 函數名稱:idcard_verify_number

# 參數表 :string $idcard_base 身份證號碼的前十七位

# 返回值 :string 檢校碼

# 更新時間:Fri Mar 28 09:50:19 CST 2008

/*/

function idcard_verify_number($idcard_base){

if (strlen($idcard_base) != 17){

   return false;

}

    $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //debug 加權因子

    $verify_number_list = array(‘1’, ‘0’, ‘X’, ‘9’, ‘8’, ‘7’, ‘6’, ‘5’, ‘4’, ‘3’, ‘2’); //debug 校驗碼對應值

    $checksum = 0;

    for ($i = 0; $i  strlen($idcard_base); $i++){

        $checksum += substr($idcard_base, $i, 1) * $factor[$i];

    }

    $mod = $checksum % 11;

    $verify_number = $verify_number_list[$mod];

    return $verify_number;

}

/*/

# 函數功能:將15位身份證升級到18位

# 函數名稱:idcard_15to18

# 參數表 :string $idcard 十五位身份證號碼

# 返回值 :string

# 更新時間:Fri Mar 28 09:49:13 CST 2008

/*/

function idcard_15to18($idcard){

    if (strlen($idcard) != 15){

        return false;

    }else{// 如果身份證順序碼是996 997 998 999,這些是為百歲以上老人的特殊編碼

        if (array_search(substr($idcard, 12, 3), array(‘996’, ‘997’, ‘998’, ‘999’)) !== false){

            $idcard = substr($idcard, 0, 6) . ’18’. substr($idcard, 6, 9);

        }else{

            $idcard = substr($idcard, 0, 6) . ’19’. substr($idcard, 6, 9);

        }

    }

    $idcard = $idcard . idcard_verify_number($idcard);

    return $idcard;

}

/*/

# 函數功能:18位身份證校驗碼有效性檢查

# 函數名稱:idcard_checksum18

# 參數表 :string $idcard 十八位身份證號碼

# 返回值 :bool

# 更新時間:Fri Mar 28 09:48:36 CST 2008

/*/

function idcard_checksum18($idcard){

    if (strlen($idcard) != 18){ return false; }

    $idcard_base = substr($idcard, 0, 17);

    if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1))){

        return false;

    }else{

        return true;

    }

}

/*/

# 函數功能:身份證號碼檢查介面函數

# 函數名稱:check_id

# 參數表 :string $idcard 身份證號碼

# 返回值 :bool 是否正確

# 更新時間:Fri Mar 28 09:47:43 CST 2008

/*/

function check_id($idcard) {

if(strlen($idcard) == 15 || strlen($idcard) == 18){

   if(strlen($idcard) == 15){

    $idcard = idcard_15to18($idcard);

   }

   if(idcard_checksum18($idcard)){

    return true;

   }else{

    return false;

   }

}else{

   return false;

}

}

把前端表單數據驗證過了,後端PHP如何驗證

提交到一個php頁面。比如check.php

$_POST接收數據。

$username = $_POST[‘username’];

$password = $_POST[‘password’];

$sql = “select id from user where username=’$username’ and password=’$password'”;

如果結果存在,說明有名字密碼正確。

如何用PHP生成驗證碼

PHP生成驗證碼的原理:使用PHP的GD庫,生成一張帶驗證碼的圖片,並將驗證碼保存在Session中。PHP生成驗證碼的大致流程有:

1、產生一張png的圖片;

2、為圖片設置背景色;

3、設置字體顏色和樣式;

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

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

6、加入噪點和干擾線防止註冊機器分析原圖片來惡意破解驗證碼;

7、輸出圖片;

8、釋放圖片所佔內存。

session_start(); 

getCode(4,60,20); 

 

function getCode($num,$w,$h) { 

    $code = “”; 

    for ($i = 0; $i  $num; $i++) { 

        $code .= rand(0, 9); 

    } 

    //4位驗證碼也可以用rand(1000,9999)直接生成 

    //將生成的驗證碼寫入session,備驗證時用 

    $_SESSION[“helloweba_num”] = $code; 

    //創建圖片,定義顏色值 

    header(“Content-type: image/PNG”); 

    $im = imagecreate($w, $h); 

    $black = imagecolorallocate($im, 0, 0, 0); 

    $gray = imagecolorallocate($im, 200, 200, 200); 

    $bgcolor = imagecolorallocate($im, 255, 255, 255); 

    //填充背景 

    imagefill($im, 0, 0, $gray); 

 

    //畫邊框 

    imagerectangle($im, 0, 0, $w-1, $h-1, $black); 

 

    //隨機繪製兩條虛線,起干擾作用 

    $style = array ($black,$black,$black,$black,$black, 

        $gray,$gray,$gray,$gray,$gray 

    ); 

    imagesetstyle($im, $style); 

    $y1 = rand(0, $h); 

    $y2 = rand(0, $h); 

    $y3 = rand(0, $h); 

    $y4 = rand(0, $h); 

    imageline($im, 0, $y1, $w, $y3, IMG_COLOR_STYLED); 

    imageline($im, 0, $y2, $w, $y4, IMG_COLOR_STYLED); 

 

    //在畫布上隨機生成大量黑點,起干擾作用; 

    for ($i = 0; $i  80; $i++) { 

        imagesetpixel($im, rand(0, $w), rand(0, $h), $black); 

    } 

    //將數字隨機顯示在畫布上,字元的水平間距和位置都按一定波動範圍隨機生成 

    $strx = rand(3, 8); 

    for ($i = 0; $i  $num; $i++) { 

        $strpos = rand(1, 6); 

        imagestring($im, 5, $strx, $strpos, substr($code, $i, 1), $black); 

        $strx += rand(8, 12); 

    } 

    imagepng($im);//輸出圖片 

    imagedestroy($im);//釋放圖片所佔內存 

}

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/129978.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • 怎麼寫不影響Python運行的長段代碼

    在Python編程的過程中,我們不可避免地需要編寫一些長段代碼,包括函數、類、複雜的控制語句等等。在編寫這些代碼時,我們需要考慮代碼可讀性、易用性以及對Python運行性能的影響。…

    編程 2025-04-29
  • Python愛心代碼動態

    本文將從多個方面詳細闡述Python愛心代碼動態,包括實現基本原理、應用場景、代碼示例等。 一、實現基本原理 Python愛心代碼動態使用turtle模塊實現。在繪製一個心形的基礎…

    編程 2025-04-29

發表回復

登錄後才能評論