我已经为 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";
}
?>
我的假设是在我开始会话后重定向到的 profile.php 页面上调用了变量。问题是 $_SESSION['firstname'] 和 $_SESSION['lastname'] 不起作用,因为我想它们还没有被声明。任何帮助(甚至只是朝着正确方向轻推)将不胜感激。谢谢!