PHP会话返回用户电子邮件地址,但没有名字?

问题描述 投票:0回答:1

所以我正在为一个学校项目开发一个网络应用程序(请不要发表评论说代码结构很差,或者我知道这是任何东西)

我已经完成注册和登录,并且当我想显示用户信息时,我可以显示他们的电子邮件地址,但不能显示他们的名字。

请参见下面的代码;

Register.php

    <?php  
     if(isset($_POST["submit"])){  
     if(!empty($_POST['user']) && !empty($_POST['pass']) && !empty($_POST['fname']) && !empty($_POST['lname']) && !empty($_POST['dob'])) {  
$user=$_POST['user'];  
$pass=$_POST['pass'];  
$fname=$_POST['fname'];  
$lname=$_POST['lname'];
$dob=$_POST['dob'];
$con=mysqli_connect('localhost','root','') or die(mysql_error());  
mysqli_select_db($con, 'login_creds') or die("cannot select DB");  

$query=mysqli_query($con, "SELECT * FROM login WHERE email='".$user."'");  
$numrows=mysqli_num_rows($query);  
if($numrows==0)  
{  
$sql="INSERT INTO login(email, password, firstname, lastname, dateofbirth) VALUES('$user','$pass','$fname','$lname','$dob')";  

$result=mysqli_query($con, $sql);  
    if($result){  
echo "Account Successfully Created, please log in";  
} else {  
echo "Failure!";  
}  

} else {  
echo "That email already exists! Please try again with another.";  
}  

 } else {  
    echo "All fields are required!";  
 }  
 }  
 ?>  

login.php

    <?php  
    if(isset($_POST["submit"])){  

    if(!empty($_POST['user']) && !empty($_POST['pass'])) {  
    $user=$_POST['user'];  
$pass=$_POST['pass'];
$fname=$_POST['fname'];    

$con=mysqli_connect('localhost','root','') or die(mysql_error());  
mysqli_select_db($con, 'login_creds') or die("cannot select DB");  

$query=mysqli_query($con, "SELECT * FROM login WHERE email='".$user."' AND password='".$pass."'" );  
$numrows=mysqli_num_rows($query);  
if($numrows!=0)  
{  
while($row=mysqli_fetch_assoc($query))  
{  
$dbemail=$row['email'];  
$dbpassword=$row['password'];      
}  

if($user == $dbemail && $pass == $dbpassword);
$query=mysqli_query($con, "SELECT * FROM login WHERE firstname='".$fname."' AND lastname='".$lname."'" );
    $_SESSION["sess_fname"]=$fname;

{  
session_start();  
$_SESSION['sess_user']=$user;
$_SESSION["sess_fname"]=$row["fname"];
header("Location: member.php");  
}  
} else {  
    echo "Invalid email or password!";  
}  
} else {  
echo "All fields are required!";  
}  
}  
 ?>  

my_account.php

    <?php   
    session_start();  
    if(!isset($_SESSION["sess_user"])){  
    header("location:login.php");
    }  
    ?>
    <div class="form-row">
                <div class="form-group col-md-6">
    <label for="inputCondition14">First Name: <?=$_SESSION['sess_fname'];?></label>    </div>
    <div class="form-group col-md-6">
    <label for="inputCondition14">Email: <?=$_SESSION['sess_user'];?></label>    </div>

我是否省略了一个简单步骤来显示名字?运行页面时,我没有收到错误消息,它的名称应为空白。

谢谢

php sql mysqli web-applications phpmyadmin
1个回答
1
投票

为什么要在同一个变量中写2个值?

  $_SESSION["sess_fname"]=$fname;
  $_SESSION["sess_fname"]=$row["fname"];

并检查$fname$row["fname"]返回值是什么>>

© www.soinside.com 2019 - 2024. All rights reserved.