Слишком длинная проблема с этой проблемой. У меня есть index.php, включая форму и login.php, обрабатывающие ее.
Как отправить ошибки в конкретном div в index.php? Вот контейнер Index.php, еще не php-код в idnex.php.
<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>
и вот раздел отчетов об ошибках 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');
попробовал это
include('../index.php'); die('<p class="error">User does not exist</p>');
не удается настроить его по кнопке «Отправить» (с использованием поля: 0 автоматически, поэтому изменения слева и справа)
Спасибо за любую помощь
измените свой файл login.php
:
} else { // error happened $error = '<p class="error">User does not exist</p>' include('../index.php'); exit; ...
и ваш файл 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> ...
Проблема в том, что ваш файл login.php
напрямую login.php
сообщение об ошибке. Лучшим способом было бы сохранить сообщение в переменной – даже для переменной сеанса было бы достаточно (поскольку, похоже, вы не используете ООП, в примере кода).
Попробуйте обновить сообщения об ошибках, чтобы не использовать echo
, но вместо этого:
$_SESSION['error_message'] = "Incorrect Password<style text-align:center;/>";
И затем, в index.php
, именно там, где вы хотите, чтобы он отображался, добавьте:
<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 } ?>
с<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 } ?>
Поскольку, по-видимому, вы хотите включить файл index.php
при возникновении фактической ошибки, вы можете установить локальную переменную прямо перед тем, как include('../index.php');
вызов include('../index.php');
внутри login.php
, вот так:
} else { $errMsg = "Incorrect Password<style text-align:center;/>"; include('../index.php'); }
И, как и в приведенном выше примере, измененный index.php
, вы можете сделать то же самое здесь:
</p> </form> <?php if ($errMsg) { echo $errMsg; } ?>