【问题标题】:Storing multiple variables in a single $_SESSION(PHP)在单个 $_SESSION(PHP) 中存储多个变量
【发布时间】:2012-05-25 04:11:06
【问题描述】:

我将如何进行这项工作,我之前问过但没有得到正确的答案。这段代码是用户登录,所以当他们登录时,我希望用户名和头像可以通过网站进行跟踪。到目前为止,我只有用户名。我尝试过方法,但每次都失败了。

$username = $_POST['username'];
$password = sha1($_POST['password']);
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($conn, $sql) or die('Error querying database.');
$count=mysqli_num_rows($result);

if ($count == 1) 
{
   $row = mysqli_fetch_array($result);
   while ($_SESSION['username'] = $row['username'])
   {
      session_start();
      header('Location: index.php'); 
   }
}
else
{
   echo 'Invalid Logins';
}

mysqli_close($conn);
?>

【问题讨论】:

  • while ($_SESSION['username'] = $row['username']) { session_start(); header('Location: index.php'); --- 你从哪里得到这个糟糕的代码? o_O
  • 停止在查询中插入动态输入,改用绑定变量。
  • 这段代码来自我的导师。
  • @Garrett Robertson:你急需再找一个。那家伙不明白他在做什么
  • 嗯,这个简单的修复有点让我看到了冗余代码......不需要的代码。谢谢大家。

标签: php session login


【解决方案1】:

假设您将头像存储在数据库的avatar 字段中:

if ($count == 1) 
{
    session_start();

    $row = mysqli_fetch_array($result);
    $_SESSION['username'] = $row['username'];
    $_SESSION['avatar'] = $row['avatar'];

    header('Location: index.php'); 
}
else
{
    echo 'Invalid Logins';
}

【讨论】:

  • 谢谢兄弟,真的就这么简单。人们一直告诉我所有这些似乎已经结束的复杂事情。再次感谢!
猜你喜欢
  • 2012-02-16
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 2016-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多