Ich habe diese Zeilen von Codes in meiner functions.php DateiWill Session-Variable in andere Seite bekommen, aber es wird nicht angezeigt. Was kann ich tun?
public function login(){
$sql = "SELECT `ID`,`userName` FROM `userdata` WHERE `userName`=:userN AND `password`=:passd";
$stmt = $this->pdo->prepare($sql);
$stmt -> bindValue(":userN",$this->userName);
$stmt ->bindValue(":passd",$this->password);
$stmt ->execute();
$userData = $stmt ->fetch();
$check = $stmt ->rowCount();
if($check==1){
session_start();
$_SESSION['login'] = true;
$_SESSION['uid'] = $userData['ID'];
$_SESSION['uName'] = $userData['userName'];
$_SESSION['Name'] = $userData['Name'];
$_SESSION['login_msg'] = "Login Successful";
return true;
}else{
return false;
}
}
public function getSession(){
return @$_SESSION['login'];
}
Und in meiner index.php habe ich den Namen zu bekommen, die von MySQL-Datenbank zu kommen braucht.
session_start();
include_once "functions.php";
$object = new functions();
$userName = $_SESSION['uName'];
$Name = $_SESSION['Name'];
if(!$object->getSession()){
header("Location: login.php");
exit();
}
echo "Welcome". $Name;
Aber dies zeigt nicht index.php Seite. was ist das Problem?
anstatt session_start() innerhalb der Funktion zu deklarieren, versuchen Sie, außerhalb der Funktion zu setzen. – MuthaFury
Haben Sie die DB-Rückgabe überprüft, ist sie erfolgreich? Passwörter sollten gehashed werden. Warum verwenden Sie '@' gibt es eine Fehlermeldung, die Sie ignorieren, die hier nützlich sein könnte? – chris85
DB-Rückgabe ist erfolgreich. Und ich habe @ verwendet, um eine Notiz der undefinierten Variablen $ _SESSION ['login'] zu verbergen; –