【发布时间】:2018-11-16 17:56:04
【问题描述】:
我需要从 MySQL DB(它肯定存在)中获取一些数据来继续分析它。所以,我的代码中有什么:
if (count($errors) == 0)
$password = md5($password);
$query = "SELECT username, password, email FROM trackowners WHERE username='$username' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
///////////
$_SESSION['username'] = $username;
$_SESSION['success'] = "You are now logged in";
$_SESSION['email'] = $email;
header('location: index.php');
}else {
array_push($errors, "Wrong username/password combination");
} }
然后我尝试使用变量 $_SESSION['username'] 并通过电子邮件发送:
<?php if (isset($_SESSION['username'])) : ?>
<p>Welcome <strong><?php echo $_SESSION['username']; ?></strong> // Here are your profile settings.</p>
<p> <a href="index.php?logout='1'" style="color: red;">logout</a> </p>
<?php endif ?>
<?php if (isset($_SESSION['username'])) : ?>
<p>Your e-mail<strong><?php echo $_SESSION['email']; ?></strong> //</p>
<?php endif ?>
在这里我得到了用户名变量,但我无法从电子邮件变量中得到任何东西。有什么问题?
提前致谢!
【问题讨论】:
-
你真的不应该使用MD5 password hashes,你真的应该使用PHP的built-in functions来处理密码安全。在散列之前,请确保您 don't escape passwords 或对它们使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。
-
您的问题可以通过问自己一个简单的问题来解决:您在代码中的哪个位置为
$email赋值? 任何有关使用的基本教程都提供了答案一个带有 PHP 的数据库。