-1

我怎么知道页面真的是在浏览器中打开的,还是从脚本或 src="xxx" 中获取的?

<?php 
session_start();
if(!isset($_SESSION['count'])){
    $_SESSION['count']=0;
}

// I don't want to
// if(open in brower){
    $_SESSION['count']++;
// }
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
    $.ajax({
        url:'index.php',
        type:'GET',
        data:{},
        success:function(){}
    });
</script>
<?php 
    echo $_SESSION['count'] ; // the result now is 1,3,5,... for every reload
    // I want to get the result 1,2,3,4... for every reload , how to check the page is really open in brower? not run in ajax or get ?

?>
4

1 回答 1

1

这个特定示例的一个简单解决方案是将一些数据传递给 ajax 请求,并检查数据是否不存在以增加会话计数。

<?php 
session_start();
if(!isset($_SESSION['count'])){
    $_SESSION['count']=0;
}

if(!isset($_GET['dontcount'])){
    $_SESSION['count']++;
}
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
    $.ajax({
        url:'index.php',
        type:'GET',
        data:{'dontcount',1},
        success:function(){}
    });
</script>
<?php 
    echo $_SESSION['count'];

?>
于 2013-10-22T11:56:23.270 回答