0

好的,我四处搜索,发现应该如何完成。例如,找到这个问题。但是它对我不起作用,所以我一定做错了什么,但如果我知道的话,那就太糟糕了。

好的......这是我的小代码块:

<?php
    session_start();

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

网址 file_get_contents一切正常。唯一不起作用的是“运行一次”检查。它每次都在页面中运行url代码。它应该只在您第一次在会话中点击页面时运行。这个块紧跟<html>在我页面中的标签之后。

我尝试过的其他一些事情:

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

我还尝试将设置变量的行移动到$url分配之前。

这些都没有奏效。每次加载页面时,它都会继续运行代码。提前致谢!

4

2 回答 2

2

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

于 2011-12-07T19:47:01.793 回答
1

你如何测试你的代码?它只能在真实的浏览器中正常工作。因此,如果您使用wgetorcurl进行测试 - 您的条件代码将始终运行 b/c wget & curl 默认情况下不保留会话 cookie。

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

于 2011-12-07T19:34:16.210 回答