Ich habe für die normalen Sachen wie Leerraum vor den PHP-Tags überprüft, und eine session_start(), aber kann dies nicht für das Leben von mir arbeiten. Ich mache ein Login-System für einen Kunden, also ist dies lebenswichtig.Warum funktioniert meine Sitzungsvariable nicht?
Im Wesentlichen, sobald ich auf die zweite Seite $ _SESSION ['Benutzername']; ist leer. Ich habe es ausgedruckt und es ist leer, aber atm aktiviert die Kopfzeile umleiten, die Sie im Code sehen können.
Vielen Dank im Voraus für jede Hilfe erhalten :)
Relevante Code:?
<?php
session_start();
include '../resources/methods/Library.php';
if(isset($_SESSION['username']))
{
//User already logged in!
header('Location: Index.php');
}
//Username and password submitted by user
$usernameSubmitted = $_POST['username'];
$passwordSubmitted = $_POST['password'];
if($usernameSubmitted != "" && $passwordSubmitted != "")
{
//User has entered both a username and a password. We shall validate them
//Connect to database and select all the admin accounts
connectToDB();
$query = "SELECT * FROM admins" or die(mysql_error());
$data = mysql_query($query) or die(mysql_error());
$numberOfAdmins = mysql_num_rows($data) or die(mysql_error());
//Check if the username corresponds to any found in the database
$usernameValid = false;
for($i = 0; $i < $numberOfAdmins; $i++)
{
if($usernameSubmitted == mysql_result($data, $i, "Username"))
{
$userToLogInAs = $i;
$usernameValid = true;
}
}
//If username is valid, check password
if($usernameValid != false)
{
//Passwords are held as blowfish encryptions for security. Encypt this so we can compare
$encryptedPasswordSubmitted = crypt($passwordSubmitted, '$2a$07$buzzybees5hivestottenhoe$');
if($encryptedPasswordSubmitted == mysql_result($data, $userToLogInAs, "Password"))
{
//Create a session variable so the user remains logged in
$_SESSION['username'] = $usernameSubmitted;
//User entered the correct username and password, redirect them to the website.
header('Location: Index.php');
}
}
//If we've got this far then the user didn't authenticate successfully.
$message = "<h2>Sorry, Invalid Credentials</h2><p>Check that you're tying your username and password correctly.</p>";
}
>
Und die nächste Seite:
<?php
session_start();
if(!isset($_SESSION['username']))
{
//User not signed in, send them to the log in page
header('Location: Log-In.php');
}
?>
Irgendwelche Ideen?
Danke, Danny
was meinst du, es funktioniert nicht? – Michelle
Können Sie uns sagen, warum es nicht funktioniert? Fehlermeldungen? Was passiert, ist unerwartet? –
Solch ein Amateur Fehler, warum nicht enthalten, warum es gebrochen ist, fügte hinzu, dass in. – DanTonyBrown