1

我在以下部分代码被阻止...

我有config.php页面,里面有以下代码:

<?php
// Start the session (pretty important!)
session_start();

// Establish a link to the database
$dbLink = mysql_connect('localhost', 'USER', 'PASS');
if (!$dbLink) die('Can\'t establish a connection to the database: ' . mysql_error());

$dbSelected = mysql_select_db('DATABASE', $dbLink);
if (!$dbSelected) die ('We\'re connected, but can\'t use the table: ' . mysql_error());

$isUserLoggedIn = false;  
$query      = 'SELECT * FROM users WHERE session_id = "' . session_id() . '" LIMIT 1';  
$userResult     = mysql_query($query);  
if(mysql_num_rows($userResult) == 1){  
$_SESSION['user'] = mysql_fetch_assoc($userResult);  
$isUserLoggedIn = true;  
}else{  
if(basename($_SERVER['PHP_SELF']) != 'index.php'){  
    header('Location: index.php');  
    exit;  
}  
}  
?>

现在我有另一个页面,里面有以下代码:

<?php include_once('config.php'); ?>

<?php foreach($_SESSION['user'] as $key => $value){ ?>
<li><?php echo $key; ?> <strong><?php echo $value; ?></strong></li>
<?php } ?>

该代码向我一一显示存储在数据库中的所有信息..

我想在我的页面中单独显示信息,例如:

<?php echo $email; ?>

等等..

有人可以解释我该怎么做吗?

谢谢

4

3 回答 3

2

你应该像这样输出它

<?php echo $_SESSION['user']['email'] ?>

假设“电子邮件”是用户表中的列名。

于 2013-08-29T08:29:02.213 回答
2

只需解决关联数组中的相关字段:

  <?php echo $value['email';?>
于 2013-08-29T08:31:01.347 回答
1

在配置文件中使用它:

$_SESSION['user']['email'] = mysql_fetch_assoc($userResult); 

而不是这个

$_SESSION['user'] = mysql_fetch_assoc($userResult); 

在你的代码中。您可以传递要从表中传递的任意数量的列。

并在另一个页面使用

foreach($_SESSION['user']['email'] as $key => $value) 

代替

foreach($_SESSION['user'] as $key => $value) 

在你的代码中。

记住您在配置文件中传递的列数,所有这些列都应在此页面中调用。

于 2013-08-29T08:48:09.457 回答