gpt4 book ai didi

php - 使用 $_SESSION 获取所有值

转载 作者:行者123 更新时间:2023-11-29 10:01:18 25 4
gpt4 key购买 nike

我创建了一个系统,用户需要使用他们的名称电子邮件密码进行注册。

当他们点击提交时,所有这些数据都会发送到数据库。

下面的代码是如何保存他们的 session 。

if (isset($_POST['login_user'])) {
$email = mysqli_real_escape_string($db, $_POST['email']);
$password = mysqli_real_escape_string($db, $_POST['password']);

if (empty($email)) {
array_push($errors, "email is required");
echo "Email is required<br>";
}
if (empty($password)) {
array_push($errors, "Password is required");
echo "Password is required";
}

if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM $tbl_name2 WHERE email='$email' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
$_SESSION['email'] = $email;
$_SESSION['success'] = "You are now logged in";
header('location: store/generatetrans.php');
}
else {
array_push($errors, "Wrong username/password combination");
echo "Wrong username/password combination";
}
}
}

他们可以使用电子邮件和密码登录。

<?php 
session_start();

if (!isset($_SESSION['email'])) {
$_SESSION['msg'] = "You must log in first";
header('location: ../login.php');
}
if (isset($_GET['logout'])) {
session_destroy();
unset($_SESSION['email']);
header("location: ../login.php");
}
?>

我使用此代码让系统识别谁登录了。

当他们登录时,系统会使用此代码显示“Welcome user@email.com”。

<?php  if (isset($_SESSION['email'])) : ?>
<p>Welcome <strong><?php echo $_SESSION['email']; ?></strong></p>
<p> <a href="index.php?logout='1'" style="color: red;">logout</a> </p>
<?php endif ?>

我的问题是如何才能获取用户注册时使用的NAME并将其显示在欢迎信息旁边而不是电子邮件旁边。我仍然想使用 $_SESSION['email'] 而不是名称来识别用户。这可能吗?

最佳答案

(帮助您)。

在有人登录的查询中,您可能正在执行某种类型的循环,例如:

while($row = mysqli_fetch_assoc($result)){

$_SESSION['email'] = $row['email'];

}

只需添加:

while($row = mysqli_fetch_assoc($result)){

$_SESSION['email'] = $row['email'];
$_SESSION['name'] = $row['name'];

}

然后您可以在其他页面中使用该 session 数组。

确保每个 session 数组均已设置且不为空,并且 session 已启动。

编辑:

您还可以将 session 数组分配给帖子数组。

即并假设您要在此处使用 $_POST['login_user'] :

$_SESSION['name'] = $_POST['login_user'];
<小时/>

脚注:

正如我在评论中所说:

MD5 is 30+ years old and unsafe now. Use password_hash() / password_verify() along with a prepared statement. Don't practice with unsafe code as it produces bad habits.

所以,请帮自己一个忙,以正确的方式开始。

引用文献:

关于php - 使用 $_SESSION 获取所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52884527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com