-1

此代码已解决,但最后一个代码中存在一些问题

$username=mysql_real_escape_string($_POST['user']);
$password=mysql_real_escape_string($_POST['pass']);

$sqlacc="SELECT * FROM members INNER JOIN accounts ON 
account.mem_id =members.mem_id WHERE members.firstname='$username' and accounts.password='$password'";
$resultacc = mysql_query($sqlacc);
$countacc = mysql_num_rows($resultacc);
$rowacc = mysql_fetch_array($resultacc, MYSQL_NUM);

这是我的问题,我不知道 $_SESSION[' '] 中会放入什么字段名,

if($countacc==1){
$_SESSION[' IDONTKNOWHERE ']=$rowacc[0];
$_SESSION[' IDONTKNOWHERE ']=$rowacc[1];
header("location:content/index.php");
}
else{
header("location:login.php");
}
?>
4

4 回答 4

1

使用数字键从记录集中获取数据有点令人困惑,因此我建议您改用关联键。首先,使用以下代码打印您的整个记录​​集:

echo 'details = <br><pre>';
print_r($rowacc);

这将以格式良好的方式输出您的记录集,以便您可以准确了解 SQL 查询已获取哪些数据。您还可以看到数字键和关联键。因此,为了获取数据,您可以使用以下内容:

$_SESSION['username'] = $rowacc['firstname'];
$_SESSION['password'] = $rowacc['password'];

稍后您可以访问这些存储的会话值:

$username = $_SESSION['username'];
$password = $_SESSION['password'];
于 2013-10-01T05:59:01.050 回答
0

您可以将任何变量名称作为会话变量。与变量的命名约定相同。会话变量被命名以供以后访问,因此是有意义的、可识别的并与其值相关。

于 2013-10-01T05:35:39.893 回答
0

它们是关键指标。使用任何值,以便以后可以访问它们。例如,如果您将用户名存储在会话中,那么它将是 $_SESSION['username']。我建议你使用 print_r($rowacc); 这样您就知道记录集中存储了哪些值。

于 2013-10-01T05:36:15.920 回答
0

我想,应该是:

$_SESSION['mem_id']=$rowacc[0];
$_SESSION['mem_firstname']=$rowacc[1];

如果您可以共享正在检查登录的脚本,我们可以提供更好的解决方案。

于 2013-10-01T05:37:48.923 回答