Я использую сеансы Php для распознавания пользователей при входе в систему с помощью электронной почты и пароля. Он работает нормально. Будучи новичком в Php, мне нужно знать, как получить доступ к их ProfileName с помощью Session. Код, который я использую в header.php, возвращает пустое, без имени.Как получить доступ к переменным в сеансе PHP
header.php
<?php
$info = myprofile($_SESSION['memberid']);
$title = $myprofile.' - '.stripslashes($info['ProfileName']);
echo $_SESSION[$title];?>
profile.php
<?php
require_once "../includes/config.php";
if(!$_SESSION['memberid'] || $_SESSION['memberid']==0){
header('Location: '.$base_url.'signin.php');
exit();
}
require_once "../includes/database.php";
require_once "../includes/functions.php";
$info = myprofile($_SESSION['memberid']);
$title = $myprofile.' - '.stripslashes($info['ProfileName']);
require_once '../includes/header.php';
$ismenu = 2;
?>
signin.php
<?php
require_once "includes/config.php";
require_once "includes/database.php";
require_once "includes/functions.php";
if($_SERVER['REQUEST_METHOD']=='POST' && isset($_POST['smsignin'])){
$err = 0;
if(empty($_POST['email'])){
$err_e = $emailnull;
$err = 1;
}
elseif(!valid_email(trim($_POST['email']))){
$err_e = $emailinvalid;
$err = 1;
}
elseif(empty($_POST['password'])){
$err_p = $passnull;
$err = 1;
}
elseif($_SESSION['loginfalse']>=$totallogin){
if(empty($_POST['captcha'])){
$err_c = $captchanull;
$err = 1;
}
elseif(strlen($_POST['captcha'])<6){
$err_c = $datashort;
$err = 1;
}
elseif($_POST['captcha'] != $_SESSION['encoded_captcha']){
$err_c = $captnomatch;
$err = 1;
}
}
if(intval($err)==0){
$data = array(mysql_real_escape_string(trim($_POST['email'])), mysql_real_escape_string(trim($_POST['password'])));
$result = UserLogin($data);
if($result==0)
$error = $errordata;
elseif($result==-1){
$_SESSION['loginfalse'] = isset($_SESSION['loginfalse'])?$_SESSION['loginfalse']+1:1;
$error = $mailpassnotmatch;
}
else{
$banned = chkBannedMe($result);
if(count($banned)>0)
$error = str_replace('<lydo>', $banned[0], str_replace('<ngay>', date('H:i:s d-m-Y', strtotime($banned[1])), str_replace('<link>', '<a href="'.$base_url.'contact.php">', str_replace('</link>', '</a>', $bannedacc))));
else{
$date = date("Y-m-d H:i:s");
updLogon($result);
UpdateVIPStatus($result, $date);
IsVIP($result);
mysql_close();
unset($_SESSION['loginfalse']);
$_SESSION['memberid'] = $result;
$_SESSION['memberemail'] = $_POST['email'];
$direct = $_SESSION['direct']?$_SESSION['direct']:$base_url.'members/myaccount.php';
header('Location: '.$direct);
exit();
}
}
}
}
$title = $memberlogin;
?>
Смотрите также [Почему я не должен использовать функции mysql_ * в PHP?] (http://stackoverflow.com/q/12859942/1255289) – miken32
Перед использованием сеансов вам нужно вызвать 'session_start()'. – miken32
Если ответ решил вашу проблему, подумайте о принятии ответа. Вот как http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work, затем вернитесь сюда и сделайте то же самое с отметкой галочки/галочки, пока он не станет зеленым. Это сообщает об этом сообществу, решение найдено. В противном случае другие могут подумать, что вопрос все еще открыт и может захотеть опубликовать (более) ответы. Вы будете зарабатывать очки, а другие будут рады помочь вам. * Добро пожаловать в Stack! * –