【问题标题】:count page hits and redirect?计算页面点击和重定向?
【发布时间】:2013-01-22 14:41:18
【问题描述】:

我有这段代码,我试图用它来计算在将用户重定向到另一个页面之前页面的点击次数。

这个想法是非登录用户在被重定向到注册页面之前只能访问 profile.php 6 次,但它也为登录用户执行此操作,我希望登录用户能够访问profile.php 任意多次。

谁能告诉我哪里出错了。

例如,如果 session 为空,则将页面访问限制为 6 次,但如果 session = 已登录,则允许无限制访问。

<?
!session_id() ? session_start() : null;

if(!isset($_SESSION['logged_in']) && empty($_SESSION['logged_in'])){
    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();
    }
}

?>

【问题讨论】:

    标签: php session redirect count


    【解决方案1】:

    问题出在这里:

    if(!isset($_SESSION['logged_in']) &amp;&amp; empty($_SESSION['logged_in']))

    $_SESSION['logged_in'] 永远不能未设置为空。您需要在此处使用OR 运算符。

    【讨论】:

    • 其实只需要empty()
    • 这不起作用。它仍然做同样的事情。你能解释一下我需要做什么吗?谢谢
    • @TommyLincoln:您需要在 if 子句中将 &amp;&amp; 转换为 ||。如果您仍然遇到问题,我建议您发送var_dump($_SESSION) 以确保会话设置符合您的预期。
    猜你喜欢
    • 2015-08-12
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多