Как перенаправить php Window.location.href или Window.open () методы в php и JavaScript - PullRequest
0 голосов
/ 05 февраля 2019

Я изучаю учебник, чтобы узнать больше о php, в его исходном коде есть что-то, что работает в то время, но больше не работает.вот код, пожалуйста, дайте мне знать, что я должен изменить в коде, чтобы процесс входа в систему работал (в настоящее время после ввода действительного имени пользователя и пароля и нажатия входа в систему он зависает и показывает первую страницу, а не перейти на home.php

вот шаблон / header.php:

<div class="container">
        <!--Head wrap starts-->
        <div id="head_wrap">
            <!--Header starts-->
            <div id="header">
                <img src="images/logo.png" style="float:left;"/>
                <form method="post" action="" id="form1">
                    <strong>Email:</strong>
                    <input type="email" id="email" name="email" placeholder="Email" required="required" />
                    <strong>Password:</strong>
                    <input type="password" id="pass" name="pass" placeholder="****" required="required"/>
                    <button type="submit" id="login">Login</button>
                </form>
            </div>
            <!--Header ends-->
        </div>

вот логин.php

<?php
        session_start();

        include("includes/connection.php");

        if(isset($_POST['login'])){

        $email = mysqli_real_escape_string($con,$_POST['email']);
        $pass = mysqli_real_escape_string($con,$_POST['pass']);

        $get_user = "select * from users where user_email='$email' AND user_pass='$pass'";

        $run_user = mysqli_query($con,$get_user);

        $check = mysqli_num_rows($run_user);

        if($check==1){
                $email = mysqli_real_escape_string($con,$_POST['email']);

            $_SESSION['user_email']=$email;

                        echo "<script>window.open('home.php','_self')</script>";



        }
            else {
            echo "<script>alert('Passowrd or email is not correct!')</script>";
        }

        }
?>

обратите внимание, что я пробовал

        echo "<script> window.location.href = 'home.php';</script>";

вместо

        echo "<script>window.open('home.php','_self')</script>";

и до сих пор не работает, так как это учебное пособие, и у меня поиск по stackoverflow не могу найти ответ, я ценю вашу помощь.

Ответы [ 4 ]

0 голосов
/ 05 февраля 2019

Проверьте в своем файле ..

1) header () должна быть вызвана перед отправкой любого фактического вывода, либо обычными HTML-тегами, пустыми строками в файле, либо из PHP

2) Объедините все свои PHP-коды и убедитесь, что у вас нет пробелов в начале файла.

3) после заголовка ('location: home.php');добавить выход ();

4) после sesssion_start () добавить ob_start ();

0 голосов
/ 05 февраля 2019

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

<div class="container">
 <!--Head wrap starts-->
 <div id="head_wrap">
  <!--Header starts-->
  <div id="header">
   <img src="images/logo.png" style="float:left;"/>
   <form method="post" action="login.php" id="form1">
    <strong>Email:</strong>
    <input type="email" id="email" name="email" placeholder="Email" required="required" />
    <strong>Password:</strong>
    <input type="password" id="pass" name="pass" placeholder="****" required="required"/>
    <input type="submit" id="login" name="login" value="Login">
   </form>
  </div>
  <!--Header ends-->
 </div>
</div>

Редактировать: Я не могу отладить весь ваш проект, но после просмотра некоторыхВещи, которые я вижу, вы не используете атрибут 'name'.Когда страница отправляется, пара имя / значение отправляется в массиве $ _POST.Если у вас нет атрибута name, ничего не отправляется.Начните с добавления атрибута name.Я изменил приведенный выше HTML-код, чтобы показать вам, как.

0 голосов
/ 05 февраля 2019
 if($check==1){
            $email = mysqli_real_escape_string($con,$_POST['email']);

        $_SESSION['user_email']=$email;

                    return 1;
   }
        else {
         return 0;
    }

и javascript проверяют статус 1 и 0, затем window.location.href и window.open используют

0 голосов
/ 05 февраля 2019

Вы должны использовать функцию header (...) , но не забывайте, что ваша страница продолжает работать в конце.Не забудьте использовать с die, чтобы остановить ваш скрипт.;)

die(header("Location: home.php"))

или через 5 секунд:

header("refresh: 5; url=home.php");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...