简体   繁体   中英

Displaying users name on every page using sessions

I am currently creating a website that will allow the user to log in using a username only, no password is required. Once the user has typed their name into the form, their name should then be placed on all of the pages they then visit until they log out.

The problem/s I am facing is that the username is not showing on the other pages once logged in. Instead I have been getting problems such as errors ( Notice: Undefined index: username in /ceri/homes1/s/sec17/public_html/cs25010/home.php on line 41 ) and the nothing showing up at all.

Here is the code for the login page:

<?php
session_save_path("/aber/sec17/public_html/cs25010/tmp");
session_start();
if (empty($_SESSION['username'])) {
if (isset($_POST['submit'])) {
    $_SESSION["username"] = $_POST["username"];
    header("Location: home.php");
}
}
?>

<!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>

        <div id="nav">
            <div id="menu">
                <ul>
                <li><a href="home.php">Home</a></li>
                <li><a href="database.php">Products</a></li>
                <li><a href="drink.php.html">Offers</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</a></li>
                </ul>
            </div>
        </div>



        <div id="main">
            <h1>Welcome to Sean Coyne's Food Shop</h1>
            <h2>Please Log In below:</h2>
            <br></br>
            <div id="login">
                <?php
                    echo '<form action="home.php" method"post"> 
                <input type="text" name="username" text="input username"
                placeholder="Username" required> 
                <input type="submit" name="submit" value="submit" /> 
                </form>';
                ?>
            </div>

        </div>

    </div>
</body>
</html>

And here the code for the home page: ( I will not be placing the username here when its finished, this is just while im testing it to see if its working )

<?php
session_start();
?>

<!DOCTYPE html>
<html>
<head>
    <title>Home Page</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>

        <div id="nav">
            <div id="menu">
                <ul>
                <li><a href="index.php">Home</a></li>
                <li><a href="database.php">Products</a></li>
                <li><a href="drink.php.html">Offers</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</a></li>
                </ul>
            </div>
        </div>



        <div id="main">
            <h1>Welcome to Sean Coyne's Food Shop</h1>

                <?php
                    echo $_SESSION['username'];
                ?>

        </div>
    </div>  
</body>
</html>

Heres what it currently look like when you log in:

主页的屏幕截图

You have a typo. Otherwise default method for form method is get.

Change:

<form action="home.php" method"post">

To this:

<form action="home.php" method="post">

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM