【发布时间】:2015-09-29 19:11:29
【问题描述】:
我在访问会话变量值时遇到问题。
我正在创建一个登录页面,这是我设置会话变量的值。
index.php
<?php
session_start();
$result=mysql_query("select * from myuser where id='".$id ."' and password='".$password."'");
if(mysql_num_rows($result) > 0){
$user = mysql_fetch_assoc($result);
$_SESSION['SESS_ID'] = $user['id'];
$_SESSION['SESS_UNAME'] = $user['username'];
$_SESSION['SESS_PASS'] = $user['password'];
header("location:home.php");
exit();
}
?>
home.php
<?php
session_start();
if(!isset($_SESSION['SESS_ID']) || (trim($_SESSION['SESS_ID'])) == ''){
header("location:index.php");
exit();
}
?>
<html>
<body>
<p>Login Successful</p>
<?php echo $_SESSION['SESS_ID'] ; ?>
</body>
</html>
这里的问题是我在 $_SESSION['SESS_ID'] 中没有值..那么我如何在 home.php 中获取或访问此会话变量的值?
编辑:我对 SQL 的查询是
select * from myuser where id='".$id ."' and password='".$password."'
【问题讨论】:
-
$_SESSION['SESS_ID']没有被设置的原因很明显 -mysql_num_rows($result) > 0并不像你预期的那样正确,它的块永远不会被执行 -
那我该怎么办大卫??
-
首先显示您的查询,而不是
<!--query written here --> -
以及您是否使用相同的 API 进行连接。你还需要一个
while循环。 -
将错误报告添加到您的打开 PHP 标记之后的文件顶部,例如
<?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,以查看它是否产生任何结果。还要将or die(mysql_error())添加到mysql_query()。