Php 如何创建一个会话,在用户使用电子邮件和密码登录时显示用户的用户名
我创建了一个有电子邮件和密码的登录表单,但我想要它 在登录后的下一页显示用户名而不是电子邮件,例如 欢迎塞缪尔。如何应用会话 我已尝试创建会话名称,但它不接受。 我能做些什么来显示sucefull用户名,而不必在登录表单上包含用户名输入文本框Php 如何创建一个会话,在用户使用电子邮件和密码登录时显示用户的用户名,php,mysqli,Php,Mysqli,我创建了一个有电子邮件和密码的登录表单,但我想要它 在登录后的下一页显示用户名而不是电子邮件,例如 欢迎塞缪尔。如何应用会话 我已尝试创建会话名称,但它不接受。 我能做些什么来显示sucefull用户名,而不必在登录表单上包含用户名输入文本框 session_start(); 如果设置为$\u POST['login']{ $email = mysqli_real_escape_string($db,$_POST['email']); $pa
session_start();
如果设置为$\u POST['login']{
$email = mysqli_real_escape_string($db,$_POST['email']);
$password =
mysqli_real_escape_string($db,$_POST['password']);
$mobile = mysqli_real_escape_string($db,$_POST['mobile']);
if (empty($email or $mobile)) {
array_push($errors, "Email Or mobile number is required");
}
if (empty($password)) {
array_push($errors, "Password is required");
}
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM farmers WHERE (email='$email' OR
mobile='$mobile') AND password='$password'";
$result = mysqli_query($db,$query);
if(mysqli_num_rows($result)==1){
$_SESSION['email'] = $email;
$email=$_SESSION['username'];
$_SESSION['sucess'] = "You are now logged in";
header('location: account_activation.php');//redirect to
survey
}else{
array_push($errors, "Wrong email/Mobile number or
Password combination");
}
}
}
//account_activation.php
<?php include('server.php');
if (empty($_SESSION['username'])) {
header('location: login.php');
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1,
shrink-to-fit=no">
<title>Account Activation</title>
<link rel="stylesheet"
</style>
<link rel="stylesheet" type="text/css" href="survey.css">
</head>
<body>
<div class="header">
<h2>Account activation</h2>
</div>
<div class="content">
<?php if (isset($_SESSION['success'])):?>
<div class="error success">
<h3>
<?php
echo $_SESSION['success'];
unset($_SESSION['success']);
?>
</h3>
</div>
<?php endif ?>
<?php if (isset($_SESSION["username"])): ?>
<p>Welcome <strong><?php echo $_SESSION['username']; ?></strong>
</p>
<p><a href="survey.php?logout='1'" style="color: red;">LogOut</a>
</p>
<?php endif ?>
它看起来是这样的:
<?php
session_start();
if (isset($_POST['login'])) {
$email = mysqli_real_escape_string($db, $_POST['email']);
$password = mysqli_real_escape_string($db, $_POST['password']);
$mobile = mysqli_real_escape_string($db, $_POST['mobile']);
if (empty($email) || empty($mobile)) {
array_push($errors, "Email Or mobile number is required");
}
if (empty($password)) {
array_push($errors, "Password is required");
}
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM farmers WHERE (email='$email' OR mobile='$mobile') AND password='$password'";
$result = mysqli_query($db, $query);
if (mysqli_num_rows($result) == 1) {
$_SESSION['email'] = $result['email'];
$_SESSION['username'] = $result['username'];
$_SESSION['loggedin'] = "1";
header('location: account_activation.php'); //redirect to survey
} else {
array_push($errors, "Wrong email/Mobile number or Password combination");
}
}
}
?>
//account_activation.php
<?php
include ('server.php');
if ($_SESSION['loggedin'] != "1") {
header('location: login.php');
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<meta name="description" content=""/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial- scale=1, shrink-to-fit=no"/>
<title>Account Activation</title>
<link rel="stylesheet" type="text/css" href="survey.css"/>
</head>
<body>
<div class="header">
<h2>Account activation</h2>
</div>
<div class="content">
<?php
if (isset($_SESSION['loggedin'])):
?>
<div class="error success">
<h3>You're logged in</h3>
</div>
<?php
endif;
?>
<?php
if (isset($_SESSION["username"])):
?>
<p>Welcome <strong><?= $_SESSION['username']; ?></strong> </p>
<p><a href="survey.php?logout='1'" style="color: red;">LogOut</a> </p>
<?php
endif;
?>
应该是
if (empty($email) || empty($mobile))
您也有一些HTML错误。自关闭的HTML标记应按如下方式关闭:
<meta name="description" content=""/>
请注意结尾处的/
最后一条评论…你的识别能力很强…这是一个非常坏的习惯。你显然是从编码开始的,你真的应该付出一些努力
通过谷歌搜索如何使用mysqli_查询从MySQL检索数据,您的这个问题本可以解决
Stack不是一个我们为您做工作的网站。如果您发布问题,请确保显示您尝试了什么以及问题是什么。您如何做到这一点而不提供您尝试的代码不符合此网站的要求。在任何情况下,祝您旅途好运!您能告诉我应该如何实现您的目标的详细信息吗是否删除代码?请将其放回去,因为我仍在跟踪它。我之所以删除它,是因为我因为某些原因被否决了。先生,我的数据库中没有用户名。当我根据您的代码更正时,它不会显示欢迎名称和注销
<meta name="description" content=""/>