本文目錄一覽:
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