十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
foreach(數(shù)組 as $key = $val)

創(chuàng)新互聯(lián)建站2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元衛(wèi)輝做網(wǎng)站,已為上家服務(wù),為衛(wèi)輝各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
{
if(is_array($val))
{
foreach($val as $kys=$vals){
if($key=="某一個(gè)鍵名")
{
$數(shù)組[$key][$keys];
}
}
}
}
你記住 所有在 引號(hào)里面的 東西都是字符串!?。。?!
if("SELECT username,passwd FROM wen WHERE $username=$user,$passwd=$passwd"){
echo "scriptalert('歡迎登錄!');window.location.href='index1.php';/script";
}
這一句代碼本身就是不通的.
還有就是 你的sql語句也是錯(cuò)誤的。
參考如下:
$sql = 'SELECT username,passwd FROM wen WHERE username="'.$user.'" AND passwd="'.$passwd.'"';
$result = mysql_query($sql,$conn);
手動(dòng)回復(fù),不謝
?php
/**
*?不是很看的懂你這個(gè)程序是干啥的,英文字面上意思是數(shù)據(jù)驗(yàn)證的,源代碼太長很多不必要的地方
*?Class?Validate
*/
class?Validate{
public?function?data_verify($_verify){
//必要數(shù)據(jù)驗(yàn)證
if(empty($_verify))?return?false;
//報(bào)錯(cuò)行數(shù)計(jì)算
$num?=?0;
//正確代碼數(shù)組
$successData?=?array('11'='test','22'='test1','33'='test2','44'='test3');
//遍歷驗(yàn)證
foreach($_verify?as?$key=$value){
//正確進(jìn)入
if(!empty($successData[$value]))
{
$data['content']?=?$successData[$value];
}else{
//如果有錯(cuò)誤會(huì)在這里輸出,當(dāng)然你可以有錯(cuò)誤就直接返回return?false;或者記錄在報(bào)錯(cuò)數(shù)組!?你要什么邏輯代碼自己改嘍~
echo?'第'.$num.'個(gè)數(shù)組下標(biāo)有誤!';
}
$num++;
}
return?$data;
}
}
$validate?=?new?Validate();
$request=$validate-data_verify(array('test'='11','test1'='22','test2'='33','test3'='44'));
var_dump($request);
ThinkPHP的自動(dòng)驗(yàn)證常用的正則
一般我們見的比較多的是設(shè)置規(guī)則為require、email之類的,其實(shí)這些本身也是屬于正則表達(dá)式驗(yàn)證方式,只是系統(tǒng)內(nèi)置定義了一些常用的正則表達(dá)式而已。這些內(nèi)置的正則表達(dá)式的定義可以參考model類的regex方法,內(nèi)置支持的正則定義包括:
require 字段必須、email 郵箱、url URL地址、currency 貨幣、number 數(shù)字、zip 郵編、integer 整數(shù)、double 浮點(diǎn)數(shù)、english 英文字母,但是并不局限于這些正則規(guī)則的,我們完全可以直接在驗(yàn)證規(guī)則里面使用正則表達(dá)式進(jìn)行定義,這樣我們可以憑借強(qiáng)大的正則表達(dá)式來進(jìn)行表單字段驗(yàn) 證,例如:
附上一些表單驗(yàn)證中比較常用的正則表達(dá)式寫法:
匹配特定字符串:
限定符
限定符用來指定正則表達(dá)式的一個(gè)給定組件必須要出現(xiàn)多少次才能滿足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6種。
正則表達(dá)式的限定符有:
ThinkPHP的自動(dòng)驗(yàn)證機(jī)制是為了進(jìn)行表單數(shù)據(jù)驗(yàn)證,驗(yàn)證可以支持function、 callback、confirm、equal、unique和regex,這里要講的是使用正則表達(dá)式進(jìn)行驗(yàn)證。
特殊字符
許多元字符要求在試圖匹配它們時(shí)特別對待。若要匹配這些特殊字符,必須首先使字符"轉(zhuǎn)義",即,將反斜杠字符\ 放在它們前面。下表列出了正則表達(dá)式中的特殊字符:
正則表達(dá)式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等。
例如:
構(gòu)造正則表達(dá)式的方法和創(chuàng)建數(shù)學(xué)表達(dá)式的方法一樣。也就是用多種元字符與運(yùn)算符可以將小的表達(dá)式結(jié)合在一起來創(chuàng)建更大的表達(dá)式。正則表達(dá)式的組件可以是單個(gè)的字符、字符集合、字符范圍、字符間的選擇或者所有這些組件的任意組合。
正則表達(dá)式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為"元字符")組成的文字模式。模式描述在搜索文本時(shí)要匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。
普通字符包括沒有顯式指定為元字符的所有可打印和不可打印字符。這包括所有大寫和小寫字母、所有數(shù)字、所有標(biāo)點(diǎn)符號(hào)和一些其他符號(hào)。
非打印字符也可以是正則表達(dá)式的組成部分。下表列出了表示非打印字符的轉(zhuǎn)義序列:
所謂特殊字符,就是一些有特殊含義的字符,如上面說的 runoo*b 中的 ,簡單的說就是表示任何字符串的意思。如果要查找字符串中的 * 符號(hào),則需要對 * 進(jìn)行轉(zhuǎn)義,即在其前加一個(gè) : runo*ob 匹配 runo ob。
許多元字符要求在試圖匹配它們時(shí)特別對待。若要匹配這些特殊字符,必須首先使字符"轉(zhuǎn)義",即,將反斜杠字符\ 放在它們前面。下表列出了正則表達(dá)式中的特殊字符:
限定符用來指定正則表達(dá)式的一個(gè)給定組件必須要出現(xiàn)多少次才能滿足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6種。
正則表達(dá)式的限定符有:
由于章節(jié)編號(hào)在大的輸入文檔中會(huì)很可能超過九,所以您需要一種方式來處理兩位或三位章節(jié)編號(hào)。限定符給您這種能力。下面的正則表達(dá)式匹配編號(hào)為任何位數(shù)的章節(jié)標(biāo)題:
請注意,限定符出現(xiàn)在范圍表達(dá)式之后。因此,它應(yīng)用于整個(gè)范圍表達(dá)式,在本例中,只指定從 0 到 9 的數(shù)字(包括 0 和 9)。
這里不使用 + 限定符,因?yàn)樵诘诙€(gè)位置或后面的位置不一定需要有一個(gè)數(shù)字。也不使用 ? 字符,因?yàn)槭褂?? 會(huì)將章節(jié)編號(hào)限制到只有兩位數(shù)。您需要至少匹配 Chapter 和空格字符后面的一個(gè)數(shù)字。
如果您知道章節(jié)編號(hào)被限制為只有 99 章,可以使用下面的表達(dá)式來至少指定一位但至多兩位數(shù)字。
上面的表達(dá)式的缺點(diǎn)是,大于 99 的章節(jié)編號(hào)仍只匹配開頭兩位數(shù)字。另一個(gè)缺點(diǎn)是 Chapter 0 也將匹配。只匹配兩位數(shù)字的更好的表達(dá)式如下:
或
* 、+限定符都是貪婪的,因?yàn)樗鼈儠?huì)盡可能多的匹配文字,只有在它們的后面加上一個(gè)?就可以實(shí)現(xiàn)非貪婪或最小匹配。
例如,您可能搜索 HTML 文檔,以查找括在 H1 標(biāo)記內(nèi)的章節(jié)標(biāo)題。該文本在您的文檔中如下:
H1Chapter 1 - 介紹正則表達(dá)式/H1
貪婪: 下面的表達(dá)式匹配從開始小于符號(hào) () 到關(guān)閉 H1 標(biāo)記的大于符號(hào) () 之間的所有內(nèi)容。
非貪婪: 如果您只需要匹配開始和結(jié)束 H1 標(biāo)簽,下面的非貪婪表達(dá)式只匹配 H1。
如果只想匹配開始的 H1 標(biāo)簽,表達(dá)式則是:
通過在 *、+ 或 ? 限定符之后放置 ?,該表達(dá)式從"貪心"表達(dá)式轉(zhuǎn)換為"非貪心"表達(dá)式或者最小匹配。
定位符使您能夠?qū)⒄齽t表達(dá)式固定到行首或行尾。它們還使您能夠創(chuàng)建這樣的正則表達(dá)式,這些正則表達(dá)式出現(xiàn)在一個(gè)單詞內(nèi)、在一個(gè)單詞的開頭或者一個(gè)單詞的結(jié)尾。
正則表達(dá)式的定位符有: