Php 登录后返回表单且不显示用户名
我正在创建一个网站,用户将能够登录,然后他们的名字将被放置在他们以前登录的框中,在我的情况下,它将显示“您已登录”。以下是一个前后截图: 在您尝试登录后,此时会话将返回到登录窗体,它不会显示“you is loggin”(您已登录)语句。下面是index.php页面的代码:Php 登录后返回表单且不显示用户名,php,html,forms,session,Php,Html,Forms,Session,我正在创建一个网站,用户将能够登录,然后他们的名字将被放置在他们以前登录的框中,在我的情况下,它将显示“您已登录”。以下是一个前后截图: 在您尝试登录后,此时会话将返回到登录窗体,它不会显示“you is loggin”(您已登录)语句。下面是index.php页面的代码: <?php session_start(); ?> <!DOCTYPE html> <html> <head> <title>Sean Coyne's
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Sean Coyne's Food Shop</title>
<link href="style.css" type="text/css" rel="stylesheet"/>
<link rel="icon" type="image/x-icon" href="images/favicon.ico" />
<meta name="description" content="Welcome to Sean Coyne's Food Shop" />
</head>
<body>
<div id="page">
<div id="logo">
<img src="images/logo.jpg" alt="Sean Coyne's Food Shop"
title="Sean Coyne's Food Shop" width="400px" height="70px"/>
<div id="login">
<?php if (isset($_SESSION['username'])) { ?>
<h2>You are logged in</h2>
<?php } else{ ?>
<form action="" method="post">
<label>UserName :</label>
<input id="name" name="username" placeholder="username" type="text">
<label>Password :</label>
<input id="password" name="password" placeholder="**********" type="password">
<input name="submit" type="submit" value=" Login ">
</form>
<?php }?>
</div>
</div>
<div id="nav">
<div id="menu">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="food.php">Food</a></li>
<li><a href="drink.php.html">Drink</a></li>
<li><a href="about.php">About Us</a></li>
<li><a href="findus.php">Where to find us</a></li>
<li><a href="contact.php">Contact Us</a></li>
</ul>
</div>
</div>
<div id="main">
<h1>Welcome to Sean Coyne's Food Shop</h1>
</div>
</div>
</body>
</html>
肖恩·科因食品店
您已登录
用户名:
密码:
欢迎来到肖恩·科因的食品店
所以我假设您还没有创建会话,使用类似的方法
if (password_verify($_POST['password'], $password)) {
// Verification success! User has loggedin!
$_SESSION['username'] = $_POST['username'];
header('Location: nameOfPageYouWantSession.php');
exit;
} else {
echo 'Incorrect username and/or password!';
}
在新文件上使用此脚本,例如logIn.php
所以你的登录表应该是这样的
<form action="logIn.php" method='POST'>
应该使用logIn.php页面对登录表单进行所有检查。因此,您应该对照数据库检查用户和密码,然后在一切正常的情况下将它们重定向到您想要的页面
用户将能够登录,然后他们的名字将被放置在框中
您可以从会话中创建用户名变量:
<?php
session_start();
$username =$_SESSION['username'];
?>
然后进一步打印该变量
<?php echo $username; ?>
您需要添加登录逻辑。下面是它的样子:
<?php
/* Login Logic */
$users = [
[
'username' => 'Max',
'password' => 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'
],
[
'username' => 'Jenny',
'password' => 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'
],
];
//if we have data from the form submission
if($_POST) {
$username = $_POST['username'];
$password = $_POST['password'];
foreach($users as $user) {
//matching usernames
if($user['username'] === $username) {
//hash form inputed password to try and match with users passwords
$hashed_form_password = sha1($password);
//if passwords match
if($hashed_form_password === $user['password']) {
$_SESSION['username'] = $user['username'];
}
}
}
}
/* End Login Logic */
?>
您可以将此代码放在页面的任何位置,如果您使用用户名“Max”或密码“test”的“Jenny”登录,您将收到消息“You is logging in”,因为您在$\u会话中设置了“username”变量
似乎您对使用php构建网站还不熟悉,所以即使这对其他人没有帮助,您也可能从中获得一些帮助!:) 创建会话的代码在哪里?我假设会话_start();创建会话?我对会话非常陌生您需要执行$\u会话['username']='someusername',以便触发If(isset($\u会话['username'])。我们需要查看身份验证成功代码。一旦身份验证成功,您需要声明$\u会话变量以供以后参考。不知道,您没有提供实际的代码。我的猜测是您没有正确设置$_会话['username']。不,我没有,这是在您登录之前进行的,好的,然后在表单操作中我应该声明logIn.php?
头('nameOfPageYouWantSession.php)代码>由于两个原因将失败。欢迎回到@Fred ii-,启发我:)@Fred ii-太棒了,我喜欢stackoverflow。谢谢你,是的,我对使用php构建非常陌生,这将非常有帮助,谢谢你。