Модал не хочет появляться на странице входа. php - PullRequest
1 голос
/ 27 января 2020

У меня есть это в начале страницы, php проверяет, есть ли пароль и адрес электронной почты в базе данных, а когда не показывает ошибку - и ошибка должна быть в модальной форме:

 <?php
    session_start();
    session_destroy();
    ?>


    <?php 
    session_start();
    $pdo = new PDO('mysql:host=localhost;dbname=******', '*****', '******');

    if(isset($_GET['login'])) {
        $email = $_POST['email'];
        $passwort = $_POST['passwort'];

        $statement = $pdo->prepare("SELECT * FROM users WHERE email = :email");
        $result = $statement->execute(array('email' => $email));
        $user = $statement->fetch();

        //Überprüfung des Passworts
        if ($user !== false && password_verify($passwort, $user['passwort'])) {
            $_SESSION['userid'] = $user['id'];
            header("Location: http://localhost/app/index.php");
        } else {

            $errorMessage = "<script type='text/javascript'>
            $(document).ready(function(){
            $('#modal1').modal('show');
            });
            </script>";
        }
    }
    ?>

И это в конце страницы:

 <!-- Modal Structure -->
  <div id="modal1" class="modal modal-fixed-footer">
    <div class="modal-content"> 
      <h4>Modal Header</h4>
      <p>Wrong Password or wrong Email!</p>
    </div>
    <div class="modal-footer">
      <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat ">Agree</a>
    </div>
  </div>

Я не понимаю, почему не отображается модальный режим, потому что я запускаю функцию jquery после "DOM is ready", что означает, что он должен видеть материализуйте. js, который находится в конце страницы, где описаны модалы.

Спасибо за помощь.

1 Ответ

1 голос
/ 27 января 2020

in php после отправки каждой перезагрузки страницы формы. и для этого вы не можете показать модальное. и после этого вы заполняете $errorMessage, но не слышите его. Я предлагаю вам использовать js для показа модального или лучше, чем вы можете использовать ajax, если вход не выполнен, вы должны перенаправить пользователя на страницу входа, но с сообщением в URL, таком как login.php?msg=Login_Failed, и с помощью js вы можете искать для этого

if(location.search === "msg=Login_Failed"){
           //run modal or sweet alert or anything 
       }

ИЛИ вы можете использовать ajax для отправки формы

<script>
var username = document.getelementbyid('username').value;
var password = document.getelementbyid('password').value;
 $.post("your_php_file.php",
  {
    username: username,
    password: password
  },
  function(data){
   if(data == true){
window.location.href = "app/index.php";
}else{
//run modal or anyting here
}
  });
</script>
...