php - 我有电子邮件和密码 session 变量,但无法获取其他 session 变量(PHP、MySQL)

标签 php mysql session authentication mysqli

我已经为 mySQL 设置了一个登录页面,它可以正确登录。登录表单有电子邮件和密码,但是当他们登录时。不过,当他们第一次注册时,他们的 mySQL 记录中也会填充他们的名字和姓氏(这些字段是名字、姓氏、电子邮件、密码)。

问题是当我成功登录时,它并没有从记录中抓取其他变量。它只是获取电子邮件和密码,因为这是他们输入的内容。如何获取与我已有的数据(用户名、密码)相对应的 mySQL 中一行的其他变量(名字、姓氏)?我知道这可能有点像 mySQL 101,但我无法准确地用谷歌搜索这个问题。

我附上了一些代码。这是我的 checklogin.php 页面,用于验证所有内容。现在我明白底部的变量不是我获取名字和姓氏的方式,因为它们不是由表单发布的(正如我提到的,表单只有电子邮件和密码):

<?php
$mysqli = mysqli_connect("mysql_name","user_name","password", "db_name");
if (!$mysqli)
  {
  die('Could not connect: ' . mysqli_error($mysqli));
  }

// username and password sent from form
//NEVER Remove the mysql_real_escape_string. Else there could be an Sql-Injection!
$email=$mysqli->real_escape_string($_POST['email']);
$password=$mysqli->real_escape_string($_POST['password']);

$sql="SELECT * FROM tbl_name WHERE email='$email' and password='$password'";
$result = $mysqli->query($sql);

if(is_object($result) && $result->num_rows == 1){
  // Register variables and redirect to file "profile.php"
  session_start();
  $_SESSION['firstname']=$_POST['firstname'];
  $_SESSION['lastname']=$_POST['lastname'];
  $_SESSION['email']=$_POST['email'];
  $_SESSION['password']=$_POST['password'];
  header('location:profile.php');
} else {
  echo "Wrong Username or Password";
}
?>

我的假设是在我开始 session 后重定向到的 profile.php 页面上调用变量。问题是 $_SESSION['firstname'] 和 $_SESSION['lastname'] 不起作用,因为我想他们还没有被宣布。将不胜感激任何帮助(甚至只是朝着正确方向的插入)。谢谢!

最佳答案

$_SESSION['firstname']=$_POST['firstname'];
$_SESSION['lastname']=$_POST['lastname'];

这是错误的..
$_POST 没有这些变量的值。
你必须从数据库中获取它。

关于php - 我有电子邮件和密码 session 变量,但无法获取其他 session 变量(PHP、MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13132711/

相关文章:

php - 添加到 $_SESSION 中的数组

php - PHP`preg_match_all` 函数的 Boost::regexp 模拟是什么?

mysql - 使用where子句搜索一对多数据库

mysql - 成绩计算的推荐数据类型是什么?

node.js - 服务器重新启动时如何在 Node js 中保持持久 session ?

java - AppEngine 和 session

php - AES 加密/解密 Delphi 和 PHP

php - 如何修复此 'Call to a member function row() on boolean' 错误?

php - 如何在 PHPStorm 中下载以前为 "Excluded From Path"的文件夹?

php - 数据在表中后,Laravel Migration 添加字段?