Я добавил эти строки кодов в моем файле functions.phpХотите получить переменную сеанса на другой странице, но ее не показывать. Что я могу сделать?
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'];
}
И в моем файле index.php я хочу, чтобы получить имя, которое должно поступать из базы данных MySQL.
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;
Но это не показывает страницу index.php. в чем проблема?
вместо объявления функции session_start() внутри функции, попробуйте поставить вне функции. – MuthaFury
Вы проверили возврат БД, успешно ли он? Пароли должны быть хэшированы. Почему вы используете '@', есть ли сообщение об ошибке, которое вы игнорируете, что может быть полезно здесь? – chris85
DB возврат успешно. И я использовал @, чтобы скрыть уведомление о неопределенной переменной $ _SESSION ['login']; –