if(isset($_POST['uname']))
{
$query = "SELECT * FROM user_info";
$res = $mysqli->query($query);
$num = $res->num_rows;
$i = 0;
$cpwd = $_POST["pswd"];
$hpwd = SHA1($cpwd);
$tmp = $_POST["uname"];
while($i < $num)
{
$row = $res->fetch_object();
$name = $row->Username;
$pwd = $row->Password;
if($name == $tmp)
{
//check if user is blocked
}
//hashed pwd
if($pwd == $hpwd)
{
//success
exit();
}
//request for pwd change
else if($pwd == $cpwd)
{
//change
exit();
}
else if($pwd != $hpwd)
{
//incorrect pwd
}
}
$i++;
}
if($i == $num)
{
//new user
}
}
0
A
回答
1
我想你是以某種方式循環播放數組的末尾,$row
實際上是NULL
。
1
因此$res->fetch_object()
沒有返回對象。看看這個功能的文檔。它什麼都沒有找到時會返回什麼?
1
某些時候num_rows返回1,即使沒有影響行。嘗試使用
while($row = $res->fetch_object())
或 你忘了增加$我:)
1
擺脫垃圾,使它像這樣
$query = "SELECT * FROM user_info WHERE Username = ? AND Password = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('ss', $_POST["uname"], SHA1($_POST["pswd"]));
$stmt->execute() or trigger_error($mysqli->error());
if (!$mysqli->affected_rows) {
//no such user
}
我從來沒有用過的mysqli自己,所以,可能會有錯別字。
但我希望你能明白這個主意。
相關問題
- 1. 原因:試圖在php中獲取非對象的屬性
- 2. 試圖獲取非對象的屬性?
- 3. 試圖獲取非對象的屬性
- 4. 試圖獲取非對象的屬性
- 5. 試圖獲取非對象的屬性
- 6. 試圖獲取非對象的屬性
- 7. 試圖在PHP中獲取非對象的屬性(mysql)
- 8. 試圖在OOP中獲取非對象的屬性php
- 9. VisualPHPUnit - 試圖在獲取對象的屬性時獲取非對象的屬性
- 10. 試圖獲取非對象屬性(Codeigniter)
- 11. PHP試圖獲取「C:\ ....」中的非對象的屬性
- 12. PHP的錯誤:試圖獲取非對象的屬性
- 13. 獲取API的PHP嘗試獲取非對象的屬性
- 14. 嘗試在PHP PDO中獲取非對象的屬性
- 15. 嘗試在php類中獲取非對象的屬性
- 16. PHP嘗試獲取有效對象的非對象屬性
- 17. PHP,PDO,MySQL,注意:試圖獲取非對象的屬性
- 18. PHP注意:試圖獲取非對象的屬性
- 19. (錯誤)試圖獲取非對象(Facebook PHP SDK)的屬性
- 20. 試圖獲取非對象的屬性? PHP/Codeigniter
- 21. PHP-XML:試圖獲取非對象的屬性
- 22. PHP注意:試圖獲取非對象的屬性
- 23. PHP錯誤:「試圖獲取非對象的屬性」
- 24. php搜索試圖獲取非對象的屬性
- 25. 試圖獲取非對象/ Php codeigniter的屬性
- 26. 試圖用PHP獲取非對象的屬性
- 27. PHP和Smarty錯誤:試圖獲取非對象的屬性
- 28. PHP數組 - 試圖獲取非對象的屬性
- 29. PHP Xpath試圖獲取非對象的屬性
- 30. PHP錯誤 - 「試圖獲取非對象的屬性」
你在某處增加'$ i`嗎? – 2011-01-22 12:02:26
我不知道是否有人會注意到該代碼中的** real **錯誤 – 2011-01-22 12:06:52