Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » PHP & MySQL » Trotz erfolgreichem Login, keine Berechtigung    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
Notfallmeister
Mitglied
Neuling


Dabei seit: 13.05.2019
Herkunft: keine Angabe
Posts: 2
     Trotz erfolgreichem Login, keine Berechtigung Zitat | Bearbeiten

Hallo zusammen,

habe ein Problem mit dem Loginscript. Habe hier schon alles durchgeforstet, aber bin zu keinem Ergebnis gekommen.
Die Registrierung klappt einwandfrei. Die Daten sind korrekt in der SQL-Datenbank eingetragen.
Nach dem Login kommt die Meldung, dass der Login geklappt hat.
So bald man aber auf den Link geht, der zum "internen Bereich" führt, kommt dort nach wie vor nur die Meldung: "Bitte loggen Sie sich ein". Nach der Weiterleitung zum Loginscript muss man sich dort erneut einloggen.
Die "geheim.php" ist im internen Bereich im HTML-Script gespeichert.
Hoster ist 1&1
PHP-Version 7.2

Hier die geheim.php


<?php
session_start();
$pdo = new PDO('mysql:host=hostname.database', 'user', 'passwort');


function random_string() {
if(function_exists('random_bytes')) {
$bytes = random_bytes(16);
$str = bin2hex($bytes);
} else if(function_exists('openssl_random_pseudo_bytes')) {
$bytes = openssl_random_pseudo_bytes(16);
$str = bin2hex($bytes);
} else if(function_exists('mcrypt_create_iv')) {
$bytes = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);
$str = bin2hex($bytes);
} else {
//Bitte euer_geheim_string durch einen zufälligen String mit >12 Zeichen austauschen
$str = md5(uniqid('meingeheimerstring', true));
}
return $str;
}

//Überprüfe auf den 'Angemeldet bleiben'-Cookie
if(!isset($_SESSION['userid']) && isset($_COOKIE['identifier']) && isset($_COOKIE['securitytoken'])) {
$identifier = $_COOKIE['identifier'];
$securitytoken = $_COOKIE['securitytoken'];

$statement = $pdo->prepare("SELECT * FROM `securitytokens` WHERE identifier = ?");
$result = $statement->execute(array($identifier));
$securitytoken_row = $statement->fetch();

if(sha1($securitytoken) !== $securitytoken_row['securitytoken']) {
die('Ein vermutlich gestohlener Security Token wurde identifiziert');
} else { //Token war korrekt
//Setze neuen Token
$neuer_securitytoken = random_string();
$insert = $pdo->prepare("UPDATE `securitytokens` SET securitytoken = :securitytoken WHERE identifier = :identifier");
$insert->execute(array('securitytoken' => sha1($neuer_securitytoken), 'identifier' => $identifier));
setcookie("identifier",$identifier,time()+(3600*24*365)); //1 Jahr Gültigkeit
setcookie("securitytoken",$neuer_securitytoken,time()+(3600*24*365)); //1 Jahr Gültigkeit

//Logge den Benutzer ein
$_SESSION['userid'] = $securitytoken_row['user_id'];
}
}

if(!isset($_SESSION['userid'])) {
die('Bitte zuerst <a href="internlogin.php">Einloggen</a>');
}

$userid = $_SESSION['userid'];

echo "Hallo User: ".$userid;
?>

Hier die login.php


<?php
session_start();
$pdo = new PDO('mysql:host=hostingname;dbname=database', 'user', 'passwort');

if(isset($_GET['login'])) {
$email = $_POST['email'];
$passwort = $_POST['passwort'];

$statement = $pdo->prepare("SELECT * FROM `Users Intern` 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'];
die('Login erfolgreich. Weiter zum <a href="intern.php">internen Bereich</a>');
} else {
$errorMessage = "E-Mail oder Passwort war ungültig<br>";
}

}
?>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>

<?php
if(isset($errorMessage)) {
echo $errorMessage;
}
?>

<form action="?login=1" method="post">
E-Mail:<br>
<input type="email" size="40" maxlength="250" name="email"><br><br>

Passwort:<br>
<input type="password" size="40" maxlength="250" name="passwort"><br><br>

<input type="submit" value="Einloggen">
</form>
</body>
</html>[u]

Vielen Dank für Eure Mithilfe

Dateianhang:
 geheimforum.txt  (2 KB, 17 mal herruntergeladen)
 loginforum.txt  (1 KB, 12 mal herruntergeladen)



Post wurde schon 2x editiert, das letzte mal am 13.05.2019 um 21:37 von Notfallmeister
13.05.2019, 21:35 Profil | PM | E-Mail  
Notfallmeister
Mitglied
Neuling


Dabei seit: 13.05.2019
Herkunft: keine Angabe
Posts: 2
      Zitat | Bearbeiten

Problem gelöst.


16.05.2019, 22:12 Profil | PM | E-Mail  
Seiten (1):  1 
PHP-Support.de » Programmierung » PHP & MySQL » Trotz erfolgreichem Login, keine Berechtigung   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz