如何在PHP中每个用户会话运行一次代码


How to run code once per user session in PHP?

好的,我搜索了一下,找到了应该怎么做。例如,找到这个问题。但是它不适合我,所以我一定是做错了什么,但如果我知道是什么。

好吧…这是我的小代码块:

<?php
    session_start();
    if(!isset($_SESSION['didit'])) {
        $url = "http://www.mysite.com/clients/vatera.asmx/DoSomething";
        file_get_contents($url);
        $_SESSION['didit'] = true; 
    }
?>

url file_get_contents工作正常。唯一不起作用的是"运行一次"检查。它每次通过页面运行url代码。它应该只在会话中第一次点击页面时运行它。这个块位于紧接<html>标签在我的页面。

我尝试过的其他方法:

if(empty($_SESSION['didit']))
if($_SESSION['didit'] != true)
if($_SESSION['didit'] <> true)

我还尝试移动设置变量到$url赋值之前的行。

这些都不起作用。每次加载页面时,它都会继续运行代码。提前感谢!

当您说"紧跟 <html>标签"时,您的意思是之前,对吗?
session_start()必须出现在任何输出之前

你如何测试你的代码?它只能在真实的浏览器中工作。因此,如果您使用wgetcurl来测试-您的条件代码将始终运行b/c。Curl默认不保留会话cookie。

还要确保您没有在浏览器中阻止cookie