echo login error in different page, div specifico

Ritardato troppo a lungo con questo problema. Ho un index.php che include form e login.php che lo gestiscono.

Come posso pubblicare gli errori in un div specifico in index.php? Ecco il contenitore Index.php, nessun codice php in idnex.php ancora.

<div id="container"> <section> <h1>ברוכים הבאים לאתר קופונים</h1> <h2>המקום בו תוכלו למצוא קופונים בסביבתכם</h2> <hr> </section> <section id="mainpage"> <p class="welcome"> אנא התחבר בכדי ליצור ולראות קופונים בקרבתך</br> <a href="php/register.php">הירשם לאתר</a> </p> <form action="php/login.php" method="post" class="form"> <p class="email"> <input type="text" name="email" /> :דואר אלקטרוני</br> </p> <p class="password"> <input type="password" name="password" /> :סיסמא</br> </p> <p class="submit"> <input type="submit" value="היכנס" /> </p> </form> </section> </div> 

ed ecco la sezione di segnalazione degli errori login.php

  //check matching input if($email == $dbemail && $password = $dbpassword){ $_SESSION['email'] = $dbemail; include('../index.php'); header('members.php'); } else{ include('../index.php'); echo "Incorrect Password<style text-align:center;/>"; } } } else include('../index.php'); die('<p class="error">User does not exist</p>'); } else include('../index.php'); die('Please enter a Email and password'); 

provato questo

 include('../index.php'); die('<p class="error">User does not exist</p>'); 

non riesco a posizionarlo in modo specifico sotto il button Invia (utilizzando il margine: 0 auto, quindi le modifiche a sinistra ea destra)

Grazie per l'aiuto dato

cambia il tuo file login.php :

 } else { // error happened $error = '<p class="error">User does not exist</p>' include('../index.php'); exit; ... 

e il tuo file index.php:

 <form action="php/login.php" method="post" class="form"> <?php if(isset($error)) echo $error; ?> <p class="email"> <input type="text" name="email" /> :דואר אלקטרוני</br> ... 

Il problema è che il tuo file login.php direttamente echo al messaggio di errore. Un metodo migliore sarebbe quello di salvare il messaggio in una variabile – anche una variabile di session sarebbe sufficiente (dato che sembra che tu non stia usando OOP, dal codice di esempio).

Prova ad aggiornare i messaggi di errore per non usare echo , ma invece forse:

 $_SESSION['error_message'] = "Incorrect Password<style text-align:center;/>"; 

E poi, in index.php , esattamente where vuoi che venga visualizzato aggiungi:

  <p class="submit"> <input type="submit" value="היכנס" /> </p> </form> <?php if (isset($_SESSION['error_message'])) { echo $_SESSION['error_message']; unset($_SESSION['error_message']); // clear the message to prevent duplicate displays } ?> 

Poiché sembra che tu voglia includere il file index.php quando si verifica l'errore effettivo, puoi impostare una variabile locale subito prima della chiamata da include('../index.php'); all'interno di login.php , come questo:

 } else { $errMsg = "Incorrect Password<style text-align:center;/>"; include('../index.php'); } 

E come l'esempio precedente modificato index.php , puoi fare lo stesso qui:

  </p> </form> <?php if ($errMsg) { echo $errMsg; } ?>