PHP Login funktion
Hallo,
ich habe ein Login-Script geschrieben und ich möchte, das wenn der Status in der Datenbank auf 0 steht man zu Change-password.php umgeleitet wird, jedoch stehe ich irgendwie ganz schön auf dem Schlauch.
Ich danke im vorraus für die Hilfe.
Hier das Script:
PHP:
ich habe ein Login-Script geschrieben und ich möchte, das wenn der Status in der Datenbank auf 0 steht man zu Change-password.php umgeleitet wird, jedoch stehe ich irgendwie ganz schön auf dem Schlauch.
Ich danke im vorraus für die Hilfe.
Hier das Script:
PHP:
<?php
session_start();
include('includes/config.php');
if (isset($_POST['login'])) {
$status = '1';
$name = $_POST['username'];
$password = md5($_POST['password']);
$sql = "SELECT name,password FROM users WHERE name=:name and password=:password and status=(:status)";
$query = $dbh->prepare($sql);
$query->bindParam(':name', $name, PDO::PARAM_STR);
$query->bindParam(':password', $password, PDO::PARAM_STR);
$query->bindParam(':status', $status, PDO::PARAM_STR);
$query->execute();
$results = $query->fetchAll(PDO::FETCH_OBJ);
if ($status = "0")
goto a;
else
goto b;
break;
b:
if ($query->rowCount() > 0) {
$_SESSION['alogin'] = $_POST['username'];
echo "<script type='text/javascript'> document.location = 'Home.php'; </script>";
} else {
echo "<script>alert('Invalid Details Or Account Not Confirmed');</script>";
}
break;
a:
echo "<script type='text/javascript'> document.location = 'change-password.php'; </script>";
}
?>
Please also mark the comments that contributed to the solution of the article
Kommentar vom Moderator tomolpi am Nov 04, 2020 um 13:00:51 Uhr
Code formatiert und Beitrag leicht bearbeitet
Content-Key: 618699
Url: https://administrator.de/contentid/618699
Printed on: April 26, 2024 at 03:04 o'clock
5 Comments
Latest comment
Moin,
erstze "goto a" durch
Setzt vorraus, das noch keine Ausgabe seit laden des Scripts erfolgt ist.
/EDIT:
- wobei er da nie hinkommt, da du $status='1' setzt
- ich würde auf ($query->rowCount() > 0) prüfen, bevor ich überhaupt etwas mache... wozu changepwd, wenn die usr/pw kombi gar nicht existiert.
lg,
Slainte
erstze "goto a" durch
header("Location: /url/von/changepassword.php")
Setzt vorraus, das noch keine Ausgabe seit laden des Scripts erfolgt ist.
/EDIT:
- wobei er da nie hinkommt, da du $status='1' setzt
- ich würde auf ($query->rowCount() > 0) prüfen, bevor ich überhaupt etwas mache... wozu changepwd, wenn die usr/pw kombi gar nicht existiert.
lg,
Slainte
Dein query fragt den server nach name="name" und pawd="pwd" und status=1
-> der Status kann schon mal niemals als 0 von dem query zurückgegeben werden (mal abgesehen das das feld "status" nicht selektiert wird)
und dann springst du schon a oder b an, obwohl noch gar nicht geprüft ist, ob der user existiert und/oder das korrekte PW eingegeben hat ( Zeile 24: if ($query->rowCount() > 0) ...)
-> der Status kann schon mal niemals als 0 von dem query zurückgegeben werden (mal abgesehen das das feld "status" nicht selektiert wird)
und dann springst du schon a oder b an, obwohl noch gar nicht geprüft ist, ob der user existiert und/oder das korrekte PW eingegeben hat ( Zeile 24: if ($query->rowCount() > 0) ...)