Hilfe!PhP!

HilftMirPhP

Grünschnabel
Hallo,

Ich will, dass man nach einloggen, die Daten zu den zugehörige ID angezeigt werden!
z.B ich melde mich an, komme auf die Startseite und sehe dort mein Email usw.
Login Code :
PHP:
<?php
session_start();
$pdo = new PDO('zernsiert');

if(isset($_GET['login'])) {
    $email = $_POST['email'];
    $passwort = $_POST['passwort'];
  
    $statement = $pdo->prepare("SELECT * FROM users WHERE email = :email");
    $result = $statement->execute(array('email' => $email));
    $user = $statement->fetch();
      
    //Überprüfung des Passworts
    if ($user !== false && password_verify($passwort, $user['passwort'])) {
        $_SESSION['userid'] = $user['id'];
        header('Location: AccountInformation.php');
    } else {
        $errorMessage = "E-Mail oder Passwort war ungültig<br>";
    }
  
}
?>
<!doctype html>
<html>
<link href="Design.css" rel="stylesheet" type="text/css">
<link href="Menu.css" rel="stylesheet" type="text/css">
<link href="links.css" rel="stylesheet" type="text/css">
<head>
<meta charset="utf-8">
<title>ABD</title>
</head>
<body>
<div id="NavBar">
    <ul>
    <li>
      <h1>ABD - Alternative Bank deinCraft</h1>
    </li>
    </ul>
</div>
<div id="links">
    <ul>
       <li>Startseite</li>
       <li>Anmelden</li>
       <li>Registrieren</li>
       <li>Forum</li>
       <li>Impressum</li>
       <li>Regeln</li>
    </ul>
</div>
<div id="Content">
      <p id="Titel">Anmelden</p>
      
<form action="?login=1" method="post">
<input type="email" name="email" placeholder="Email" required="required">   
<input type="password" id="passwort" name="passwort" placeholder="Passwort" required="required">
<input type="submit" value="Anmelden">
<?php
if(isset($errorMessage)) {
    echo $errorMessage;
}
?>
        </form>
    </section>
</div>
</html>

Und von der ''Startseite'' :

Code von ''Startseite''
PHP:
<?php
session_start();
if(!isset($_SESSION['userid'])) {
    die('Bitte zuerst <a href="login.php">einloggen</a>');
}
//Abfrage der Nutzer ID vom Login
$userid = $_SESSION['userid'];
echo "Hallo User: ".$userid;
?>

Bitte um Hilfe! + Schreibt bitte mit PDO, da ich Php Version 5.6 habe!:)
 
Zuletzt bearbeitet:
Hallo HilftMirPhP,

die Funktion password_verify prüft nur ob ein Passwort und ein beliebiger hash-Wert zusammenpassen.
Ich gehe davon aus, dass Du nur prüfen möchtest, ob die Werte identisch sind.

Entsprechend reicht dort schon ein
Code:
if ($user !== false && $passwort === $user['passwort']) {

Darüber hinaus solltest Du in Deiner SQL-Abfrage nicht alle Spalten Deiner Tabelle selektieren. Da Du nur die E-Mail, Passwort und User-ID benötigst, reicht folgendes:
Code:
$statement = $pdo->prepare("SELECT email,id,passwort FROM users WHERE email = :email LIMIT 1");

Liebe Grüße
Splater
 
Zurück