2015-11-11 8 views
5

Attualmente sto creando un sito Web che consentirà all'utente di accedere utilizzando solo un nome utente, non è richiesta alcuna password. Una volta che l'utente ha digitato il suo nome nel modulo, il suo nome dovrebbe quindi essere posto su tutte le pagine che poi visiteranno fino a quando non si scollegheranno.Visualizzazione del nome degli utenti su ogni pagina utilizzando le sessioni

Il problema/s sto affrontando è che il nome utente non sta mostrando nelle altre pagine, una volta effettuato l'accesso, invece sono stato sempre problemi come errori (Avviso:. Undefined index: nome utente nel/ceri/homes1/s /sec17/public_html/cs25010/home.php on line 41) e il nulla si rivela.

Ecco il codice per la pagina di login:

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

E qui il codice per la home page: (Non sarò mettendo il nome utente qui quando il suo finito, questo è solo mentre im testarlo per vedere se il suo lavoro)

<?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 quello che attualmente simile a quando si accede:

Screenshot of the Home Page

+0

Sembra che si domanda ha risposto, ma solo pensato che vorrei commentare questa funzionalità, che sembra strano. Perché dovresti richiedere a una persona di inserire il loro nome se non otterrà assolutamente nulla dal fornirti tali informazioni, oltre a far visualizzare il loro nome su altre pagine del sito web solo durante la loro sessione corrente? Sembrerebbe che tu stia aggiungendo ulteriore complessità nel tuo sistema e una barriera per l'accesso all'utente senza ricavarne alcun valore. –

+0

Fondamentalmente il loro sarà un cestino temporaneo che gli utenti possono inserire in ciò che deve essere ricordato per tutto il tempo in cui si trovano sul sito. –

+0

@SeanCoyne Ma perché hanno bisogno di "accedere" per ottenere questa funzionalità del carrello? Non è come se persistessi nel carrello in un data store attraverso le sessioni. Se hai bisogno del loro nome per il check-out finale, bene raccogli il nome nel processo di checkout, ma perché imporre una barriera all'ingresso per ottenere anche la funzionalità del carrello? –

risposta

0

Hai un errore di battitura. In caso contrario, viene visualizzato il metodo predefinito per il metodo del modulo.

Cambio:

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

A tal:

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

Grazie, sto ancora ricevendo lo stesso errore sulla home page (Avviso: indice indefinito: nome utente in /ceri/homes1/s/sec17/public_html/cs25010/home.php alla riga 41). –

Problemi correlati