PHP会话问题-检查登录
我对PHP比较陌生,但我知道很多。我正在制作一个登录表单,在他们可以进入页面之前,我正在检查他们是否已登录,如果他们没有登录,那么他们将被重定向到登录页面,我正在使用会话。用户每次登录或注册时,都会使用以下方式创建会话:PHP会话问题-检查登录,php,forms,function,session,login,Php,Forms,Function,Session,Login,我对PHP比较陌生,但我知道很多。我正在制作一个登录表单,在他们可以进入页面之前,我正在检查他们是否已登录,如果他们没有登录,那么他们将被重定向到登录页面,我正在使用会话。用户每次登录或注册时,都会使用以下方式创建会话: $_SESSION['username'] = '$username'; 在每个不允许用户访问的页面上,我都包括checklogin.php——我创建了一个文件,其中包含以下代码: <?php function checklogin() { session_start(
$_SESSION['username'] = '$username';
在每个不允许用户访问的页面上,我都包括checklogin.php——我创建了一个文件,其中包含以下代码:
<?php
function checklogin() {
session_start();
if(!isset($_SESSION['myusername'])){
return false;
header('location: login.php');
} else {
return true;
}
}
checklogin(); //checks login
?>
这用于确定标题中显示的内容
所有这些都不起作用,那么我做错了什么?任何帮助都将不胜感激
$_SESSION['username'] = $username;
这是正确的语法使用它。您需要将
会话_start()
放在PHP文件的顶部,在checkLogin()函数之外。会话变量需要使用相同的名称,所以在“username”和“myusername”之间进行选择。如果用户未登录,您还需要交换语句的顺序:
header('location: login.php');
return false;
当函数提前返回时,
header
调用永远不会发生。您也不需要在变量周围加引号,例如,$\u SESSION['username']=$username假设定义了$username
,则code>是正确的。Putsession_start()代码>在页面顶部,而不是在功能中。请稍等,我会尝试。$\u会话['username']!==$_会话['myusername']
…标头仍不工作,并且尚未检查您无法访问的页面。
header('location: login.php');
return false;