So kann ich das nicht gelöst bekommen. Es sagt, dass Passwort oder E-Mail/Benutzername falsch ist und ich weiß nicht, was ich als nächstes tun soll. Es scheint, dass alles in Ordnung ist.Login-Code funktioniert nicht
Wenn jemand mir helfen könnte, wäre es nett.
Code:
<?php
include 'config.php';
include 'crypt.php';
$username = $_POST['loginName'];
$email = $_POST['loginName'];
$password = crypt($_POST['loginPassword'], $salt);
$stmt = $conn->prepare('SELECT * FROM users WHERE (username = ? or email = ?) AND password = ?');
$stmt->bind_param('sss' , $username, $email, $password);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
$count = mysqli_num_rows($result);
?>
<html>
<head>
<title>Market</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<div id="content">
<?php
if ($count > 0) {
session_start();
$_SESSION['logged'] = true;
$_SESSION['username'] = $row['username'];
header("Refresh: 2.5; URL= index.php");
?>
<h1 align="center">Nice to see you again <?php echo $_SESSION['username'] ?>! </h1>
<?php
}
else {
?>
<h1 align="center"> Password or email/username is wrong! </h1>
<?php
header("Refresh: 2.5; URL= logreg.php");
}
?>
</div>
</body>
</html>
Sie können 'nicht verwenden header() 'nachdem Sie die Ausgabe generiert haben. – Ben
Sie sollten überprüfen, ob die Anfrage gestellt wurde, und stellen Sie sicher, dass "$ password" gleich dem Passwort in der Tabelle ist. Außerdem kann 'crypt()' auf der Plattform unterschiedlich zurückgeben. Ganz zu schweigen von der Möglichkeit, dass Ihre Datenbank die Groß- und Kleinschreibung berücksichtigt. – frz3993
... es sei denn, Ausgabepufferung ist aktiviert, was normalerweise nicht der Fall ist. –