如何重定向PHP Window.location.href或Window.open()在PHP和JavaScript方法

问题描述 投票:2回答:4

我跟进了一个教程,了解更多关于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>

这里的login.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>";

而仍然无法正常工作,因为它的教程,我已经通过搜索计算器找不到任何答案我感谢你的帮助。

javascript php html window.open window.location
4个回答
0
投票

这是你的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
投票

你必须使用header(...)功能,但不要忘记,你的页面保持在结束时运行。不要忘了die使用停止脚本。 ;)

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

或5秒后:

header("refresh: 5; url=home.php");

0
投票
 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使用


-1
投票

检查您的文件..

1)报头()发送的任何实际输出之前,必须被调用,或者通过正常的HTML标记,空行的文件,或者从PHP

2)将所有的PHP代码,并确保你没有任何空格的文件的开头。

3)报头(后 '位置:home.php');添加出口();

4)sesssion_start()后添加ob_start();

© www.soinside.com 2019 - 2024. All rights reserved.