你輸出 $sql就知道是什么原因了。。
目前成都創(chuàng)新互聯(lián)公司已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管運營、企業(yè)網(wǎng)站設(shè)計、咸陽網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
$sql="select * from message where username= '".$_POST[username]."'";
提示信息是“密碼輸入錯誤”還是“密碼或驗證碼錯誤”
如果是前一個,那么說明info是非空的,你在
else
{
echo "script language='javascript'alert('密碼輸入錯誤!');history.back();/script";
exit;
}
這個else里把info[pwd]和$this-pwd輸出看看各是什么值
//取數(shù)據(jù)庫表
$db = M('user');
$user = $db-where(array('username'=I('username')));
--------- 此句返回的$user是對象類型,不是數(shù)組,要有查詢操作find\select\sum\count等;
你的情況是要取回字段關(guān)聯(lián)數(shù)組,且只取一條,可以用以下兩種之一:
$user=$db-where(array('username'=I('username')))-find();
或
$user=$db-getByUsername(I('username'));
這兩種方法取到的都是關(guān)聯(lián)數(shù)組,如果用select取到是索引數(shù)組。
取到的結(jié)果dump($user)可以打印查看。
最后的p()方法沒用過。
這個就是比較基礎(chǔ)的事情啦
你的代碼中:if(mysql_affected_rows($link)!=0)
意思是某個查詢所影響的行數(shù),如果用戶名和密碼都不對,將返回0行,當(dāng)然就不能通過驗證啦
這樣是一次性驗證了用戶名和密碼.
但是你的sql語句有問題
應(yīng)該這樣 : $sql2="select * from user where name = '$name' and password = '$pass'";
你要獲取查詢的結(jié)果: 一般都用 mysql_fetch_array();
按照你上面例子用法
$result = mysql_query (select * from user where name = '$name')
$row = mysql_fetch_array($result);
如果你的sql語句沒錯話,用戶名又存在
那么 就返回了一個數(shù)組 $row
你用echo $row[0] 或者 $row['name'] 試試就可以獲得內(nèi)容
你獲得了用戶名之后,就可以繼續(xù)查詢秘密是否正確啦..
原來一樣
還不懂的話,來我博客看看 我也在學(xué)習(xí)php 大家交流一下