限制访问第二个表单页面

时间:2017-04-02 16:42:27

标签: php html forms session-variables

Helloo,我有一个mutistep表单功能 在“Step1”(第1页)中,我有一个带有三个radioButton的表单

在第2步(第2页)中,我有另一种形式。 所以,我的问题是我想通过URL限制对page2的访问,就像我输入浏览器地址栏:localhost / page1.php然后它应该加载page1.php但是当我写localhost / page2.php然后它应该限制用户有权访问page2,我想重定向到localhost / page1.php

所以我试过这个:

第1页:

  <form class="type" action="page2.php" method="post">
   <label style="text-align:center;"> Type de compte :  </label>
                </br> </br>
   <input  type="radio" name="typeCompte" value="enseig"  required> 
                 Enseignant </br>
   <input type="radio" name="typeCompte" value="etud" required> 
                  Etudiant </br>
   <input type="radio"  name="typeCompte" value="admin" required> 
                  Adminstrateur </br>
    </br></br>
   <input type="submit" class="make" name="submit" value="Valider">
   </form>

   <?php
    if(isset($_POST['submit']))
    {
       $_SESSION['log']=1;
    }
   ?>

第2页:

 <?php 
      session_start();
      if($_SESSION['log']!=1)
          header("location: page1.php");//redirecting to first page
 ?>

page1

page2

2 个答案:

答案 0 :(得分:1)

尝试将会话变量设置为bool,如...

Page1.php

<?php
    session_start();
    if($_POST['submit']){
        $_SESSION['log'] = "true";
         header("Location: page2.php");
  }
  ?>

然后在 Page2.php

 if(!isset($_SESSION['log']) && $_SESSION['log'] == "false"){
     //send them back
     header("Location: page1.php");
  }
 else{
     //your logic if any.
  }

我认为在Php会话中可能只是在真正的假基础上工作..

答案 1 :(得分:1)

检查您可以使用的会话isset命令

<?php session_start();

//if ! means not isset check if the session is active
if(!isset($_SESSION['log']))
header("location:page1.php");
?>

在您为日志分配会话的页面中,您可以使用它为稍后可能需要的用户分配任何值。然而,请阅读.htaccess并将您的有限访问文件放在不同的目录中  在第1页

$t='1';
$_SESSION['log']=$t;

并且在第1页<?php之后的第一行非常重要,您必须

session_start();
编辑试试这个我写的只花了5分钟,所以它不多但我测试了它的工作原理2文件test1.php和test2.php test1.php

<?php
session_start();
if(isset($_POST['set'])){
    $log='1';
    $_session['log']=$log;
    include_once("test2.php");
    exit;
    }
if(isset($_POST['dontset'])){
    include_once("test2.php");
    }
?>
<html>
    <body>
        <form action="" method="post">      
            <input type="submit" name="set" value="set">
            <input type="submit" name="dontset" value="dontset">
        </form>
    </body>
</html>

test2.php

<?php
session_start();
    if (!isset($_session['log'])){
        echo 'you are not authorised';
        header("location:test1.php");
    }
    if (isset($_session['log'])){
        echo 'you are authorised';
        }
?>
<html>
    <body>
        <form action="" method="post">      
            <input type="submit" name="destroy" value="destroy">
        </form>
    </body>
</html> 
<?php   
    if(isset($_POST['destroy'])){
        session_destroy();
            include_once("test2.php");
        exit;
    }


?>

它还向您展示了如何使用会话

注销用户