2015-11-11 25 views
5

私は現在、ユーザー名のみを使用してログインできるWebサイトを作成していますが、パスワードは必要ありません。ユーザーがフォームに名前を入力すると、そのユーザーの名前は、ログアウトするまですべてのページに配置されます。セッションを使用しているすべてのページにユーザー名を表示

私が直面している問題は、ユーザー名がログインした後に他のページに表示されないということです。代わりにエラーなどの問題が発生しています(通知:未定義インデックス:/ ceri/homes1/s /sec17/public_html/cs25010/home.php 41行目)と何も表示されません。ここで

は、ログインページのコードです:

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

そして、ここでホームページのコード:(イムはそれをテストしながら、その完成が、これはただのとき、私はここにユーザー名を置くことはありませんその相続人がログインするとき、それが現在どのように見えるか

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

作業かどうかを確認します

Screenshot of the Home Page

+0

それはあなたが答えたが、ちょうど私が奇妙なようで、この機能は、上のコメントを考えましたた質問のように見えます。自分の現在のセッション中にウェブサイトの他のページに名前を表示する以外に、情報を提供することから絶対に何も得られない場合、人は自分の名前を入力する必要がありますか?あなたのシステムに複雑さが増し、ユーザからのいかなる価値も得られずにユーザに参入するための障壁が増えているようです。 –

+0

基本的には、一時的なバスケットになり、ユーザーはサイトにいる間ずっと記憶しておく必要があります。 –

+0

@SeanCoyneしかし、なぜこのカート機能を得るには「ログイン」する必要がありますか?あなたがカートをセッション間でデータストアに保存しているようなものではありません。最終的にチェックアウトするために名前が必要な場合は、チェックアウトプロセスで名前を細かく収集しますが、なぜカートの機能性を得るためにエントリーの障壁を課すのでしょうか? –

答えて

0

あなたはタイプミスがあります。それ以外の場合、フォームメソッドのデフォルトメソッドはgetです。

変更:これに

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

は:

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

ありがとう、私はまだホームページ(通知:未定義のインデックス:/ceri/homes1/s/sec17/public_html/cs25010/home.phpの41行目のユーザー名)で同じエラーが発生しています。 –

関連する問題