0
私はPHPセッションを使用して、ユーザーが電子メールとパスワードでログインしたときにそれを認識します。それはうまく動作します。 Phpを初めて使うので、私はSessionでProfileNameにアクセスする方法を知る必要があります。 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;
?>
がなぜいけない[参照くださいPHPでmysql_ *関数を使う?](http://stackoverflow.com/q/12859942/1255289) – miken32
セッションを使う前に 'session_start()'を呼び出す必要があります。 – miken32
答えがあなたの問題を解決した場合は、答えを受け入れることを検討してください。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-workがここに戻って、ティック/チェックマークで緑色に変わるまで同じことを行う方法があります。これはコミュニティに通知し、解決策が見つかりました。そうでない場合、他の人は質問がまだ開いていると思うかもしれませんし、(もっと)回答を投稿したいかもしれません。あなたはポイントを獲得し、他の人はあなたを助けることを奨励されます。 *スタックへようこそ!* –