So fügen Sie der PHP-Anmeldefunktion eine Benutzerzugriffsebene hinzu
<p>Ich habe ein PHP-Anmelde-/Registrierungsskript entwickelt, das, wenn sich ein Benutzer anmeldet, eine Sitzung startet, ein Cookie erstellt und den Benutzer dann zu Dashboard.php umleitet, indem es Folgendes verwendet: </p>
<pre class="brush:php;toolbar:false;">//Daten in Variablen abrufen
$emailAddress = mysqli_real_escape_string($conn,$_POST['emailAddress']);
$password = mysqli_real_escape_string($conn,$_POST['password']);
$remember = isset($_POST['rememberMe']);
if(!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) {
$error = 'Bitte geben Sie eine gültige E-Mail-Adresse ein.';
}
elseif(email_exists($emailAddress,$conn)) { // wenn E-Mail-Adresse vorhanden ist
$result = mysqli_query($conn,"SELECT Passwort FROM Benutzer WHERE email = '$emailAddress'");
$retrievePassword = mysqli_fetch_assoc($result);
if(!password_verify($password,$retrievePassword['password'])) // wenn das Passwort nicht übereinstimmt
{
$error = 'Passwort ist falsch.';
} else { // wenn Passwort korrekt, Benutzer anmelden
$_SESSION['email'] = $emailAddress;
if($remember == 'on') { // wenn "Benutzer angemeldet lassen" aktiviert wurde
setcookie("email",$emailAddress,time()+7200); // Benutzer 2 Stunden lang angemeldet halten
}
header("location: Dashboard.php");
}
} else { // wenn E-Mail nicht existiert
$error = 'E-Mail-Adresse nicht registriert.';
}</pre>
<p>Oben auf allen meinen eingeschränkten Seiten (z. B. Dashboard.php) befindet sich: </p>
<pre class="brush:php;toolbar:false;">if(logged_in()) { // Wenn Benutzer angemeldet ist, Seite anzeigen</pre>
Die Funktion <p>logged_in() lautet: </p>
<pre class="brush:php;toolbar:false;">functionLOGged_in(){
if(isset($_SESSION['email']) || isset($_COOKIE['email'])) {
return true;
} anders {
falsch zurückgeben;
}
}</pre>
<p>In der Datenbank habe ich eine Spalte mit dem Titel <code>usrUserTypeNo</code>, die „1“ für Administratoren und „3“ für normale Benutzer enthält.
Wie binde ich diesen Benutzertyp in die Sitzung ein, damit ich anhand seiner Rolle bestimmen kann, welche Inhalte dem Benutzer angezeigt werden? </p>