Ich arbeite an einem PHP-Login basierend auf Mysql-Tabelle. Es funktioniert alles gut in Chrome, aber in Firefox und Edge, wenn ich einen Benutzernamen und ein Passwort eintippe, werde ich nur auf die Login-Seite gebracht. (Mit richtigen oder falschen Anmeldeinformationen)Warum funktioniert mein PHP-Anmeldeskript in Chrome, aber nicht in FireFox oder Edge?
Hier mein PHP-Code ist ..
<?php session_start();
if(isset($_POST['login'])) {
$uname = $_POST['uname'];
$pass = $_POST['pass'];
$sel_user = $con->prepare("SELECT id, username, pass, gid FROM employees WHERE gid!=4 AND username=?");
$sel_user->execute([$uname]);
$check_user = $sel_user->fetch();
if(count($check_user)>0 && password_verify($pass, $check_user['pass'])) {
$_SESSION['username']=$check_user['username'];
header("Location: xadmin.php");
exit;
}
else {
echo "<script>alert('Email or password is not correct')</script>";
}};?>
Hier ist das HTML-Formular ist ..
<form action="login.php" method="post">
<table width="100%" border="0">
<tbody>
<tr>
<td bgcolor="#3B3B3B" height ="35" class="BodyTxtB" align="center">Administrator Login</td></tr>
<tr height="20"><td></td></tr>
<tr>
<td class="BodyTxtB" align="center">Username</td>
</tr>
<tr>
<td class="BodyTxtB" align="center"><input type="text" class="BodyTxtBC" name="uname" required="required"/></td>
</tr>
<tr height="20"><td></td></tr>
<tr>
<td class="BodyTxtB" align="center">Password</td>
</tr>
<tr>
<td class="BodyTxtB" align="center"><input type="password" class="BodyTxtBC" name="pass" required="required"/></td>
</tr>
<tr height="20"><td></td></tr>
<tr height="35"><td align="center"><input type="image" src="images/btn_login.jpg" name="login" value="Login"/></td></tr>
<tr height="20"><td></td></tr>
</tbody>
</table>
</form>
Hier ist die Validierung von xadmin.php
<?php session_start();
if (!isset($_SESSION['username']))
{
header("Location: login.php?e=access_denied");
exit();
}
?>
Weiß jemand, was das Problem verursachen könnte?
UPDATE: Obwohl nicht relevant für die Erstausstellung oder die Antworten, habe ich diesen Beitrag aktualisiert die Ausgabe der von mysql Injektion und Passwort-Verschlüsselung
Stopp Sortier Passwörter im Klartext! –
Ich bin immer noch in Tests und nicht um Klartext-Passwort besorgt. Bitte bleiben Sie bei der Frage – craisondigital
'session_start()' missing ';' dafür. Als Tippfehler geschlossen. –