Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我键入打开的url home.php时,我想阻止此操作,除非用户登录_Php - Fatal编程技术网

当我键入打开的url home.php时,我想阻止此操作,除非用户登录

当我键入打开的url home.php时,我想阻止此操作,除非用户登录,php,Php,当用户在地址栏中键入home.phpURL时,它将打开并显示主页 我想阻止用户访问主页,除非他们已登录 以下是我尝试过的: <?php if ( isset( $_POST['btn_submit'] ) ) { $password = $_POST['txt_pass']; if ( $password == '123' ) { header( "Location: home.php" ); //home.php } else {

当用户在地址栏中键入
home.php
URL时,它将打开并显示主页

我想阻止用户访问主页,除非他们已登录

以下是我尝试过的:

<?php

if ( isset( $_POST['btn_submit'] ) ) {
    $password = $_POST['txt_pass'];
    if ( $password == '123' ) {
        header( "Location: home.php" ); //home.php
    } else {
        header( "location: index.php" );
    }
}

如果未设置变量,则可以使用PHP函数限制对页面的访问

乙二醇


您可以创建会话,如果用户登录,则可以:

$_SESSION["user"] = "true" ;
您的代码如下所示:

<?php
if($_SESSION["user"] = "true"){    
   if(isset($_POST['btn_submit']))    
   {           
       $password=$_POST['txt_pass'];           
       if($password=='123')          
       {             
           header("Location: home.php"); //home.php          
       }    
else {               
    header("location: index.php");          
     }    
   }    
}    
else {    
   header("/");    
}     
?>


因此,当用户登录时,请使用会话/cookie并检查该会话/cookie是否存在。如果没有-不要让用户打开页面。使用固定会话还是简单会话更好?从未以这种方式使用常量。如果您已将其存储在会话中。如果(isset($_SESSION['errors']){//Do stuff}或者{exit('No direct script access allowed');}哦,我相信会话或cookie总是在登录后创建的,所以您可以总是在没有任何其他内容的情况下使用会话。@Danielius代码可以在其他地方设置会话,而无需用户登录。例如,会话变量可用于传递错误消息或跟踪站点上的其他内容。最好总是尽可能明确地检查。好吧,我用过这段代码,即使我输入密码,它也会阻止我输入。
$_SESSION["user"] = "true" ;
<?php
if($_SESSION["user"] = "true"){    
   if(isset($_POST['btn_submit']))    
   {           
       $password=$_POST['txt_pass'];           
       if($password=='123')          
       {             
           header("Location: home.php"); //home.php          
       }    
else {               
    header("location: index.php");          
     }    
   }    
}    
else {    
   header("/");    
}     
?>