Php 是否仅在未登录时运行脚本?
可能重复: 我正在使用一个php页面计数脚本。它统计未登录用户在重定向到注册页面之前可以访问页面的次数 基本上,未登录的用户最多可以查看其他用户的配置文件5次,然后再重定向到注册。但这也发生在登录用户身上,页面计数是计算登录的次数并重定向用户。我只希望在用户未登录时运行页面计数并重定向 有人能告诉我,我需要在代码中输入什么才能让它做到这一点吗? 我什么都试过了,但还是想不出来Php 是否仅在未登录时运行脚本?,php,session,Php,Session,可能重复: 我正在使用一个php页面计数脚本。它统计未登录用户在重定向到注册页面之前可以访问页面的次数 基本上,未登录的用户最多可以查看其他用户的配置文件5次,然后再重定向到注册。但这也发生在登录用户身上,页面计数是计算登录的次数并重定向用户。我只希望在用户未登录时运行页面计数并重定向 有人能告诉我,我需要在代码中输入什么才能让它做到这一点吗? 我什么都试过了,但还是想不出来 <? !session_id() ? session_start() : null; verify_profi
<?
!session_id() ? session_start() : null;
verify_profile_visit_limit();
function verify_profile_visit_limit(){
$free_profiles = array(99999,99998,99997,99996,99995,99994,99993);
if(in_array($_GET["id"], $free_profiles)) return;
if(! isset($_SESSION["page_access_count"])){
$_SESSION["page_access_count"] = 1;
}
$_SESSION["page_access_count"]++;
if($_SESSION["page_access_count"] > 6){
header("Location: limit.php");
exit();
}
}
?>
在调用函数verify\u profile\u visit\u limit之前,您应该有如下内容:
if(!isset($_SESSION['logged_in']) && empty($_SESSION['logged_in'])){
verify_profile_visit_limit();
}
为此,您需要在用户登录时设置一个标志变量,如$\u SESSION['logged\u in'],以检查用户是否登录
因此,只有在用户未登录时,验证配置文件访问限制功能才会运行
希望这有帮助。我不会使用$\u GET here-/index.php?id=99999您没有在会话中存储登录状态?@IRelephant我不知道这是怎么回事。!会话号?会话启动:空;除非我弄错了,否则如果在会话开始之前调用,会话id将始终返回false,所以它看起来有点多余。你是从哪里得到这行代码的?谢谢你,但它似乎不起作用,除非我写错了?我有这样的想法:当用户登录时,程序需要更新会话,以便程序的其余部分知道用户何时登录或未登录。因此,在您的登录脚本中添加以下代码行:$\u SESSION[logged\u in']=true;