在mySQL的多个PHP页面上使用变量

时间:2013-11-04 17:20:38

标签: php mysql

我已经创建了一个成员登录页面,现在我正在制作一个受限制的'会员唯一部分'。我对mySQL相当新,我也在努力教自己。我的问题与授权刚登录的人有关,允许他们去那个受限制的部分。反之亦然,如果他们没有登录,他们应该无法访问它或发现错误。以下是我的登录页面中的代码以及限制部分的代码......

echo "Welcome."; //Successful 
echo "<br>";
echo "<a href='thankspage.html'> Click here </a> to continue to the Member Page."; // creates a link to go to.
$sql = " INSERT INTO Login (loginName,loginTime) 
VALUES ('$username', NOW() ) "; // creates the login time.
$result = $mysqli->query($sql) or die ($mysqli->error); // shoots an error if i did something wrong.
$_SESSION[‘logname’] = $userlogin;
$_SESSION[‘auth’]=”yes”;

以下是信息部分的代码:

if ($_SESSION[‘auth’] != “yes”)
{
    header("Location: membership.php");
    exit();
}

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE)
or die("Failed to connect");
$sql = "SELECT firstName,lastName FROM Member 
WHERE loginName=’{$_SESSION['logname']}’ ";
$result = $mysqli->query($sql) or die($mysqli->error);

我的主要问题是,无论我是否登录,我都可以访问此页面...变量$_SESSION['auth']不是全局变量吗?

1 个答案:

答案 0 :(得分:1)

你使用的是智能引号,结果会出乎意料,而不是'是':

以下示例:

session_start(); 
$_SESSION[‘auth’]=”yes”;    
echo "var=".$_SESSION[‘auth’]; 

打印var=â€yesâ€

将单引号和双引号替换为转储引号

$_SESSION['logname'] = $userlogin;
$_SESSION['auth']="yes";

以及检查时:

if ($_SESSION['auth'] != "yes")