php - 使用 session 电子邮件在 php 中获取用户名字

标签 php mysql

我创建了一个 session ,其中用户使用电子邮件和密码登录,并且该 session 正在捕获他/她的电子邮件,我想使用该电子邮件获取她的其他数据,例如名字和姓氏,我尝试获取它,但由于我是新手,我最终收到错误,这是我的登录代码:

// LOGIN A USER INTO HIS/HER ACCOUNT
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");
}
if (empty($password)) {
  array_push($errors, "Password is required");
}

if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM users 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: index.php');
 }else {
  array_push($errors, "Wrong Email or Password combination");
 }
 }
}

我认为它类似于下面的代码:(实际上不起作用)

if($result) {
    if(mysqli_num_rows($result) == 1) {
        //Login Successful
        session_regenerate_id();
        $user = mysqli_fetch_assoc($result);
        $_SESSION['id'] = $user['user_id'];
        $_SESSION['email'] = $user['email'];
        $_SESSION['first_name'] = $user['first_name'];
        $_SESSION['last_name'] = $user['last_name'];
        session_write_close();
        header("location: user_index.php");
        exit();

        else {
            $sql = "SELECT first_name FROM users WHERE email = '" . 
$_SESSION['email'] . "'";
$result = mysqli_query($sql);
$user = mysqli_fetch_array($result);
echo "Hello, " . $user['first_name']";

        }

最佳答案

我发现这种方法很有效,谢谢所有试图提供帮助的人

<?php
include'db.php';

if(isset($_SESSION['email'])){

           $query = "SELECT first_name FROM users WHERE email= '".$_SESSION['email']."'";     

           $result = mysqli_query($db, $query) or 

           die(mysql_error($db)); 

           if (!$result) die('Query failed: ' . mysqli_error($db)); 

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

           echo $row['first_name'];

        }

    }
?>

关于php - 使用 session 电子邮件在 php 中获取用户名字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51232708/

相关文章:

IN 子句的 MySQL 变量

php - 从 mySQL 获取到 HTML TABLE

php - mysqli multi_query 后跟查询

python - 通过 Python 使用 BULK INSERT

mysql - 优化计数和选择查询

php - PDO 连接到数据库问题

php - jquery 文件上传插件 : Can I set upload path at runtime?

php - 使用自定义值预归档结帐邮政编码

php - imagecreatefromstring() : gd-jpeg, libjpeg:可恢复错误:JPEG 文件过早结束

mysql - 在使用 MySql 维护组的同时进行排序