在用户登录PHP后,如何打印他们的名字?
我正在为php做一个登录页面,登录页面需要他们的电子邮件和密码,但是当他们第一次注册时,它需要他们的名字和姓氏。我试图在他们登录后打印他们的名字,但我一直得到“undefined variable firstname”,但调用它是为了在注册中存储值,所以我不确定会发生什么。如果它也需要在登录方面调用,我不确定在哪里调用它,我不希望用户在登录页面中再次输入他们的名字,我只想从注册页面中提取数据,并在他们登录时输入 这是用户登录后指向的索引页的代码在用户登录PHP后,如何打印他们的名字?,php,html,Php,Html,我正在为php做一个登录页面,登录页面需要他们的电子邮件和密码,但是当他们第一次注册时,它需要他们的名字和姓氏。我试图在他们登录后打印他们的名字,但我一直得到“undefined variable firstname”,但调用它是为了在注册中存储值,所以我不确定会发生什么。如果它也需要在登录方面调用,我不确定在哪里调用它,我不希望用户在登录页面中再次输入他们的名字,我只想从注册页面中提取数据,并在他们登录时输入 这是用户登录后指向的索引页的代码 <?php session_s
<?php
session_start();
if(isset($_GET['logout'])){
session_destroy();
unset($_SESSION['email']);
unset($_SESSION['firstname']);
header("location: index.php");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Illustrious Marketing</title>
<!--Bootstrap Stylesheet-->
<link rel="stylesheet" href="bootstrap-4.4.1-dist/css/bootstrap.min.css">
<link rel="stylesheet" href="css/index.css">
<!--Font-->
<script src="https://kit.fontawesome.com/4f2c3df144.js" crossorigin="anonymous"></script>
</head>
<body>
<!--Header Start-->
<header>
<div class="container">
<div class="row">
<div class="col-md-1 col-sm-1 col-lg-2 col-xl-3">
<div class="btn-group">
<button class="btn border dropdown-toggle my-md-4 my-2 text-color" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">GYD</button>
</div>
</div>
<div class="col-md-5 col-sm-10 col-lg-5 col-xl-5 text-center">
<h2 class="my-md-3 site-title text-color">Illustrious Marketing</h2>
</div>
<div class="col-md-6 col-sm-12 text-center col-lg-5 text-right col-xl-4 text-right">
<p class="my-md-4 header-links">
<?php
if(isset($_SESSION['firstname']));
?>
<a href="#" class="px-3"> Hello <?php echo $_SESSION['firstname']; ?></a>
<a href="#" class="px-1">Become a Seller</a>
<a href="index.php?logout='1'" class="px-2">Sign Out</a>
<? php endif ?>
</p>
</div>
杰出的营销
吉德
杰出的营销
这是登录服务器中的代码
<?php
session_start();
// variable declaration
$email = "";
$errors = array();
// connect to database
$db = mysqli_connect('localhost', 'root', '', 'illustriousmarketing');
// REGISTER USER
if (isset($_POST['reg_user'])) {
// receive all input values from the form
$firstname = mysqli_real_escape_string($db, $_POST['firstname']);
$lastname = mysqli_real_escape_string($db, $_POST['lastname']);
$email = mysqli_real_escape_string($db, $_POST['email']);
$password = mysqli_real_escape_string($db, $_POST['password']);
// form validation: ensure that the form is correctly filled
if (empty($firstname)) { array_push($errors, "First Name is required"); }
if (empty($lastname)) { array_push($errors, "Last Name is required"); }
if (empty($email)) { array_push($errors, "Email is required"); }
if (empty($password)) { array_push($errors, "Password is required"); }
// register user if there are no errors in the form
if (count($errors) == 0) {
$password = md5($password);//encrypt the password before saving in the database
$query = "INSERT INTO loginform (`firstname`, `lastname`, `email`, `password`)
VALUES('$firstname', '$lastname', '$email', '$password')";
mysqli_query($db, $query);
$_SESSION['email'] = $email;
$_SESSION['success'] = "You are now logged in";
header('location: indexloginbuyer.php');
}
}
// ...
// LOGIN USER
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 loginform WHERE email='$email' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
$_SESSION['firstname'] = $firstname;
$_SESSION['email'] = $email;
$_SESSION['success'] = "You are now logged in";
header('location: indexloginbuyer.php');
}else {
array_push($errors, "Wrong email/password combination");
}
}
}
您应该添加
会话_start();//开始会话
开始会话。之后,您需要分配
$row=mysql\u fetch\u row($result)
$\会话['firstname']=$row['firstname']
检查用户凭据后,在if块内。在检索会话变量之前,需要设置会话变量。在你发布的代码中,这不会发生。您还需要调用才能访问$\u SESSION
变量。我在登录服务器的代码中有SESSION start,我的注册和登录是在主“server”文件中完成的,我刚刚发布了登录代码的片段,因为这正是我们讨论的内容。我将发布服务器的全部代码,在我设置会话变量后,您能告诉我需要在哪里设置会话变量吗?只需在设置电子邮件
和成功
会话变量的同一位置进行设置即可。session\u start()
方法也需要在访问变量之前在您的第一个代码段中调用。我不再收到错误,但名称仍然没有显示。您实际在哪里为第一个名称设置会话变量?我仍然没有在您的代码中看到它。我不再收到错误,但它仍然没有显示名称:(删除行$\u SESSION['firstname']=$firstname;并替换为$row=mysql\u fetch\u row($result);$\u SESSION['firstname']=$row['firstname'];