如果使用PHP直接访问页面,如何重定向页面?

时间:2016-08-03 07:08:13

标签: php redirect url-redirection

我有2个php页面。 1,用于登录表单,第2个php页面是信息。

我希望第二个php页面只有在用户从第一页重定向重定向时才能访问,并阻止用户直接访问它。

让我们说第一个php文件名为" form.php"和我希望阻止直接访问的第二个php文件名为" info.php"。

有什么建议吗?

到目前为止,请参阅下面的代码(我的代码无效)我得到了白色的空白页

form.php的

if(isset($_POST['submit'])){
    if((isset($_POST['username']) && $_POST['username'] != '') && (isset($_POST['email']) && $_POST['email'] != '')){
        $_SESSION["username"] = $_POST['username'];
        $_SESSION["email"] = $_POST['email'];

    $loginform = (strlen($_SESSION["username"])>0 && strlen($_SESSION["email"])>0);
     if($loginform){
       $_SESSION['login'] = 1;
       echo("<script>location.href = '/info/';</script>");
     }
   }
}

info.php的

if(!isset($_SESSION['login']){
    echo("<script>location.href = '/login/';</script>");
}

3 个答案:

答案 0 :(得分:1)

如果session成功,请在login.php页面上login开始,并session variable设置为header login.php login.php <?php session_start();// at top of page ..... after login means all your query running if(querysuccess){ $_SESSION['loggedIn'] = 1; header('location:info.php'); } info.php// here check if session variable not 1 then redirect again to login.php <?php session_start(); if(!SESSION['loggedIn']){ header('location:login.php'); } else{ // just do whatever you want } ?>

start

更新回答

表单页面顶部的

session <?php session_start();// should be at top if(isset($_POST['submit'])){ if((isset($_POST['username']) && $_POST['username'] != '') && (isset($_POST['email']) && $_POST['email'] != '')){ $_SESSION["username"] = $_POST['username']; $_SESSION["email"] = $_POST['email']; $loginform = (strlen($_SESSION["username"])>0 && strlen($_SESSION["email"])>0); if($loginform){ $_SESSION['login'] = 1; echo("<script>location.href = '/info/';</script>"); } } }

info.php

你忘记关闭<?php session_start(); if(!isset($_SESSION['login'])){ echo("<script>location.href = '/login/';</script>"); } 中的isset。也可以在这里开始会议

<script type="text/babel" src="../Assets/js/react/Dashboard_components.js"></script>
//Here in Dashboard_components.js
var Dashboard_comp=React.createClass(
{
componentDidMount:function()
        {
            $('.ui.modal').modal();  
        },
        render:function()
        {
            return(
            <div>
                //Header exists in Base component js
                <Header/>
                <div className="ui two columns grid">
                    <div className="three column wide">
                        <SideNav/>
                    </div>
                    <div className="thirteen column wide">                        
                        <Stats/>
                        <Class_boxes/>
                    </div>
                </div>
            </div>
            )          
        }
    })

答案 1 :(得分:0)

你可以在php中使用header()方法。

header('location:info.php');

答案 2 :(得分:0)

尝试在form.php页面上的会话中存储一个标志,然后在第一件事情中检查info.php中是否存在会话中的标志,如果是,则继续执行info.php。如果没有重定向回form.php或死你想要的任何东西。