php驗證系統
㈠ php判斷手機是IOS還是Android
<?php
if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')||strpos($_SERVER['HTTP_USER_AGENT'], 'iPad')){
echo 'systerm is IOS';
}else if(strpos($_SERVER['HTTP_USER_AGENT'], 'Android')){
echo 'systerm is Android';
}else{
echo 'systerm is other';
}
㈡ linux系統上怎麼檢驗PHP環境搭建成功
隨便簡歷個PHP文件,訪問能解析就成功了
<?php
phpinfo();
㈢ PHP網路驗證系統開源
用途是給易語言和按鍵精靈所寫的游戲腳本的進行注冊碼遠程授權
dll動態鏈接庫
基於ThinkPHP3.2的非前後端分離Web
服務端(php)介紹:
客戶端(dll)介紹:
https://github.com/HJaycee/Signxx
㈣ php登錄系統身份驗證
login.html
<form
id="form1"
name="form1"
method="post"
action="checklogin.php">
<table
width="400">
<tr>
<th
width="27%"
scope="row">用戶名</th>
<td
width="73%"><input
name="user_name"
type="text"
id="user_name"
/></td>
</tr>
<tr>
<th
scope="row">密碼</th>
<td><input
name="user_pwd"
type="password"
id="user_pwd"
/></td>
</tr>
<tr>
<th
scope="row">請填寫答案
</th>
<td><input
name="yzm"
type="text"
id="yzm"
size="5"
/>
123</td>
</tr>
<tr>
<td
colspan="2"
scope="row"><div
align="center">
<input
type="submit"
name="Submit"
value="
登錄
"
/>
</div></td>
</tr>
</table>
</form>
checklogin.php
<?php
session_start();
require_once("../include/class/Mysql.class.php");
require_once("../include/class/FuncAdmin.class.php");
require_once("../include/class/Users.class.php");
$db
=
new
Mysql();
$db->getConnection(1);
$db->select_db();
$db->query("set
names
gb2312");
$f
=
new
FuncAdmin();
if(!empty($_POST['Submit'])){
//判斷登錄
$user_name
=
$_POST['user_name'];
$user_pwd
=
$_POST['user_pwd'];
$yzm
=
$_POST['yzm'];
//加強驗證
//此處很重要但沒寫出呢cxmcook
if(empty($user_name)
||
empty($user_pwd)){
$f->alert_back("用戶名與密碼不能為空!");
}
$user
=
new
Users();
$sql
=
$user->get_select_sql("
where
user_name='".$user_name."'
and
user_pwd='".$user_pwd."'
");
$rs
=
$db->query($sql);
$row
=
$db->fetch_array($rs);
//var_mp($row);
//die("<hr>");
$rownum
=
$db->num_rows($rs);
//die('=========='.$rownum);
if(
$rownum
>0
){
//$row
=
$db->fetch_array($rs);
$_SESSION['admin']
=
'admin';
$_SESSION['user_id']
=
$row['user_id'];
$_SESSION['user_name']
=
$row['user_name'];
$_SESSION['user_realname']
=
$row['user_realname'];
$_SESSION['user_last_logintime']
=
$row['user_last_logintime'];
$_SESSION['user_last_loginIp']
=
$row['user_last_loginIp'];
$_SESSION['user_loginnum']
=
$row['user_loginnum'];
//header("Location:index.php");
echo
"<script>
alert('登錄成功!".$_SESSION['user_realname']."');
location='index.php';
</script>";
}else{
$f->admin_tip("用戶名或密碼錯誤!");
}
}
?>
㈤ 用php做圖書管理系統,登錄驗證的時候,輸入正確的用戶名密碼總是提示密碼錯誤
你輸出 $sql就知道是什麼原因了。。
$sql="select * from message where username= '".$_POST[username]."'";
㈥ php如何判斷當前的操作系統是linux還是windows
PHP判斷當前操作系統的方法很多,比如:
1.直接使用PHP預定義常量PHP_OS來獲取;
<?php
header("Content-type:text/html;charset=utf-8;");
$os_name=PHP_OS;
if(strpos($os_name,"Linux")!==false){
$os_str="Linux操作系統";
}elseif(strpos($os_name,"WIN")!==false){
$os_str="Windows操作系統";
}
echo$os_str;
2.還可以通過用戶瀏覽器信息來判斷操作系統。
<?php
header("Content-type:text/html;charset=utf-8;");
//測試
echoget_user_os();
//Windows操作系統
functionget_user_os(){
//獲取用戶瀏覽信息參數
$agent=$_SERVER['HTTP_USER_AGENT'];
//獲取操作系統類型
if(strpos($agent,"NT6.1")){
$os_name="Windows7";
}elseif(strpos($agent,"NT5.1")){
$os_name="WindowsXP(SP2)";
}elseif(strpos($agent,"NT5.2")&&strpos($agent,"WOW64")){
$os_name="WindowsXP64-bitEdition";
}elseif(strpos($agent,"NT5.2")){
$os_name="Windows2003";
}elseif(strpos($agent,"NT6.0")){
$os_name="WindowsVista";
}elseif(strpos($agent,"NT5.0")){
$os_name="Windows2000";
}elseif(strpos($agent,"4.9")){
$os_name="WindowsME";
}elseif(strpos($agent,"NT4")){
$os_name="WindowsNT4.0";
}elseif(strpos($agent,"98")){
$os_name="Windows98";
}elseif(strpos($agent,"95")){
$os_name="Windows95";
}elseif(strpos($agent,"Linux")){
$os_name="Linux";
}
//判斷
if(strpos($os_name,"Linux")!==false){
$os_str="Linux操作系統";
}elseif(strpos($os_name,"Windows")!==false){
$os_str="Windows操作系統";
}else{
$os_str="未知操作系統";
}
return$os_str;
}
3.使用php_uname函數來獲取;
<?php
header("Content-type:text/html;charset=utf-8;");
$os_name=php_uname();
if(strpos($os_name,"Linux")!==false){
$os_str="Linux操作系統";
}elseif(strpos($os_name,"Windows")!==false){
$os_str="Windows操作系統";
}
echo$os_str;
㈦ 如何實現php手機簡訊驗證功能
現在網站在建設網站時為了保證用戶信息的真實性,往往會選擇發簡訊給用戶手機發驗證碼信息,只有通過驗證的用戶才可以注冊,這樣保證了用戶的聯系信息資料的100%的准確性。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >
<html xmlns>
<head>
<title></title>
<script src="js/jquery-1.4a2.min.js" type="text/javascript"></script>
<script type="text/javascript">
/*-------------------------------------------*/
var InterValObj; //timer變數,控制時間
var count = 60; //間隔函數,1秒執行
var curCount;//當前剩餘秒數
var code = ""; //驗證碼
var codeLength = 6;//驗證碼長度
function sendMessage() {
curCount = count;
var dealType; //驗證方式
tel = $(』#tel』).val();
if(tel!=』』){
//驗證手機有效性
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+d{8})$/;
if(!myreg.test($(』#tel』).val()))
{
alert(』請輸入有效的手機號碼!』);
return false;
}
tel = $(』#tel』).val();
//產生驗證碼
for (var i = 0; i < codeLength; i++) {
code += parseInt(Math.random() * 9).toString();
}
//設置button效果,開始計時
$("#btnSendCode").attr("disabled", "true");
$("#btnSendCode").val("請在" + curCount + "秒內輸入驗證碼");
InterValObj = window.setInterval(SetRemainTime, 1000); //啟動計時器,1秒執行一次
//向後台發送處理數據
$.ajax({
type: "POST", //用POST方式傳輸
dataType: "text", //數據格式:JSON
url: 』yanzhengma.php』, //目標地址(根據實際地址)
data: "&tel=" + tel + "&code=" + code,
error: function (XMLHttpRequest, textStatus, errorThrown) { },
success: function (msg){ }
});
}else{
alert(』請填寫手機號碼』);
}
}
//timer處理函數
function SetRemainTime() {
if (curCount == 0) {
window.clearInterval(InterValObj);//停止計時器
$("#btnSendCode").removeAttr("disabled");//啟用按鈕
$("#btnSendCode").val("重新發送驗證碼");
code = ""; //清除驗證碼。如果不清除,過時間後,輸入收到的驗證碼依然有效
}
else {
curCount--;
$("#btnSendCode").val("請在" + curCount + "秒內輸入驗證碼");
}
}
</script>
</head>
<body>
<input name="tel" id=tel type="text" />
<input id="btnSendCode" type="button" value="發送驗證碼" onclick="sendMessage()" /></p>
</body>
</html>
第三、調用簡訊伺服器簡訊介面
整理的頁面是yanzhengma.php(具體根據服務商提供信息)
<?php //提交簡訊
$post_data = array();
$post_data[』userid』] =簡訊服務商提供ID;
$post_data[』account』] = 』簡訊服務商提供用戶名』;
$post_data[』password』] = 』簡訊服務商提供密碼』;
// Session保存路徑
$sessSavePath = dirname(__FILE__)."/../data/sessions/";
if(is_writeable($sessSavePath) && is_readable($sessSavePath)){
session_save_path($sessSavePath);
}
session_register(』mobliecode』);
$_SESSION[』mobilecode』] = $_POST["code"];
$content=』簡訊驗證碼:』.$_POST["code"].』【簡訊驗證】』;
$post_data[』content』] = mb_convert_encoding($content,』utf-8』, 』gb2312』); //簡訊內容需要用urlencode編碼下
$post_data[』mobile』] = $_POST["tel"];
$post_data[』sendtime』] = 』』; //不定時發送,值為0,定時發送,輸入格式YYYYMMDDHHmmss的日期值
$url=』http://IP:8888/sms.aspx?action=send』;
$o=』』;
foreach ($post_data as $k=>$v)
{
$o.="$k=".$v.』&』;
}
$post_data=substr($o,0,-1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果需要將結果直接返回到變數里,那加上這句。
$result = curl_exec($ch);
?>
第四:提交表單信息時對簡訊驗證碼驗證
//手機驗證碼開始
session_start();
$svalitel = $_SESSION[』mobilecode』];
$vdcodetel = empty($vdcodetel) ? 』』 : strtolower(trim($vdcodetel));
if(strtolower($vdcodetel)!=$svalitel || $svalitel==』』)
{
ResetVdValue();
//echo "Pageviews=".$vdcodetel;
ShowMsg("手機驗證碼錯誤!", 』-1』);
exit();
}
㈧ thinkphp驗證器正則常用規則
ThinkPHP的自動驗證常用的正則
一般我們見的比較多的是設置規則為require、email之類的,其實這些本身也是屬於正則表達式驗證方式,只是系統內置定義了一些常用的正則表達式而已。這些內置的正則表達式的定義可以參考model類的regex方法,內置支持的正則定義包括:
require 欄位必須、email 郵箱、url URL地址、currency 貨幣、number 數字、zip 郵編、integer 整數、double 浮點數、english 英文字母,但是並不局限於這些正則規則的,我們完全可以直接在驗證規則裡面使用正則表達式進行定義,這樣我們可以憑借強大的正則表達式來進行表單欄位驗 證,例如:
附上一些表單驗證中比較常用的正則表達式寫法:
匹配特定字元串:
限定符
限定符用來指定正則表達式的一個給定組件必須要出現多少次才能滿足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6種。
正則表達式的限定符有:
ThinkPHP的自動驗證機制是為了進行表單數據驗證,驗證可以支持function、 callback、confirm、equal、unique和regex,這里要講的是使用正則表達式進行驗證。
特殊字元
許多元字元要求在試圖匹配它們時特別對待。若要匹配這些特殊字元,必須首先使字元"轉義",即,將反斜杠字元 放在它們前面。下表列出了正則表達式中的特殊字元:
正則表達式(regular expression)描述了一種字元串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。
例如:
構造正則表達式的方法和創建數學表達式的方法一樣。也就是用多種元字元與運算符可以將小的表達式結合在一起來創建更大的表達式。正則表達式的組件可以是單個的字元、字元集合、字元范圍、字元間的選擇或者所有這些組件的任意組合。
正則表達式是由普通字元(例如字元 a 到 z)以及特殊字元(稱為"元字元")組成的文字模式。模式描述在搜索文本時要匹配的一個或多個字元串。正則表達式作為一個模板,將某個字元模式與所搜索的字元串進行匹配。
普通字元包括沒有顯式指定為元字元的所有可列印和不可列印字元。這包括所有大寫和小寫字母、所有數字、所有標點符號和一些其他符號。
非列印字元也可以是正則表達式的組成部分。下表列出了表示非列印字元的轉義序列:
所謂特殊字元,就是一些有特殊含義的字元,如上面說的 runoo*b 中的 ,簡單的說就是表示任何字元串的意思。如果要查找字元串中的 * 符號,則需要對 * 進行轉義,即在其前加一個 : runo*ob 匹配 runo ob。
許多元字元要求在試圖匹配它們時特別對待。若要匹配這些特殊字元,必須首先使字元"轉義",即,將反斜杠字元 放在它們前面。下表列出了正則表達式中的特殊字元:
限定符用來指定正則表達式的一個給定組件必須要出現多少次才能滿足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6種。
正則表達式的限定符有:
由於章節編號在大的輸入文檔中會很可能超過九,所以您需要一種方式來處理兩位或三位章節編號。限定符給您這種能力。下面的正則表達式匹配編號為任何位數的章節標題:
請注意,限定符出現在范圍表達式之後。因此,它應用於整個范圍表達式,在本例中,只指定從 0 到 9 的數字(包括 0 和 9)。
這里不使用 + 限定符,因為在第二個位置或後面的位置不一定需要有一個數字。也不使用 ? 字元,因為使用 ? 會將章節編號限制到只有兩位數。您需要至少匹配 Chapter 和空格字元後面的一個數字。
如果您知道章節編號被限制為只有 99 章,可以使用下面的表達式來至少指定一位但至多兩位數字。
上面的表達式的缺點是,大於 99 的章節編號仍只匹配開頭兩位數字。另一個缺點是 Chapter 0 也將匹配。只匹配兩位數字的更好的表達式如下:
或
* 、+限定符都是貪婪的,因為它們會盡可能多的匹配文字,只有在它們的後面加上一個?就可以實現非貪婪或最小匹配。
例如,您可能搜索 HTML 文檔,以查找括在 H1 標記內的章節標題。該文本在您的文檔中如下:
<H1>Chapter 1 - 介紹正則表達式</H1>
貪婪: 下面的表達式匹配從開始小於符號 (<) 到關閉 H1 標記的大於符號 (>) 之間的所有內容。
非貪婪: 如果您只需要匹配開始和結束 H1 標簽,下面的非貪婪表達式只匹配 <H1>。
如果只想匹配開始的 H1 標簽,表達式則是:
通過在 *、+ 或 ? 限定符之後放置 ?,該表達式從"貪心"表達式轉換為"非貪心"表達式或者最小匹配。
定位符使您能夠將正則表達式固定到行首或行尾。它們還使您能夠創建這樣的正則表達式,這些正則表達式出現在一個單詞內、在一個單詞的開頭或者一個單詞的結尾。
正則表達式的定位符有:
㈨ php如何驗證過濾用戶是否登錄
一、php可以通過Session,實現用戶登錄驗證。
session習慣上被譯為會話,它的設計是為了在一個訪問期間在不同的頁面間傳輸數據,以解決http協議無狀態的問題。
session_register()函數的作用是注冊新的變數,它會在全局變數中增加1個變數到目前的session之中,以後其他頁面可以通過session_is_registered()函數檢測該session變數是否已經注冊。
二、通過session來檢測用戶登錄信息,由兩個文件組成,login.php為用戶登錄頁面,checklogin.php用於檢測賬號、密碼和是否登錄成功。
具體參考代碼如下:
login.php的代碼如下:
<?php
session_start();//初始化session
if(isset($_SESSION['shili']))
{
header("Location:shili.php");//重新定向到其他頁面
exit();
}
?>
<scriptlanguage="javascript">
functionchecklogin(){
if((login.username.value!="")&&(login.password.value!=""))
{
returntrue;//判斷用戶名和密碼不為空,返回TRUE
}
else
{
alert("昵稱或密碼不能為空!")
}
}
</script>
<styletype="text/css">
.style1{font-size:13px;font-family:"黑體";font-weight:normal;color:#0099FF;}
</style>
<divalign="center">
<formname="login"method="post"action="checklogin.php"onSubmit="returnchecklogin()">
<tablewidth="260"border="1"bgcolor="#D8EFFA">
<tralign="center">
<tdheight="30"colspan="2"><spanclass="style1">管理系統登錄</span></td>
</tr>
<tr>
<tdwidth="90"align="center"class="style1">管理員:</td>
<tdwidth="170"height="20"align="left"valign="middle"><inputname="username"type="text"id="username"size="20"></td>
</tr>
<tr>
<tdalign="center"class="style1">密碼:</td>
<tdheight="20"align="left"valign="middle"><inputname="password"type="password"id="password"size="20"></td>
</tr>
<tr>
<tdalign="center"class="style1"></td>
<tdheight="20"align="center"><inputtype="submit"name="Submit"value="登錄"></td>
</tr>
</table>
</form>
</div>
checklogin.php的代碼如下:
<?php
session_start();//初始session
if(isset($_SESSION['shili']))
{
header("Location:shili.php");//重新定向到其他頁面
exit;
}//登錄過的話立即結束
$shili_name=$_POST['username'];//獲取參數
$password=$_POST['password'];
//驗證管理員名稱和密碼是否正確,這里採用直接驗證,沒有連接資料庫
if($shili_name=="mr"and$password=="mrsoft")
{
session_register("shili");//注冊新的變數,保存當前會話的昵稱
$shili=$shili_name;
echo"<fontcolor=red>登錄成功!</font>";
header("Location:shili.php");//登錄成功重定向到管理頁面
}
else
{
echo"<tablewidth='100%'align=center><tr><tdalign=center>";
echo"賬號或密碼錯誤,或者不是管理員賬號<br>";
echo"<fontcolor=red>登錄失敗!</font><br><ahref='login.php'>請重新輸入</a>";
echo"</td></tr></table>";
}
?>
shili.php的代碼如下:(實驗簡單驗證)
<?php
echo"WelcometoMyWorld!";
?>
//如果想要對某個頁面限制瀏覽的用戶,可以使用同樣的方式,只要把如下的代碼放在該頁面的開頭即可:
<?php
session_start();
if(!isset($_SESSION['shili'])){
echo"<palign=center>";
echo"<fontcolor=#ff0000size=5><strong><big>";
echo"你沒有登錄,請<ahref='denglu.php'>登錄</a>!";
echo"</big></strong></font></p>";
exit();
}
?>