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

我正在创建一个网站,用户将能够登录,然后他们的名字将被放置在他们以前登录的框中,在我的情况下,它将显示“您已登录”。以下是一个前后截图:

在您尝试登录后,此时会话将返回到登录窗体,它不会显示“you is loggin”(您已登录)语句。下面是index.php页面的代码:

<?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构建非常陌生,这将非常有帮助,谢谢你。