即时通讯在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