2015-11-11 30 views
5

Şu anda kullanıcının sadece bir kullanıcı adı kullanarak oturum açmasına izin verecek bir web sitesi oluşturuyorum, parola gerektirmez. Kullanıcı kendi adını forma yazdıktan sonra, isimleri daha sonra ziyaret edene kadar ziyaret edecekleri tüm sayfalara yerleştirilmelidir.Oturumları kullanarak her sayfada kullanıcı adını görüntüleme

Karşılaştığım sorunlar/lar, kullanıcı adı giriş yaptıktan sonra diğer sayfalarda gösterilmiyor. Bunun yerine, hatalar gibi sorunlarla karşılaşıyordum (Uyarı: Tanımsız dizin: kullanıcı adı/ceri/homes1/s /sec17/public_html/cs25010/home.php on line 41) ve hiçbir şey gösterilmiyor. Burada

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

Ve ana sayfası için kod: Burada

giriş sayfası için kodudur (burada onun bitmiş adını yerleştirerek olmayacak , bu sadece ederken im test it onun çalışma eğer şu anda giriş benzeyecek İşte neyi)

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

görmek için:

Screenshot of the Home Page

+0

Size cevap, ama sadece ben garip görünüyor bu işlevselliği, üzerinde yorum düşündüm edildi soru gibi görünüyor. Neden sadece bu bilgileri sunma konusunda hiçbir şey alamayacaklarsa, isimlerinin sadece geçerli oturumları sırasında web sitesinin diğer sayfalarında gösterilmeleri dışında isimlerini girmelerini istemeniz gerekir? Sisteminize ek karmaşıklık katıyorsunuz ve kullanıcıya herhangi bir değer çıkarmadan kullanıcı girişi için bir engel oluşturuyor gibisiniz. –

+0

Temelde, kullanıcıların sitede bulundukları süre boyunca hatırlanması gereken şeyleri yerleştirebilecekleri geçici bir sepet olacaktır. –

+0

@SeanCoyne Ama neden bu sepeti işlevselliğini almak için "giriş" gerekiyor? Bir veri deposundaki alışveriş sepetindeki oturumlara devam etmiyormuşsunuz gibi değil. Nihayetinde kontrol etmek için adlarına ihtiyacınız varsa, ödeme işleminde adı toplayın, ancak neden sepet işlevini almak için girişe engel koymayı tercih edin? –

cevap

0

Yazım hatası var. Aksi takdirde, form yöntemi için varsayılan yöntem alınır.

Değişikliği: Buna

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

:

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

Teşekkürler, hala ana sayfada aynı hatayı alıyorum (Uyarı: Tanımsız dizin: /ceri/homes1/s/sec17/public_html/cs25010/home.php adresindeki 41. satırdaki kullanıcı adı). –

İlgili konular