即時通訊在PHP和MySQL中是新的。我有一個登錄腳本與PHP和MySQL。在用戶tabell是我的用戶名和密碼在md5。但如果我在輸入字段中輸入正確的用戶名和密碼,則腳本始終顯示「密碼錯誤」。你能糾正我的代碼嗎?登錄腳本 - 儘管輸入正確,用戶名和密碼總是爲false
if(isset($_POST['username']) AND isset($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
if(empty($_POST['username']) OR empty($_POST['password'])) {
echo "Bitte fuelle alle Felder aus!";
} else {
$rows = mysqli_query($db,"SELECT * FROM users WHERE username = '".mysqli_real_escape_string($db, $username)."' AND password = '".mysqli_real_escape_string($db, $password)."' LIMIT 1") or die(mysqli_error($db));
if(mysqli_num_rows($rows) == 1) {
$_SESSION['username'] = $username;
header("Location: home.php");
echo "Erfolgreich eingeloggt";
} else {
echo "Falscher Benutzername";
}
}
}
新問題!
我的登錄方式可行!現在我在我家。但是,只要我在調用字符串$ username時發出回顯,就會出現以下消息:可捕獲的致命錯誤:類stdClass的對象無法轉換爲第19行中的C:\ xampp \ htdocs \ home.php中的字符串
我的腳本:
if(!isset($_SESSION['username'])) { header("Location: index.php"); }
$username = mysqli_fetch_object(mysqli_query($db, "SELECT * FROM users WHERE username = '".$_SESSION['username']."' LIMIT 1")) or die(mysqli_error());
echo 'hi "'.$username.'"';
嘗試在密碼上使用'md5()',然後在'mysqli_real_escape_string'上輸入它,旁註:use ['password_hash()'](http://php.net/manual/en/ref.password .php)而不是 – Ghost 2014-09-05 03:23:18
@Ghost首先不提示'md5()'! – 2014-09-05 03:24:46
@Ghost它不起作用。 – Holyfuture 2014-09-05 03:27:14