Ich versuche, die Benutzer-ID eines angemeldeten Benutzers abzurufen und in der Sitzung zu speichern, sodass, wenn ein Benutzer etwas einreicht, ich seine Benutzer-ID zur Übermittlung an die hinzufügen kann Datenbank. Ich habe eine sehr grobe Login-Seite, bitte sei nett, denn ich bin sehr neu für alles! Ich habe viele verschiedene Kombinationen ausprobiert, aber nach den Antworten, die ich online gesehen habe, sollte das, was ich gerade habe, ziemlich nah sein. Wenn mir irgendjemand irgendwelche Hinweise geben kann, wäre das eine große Hilfe. Vielen Dank!Benutzer-ID kann nicht in Sitzung gespeichert werden
Die Login-Seite
<?php
session_start();
//Connection and select database go in here
// username and password sent from form
$myusername=$_POST['Email'];
$mypassword=$_POST['User_Password'];
// To protect MySQL injection
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT User_ID, Email, User_Password FROM $tbl_name WHERE Email='$myusername' and User_Password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row counts table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// is_auth to make sure they can view other pages that need credentials.
$_SESSION['is_auth'] = true;
$_SESSION['User_ID'] = $result->User_ID;
// Once the sessions variables have been set, redirect them to the landing page/home page.
header('location: ../View/main.php');
exit;
}
else {
$error = "Please enter an email and password to login.";
}
header("location:../View/mainUnauthenticated.php");
Die Seite, die, wenn der Benutzer überprüft authentifiziert wird. Ich nenne dies zu Beginn jeder entsprechenden Seite
<?php
session_start();
echo $_SESSION['User_ID'];
// Test the session to see if is_auth flag was set (meaning they logged in successfully)
// If test fails, send the user to homepage and prevent rest of page being shown.
if (!isset($_SESSION["is_auth"])) {
header("location: ../View/mainUnauthenticated.php");
exit;
}
else if (isset($_REQUEST['logout']) && $_REQUEST['logout'] == "true") {
// At any time we can logout by sending a "logout" value which will unset the "is_auth" flag.
// We can also destroy the session if so desired.
unset($_SESSION['is_auth']);
session_destroy();
// After logout, send them back to homepage
header("location: ../View/mainUnauthenticated.php");
exit;
}
?>
Dies ist ein Ausschnitt aus einer der Seiten ist, wo Ich mag würde die Lage sein, den Benutzer-ID zu greifen, die ich (dachte, ich hätte!) Gespeichert. Im Moment versuche ich nur, dass es im Textfeld angezeigt wird, um zu zeigen, dass es funktioniert.
<?php include('../Controller/is_auth.php')
?>
<p>
<input type="text" name="User_ID" id="User_ID" value="<?php echo $_SESSION['User_ID'];?>"/>
</p>
Verwenden Sie nicht 'mysql' verwenden Sie' mysqli' oder 'PDO' statt, Sie sind auch weit offen für' mysql injection'. – Nytrix
Ich denke, ich habe es jetzt zur Arbeit. Das Problem war die Position meines Sitzungsbeginns, ich hatte es oben auf meiner Anmeldeseite platziert, aber nach der SQL-Abfrage verschoben und es funktioniert! Danke für die Hilfe und Kommentare Nytrix und Filip Macek. –