PHP file_get_contents不检索cookie

时间:2014-01-03 11:34:56

标签: php cookies curl file-get-contents

我已经阅读了一些关于这个问题的话题......有些人说使用cURL(虽然我不知道怎么做......)

我有两个文件,index.php和response.php。

的index.php

/* After the body tag, in the middle of screen */
<?php echo file_get_contents('http://localhost/football/classes/response.php?type=clients'); ?>

此代码完美运行,直到我意识到我需要检索相同的信息,但是在页面加载时使用cookie。

我的旧的response.php 文件是这样的:

switch($_REQUEST['type']){
    case 'clients':
        $content = $load->clients();
        echo $content;
        break;
}

但是现在我需要在函数clients()中使用相同的代码但是使用参数。这个参数是一个cookie。

switch($_REQUEST['type']){
    case 'clients':
        $display = 0;
        if(isset($_COOKIE['display'])){ 
            $display = 1;
        }
        $content = $load->clients($display);
        echo $content;
        break;
}

我总是收到$display = 0;因为PHP没有检测到cookie。虽然,此Cookie已在Chrome Cookie中初始化。即使我做var_dump($_COOKIE);我仍然没有得到任何结果。

我知道这个问题是因为file_get_contents()我该如何解决这个问题?

感谢。

编辑:尝试了@Martin解决方案,但没有成功。 file_get_contents receive cookies

<?php 
    $ckfile = tempnam ("/tmp", "CURLCOOKIE");
    $ch = curl_init ("http://localhost/football/index.php");
    curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec ($ch);

    $ch = curl_init ("http://localhost/football/classes/response.php?type=clients");
    curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec ($ch);

    echo $output;
?>

页面继续循环而不会停止。它没有显示任何内容。

1 个答案:

答案 0 :(得分:1)

超级全局$_COOKIE仅包含访问者在请求您的网页时发送到您的网络服务器的Cookie,它将永远不会包含其他服务器在加载其他网页时可能发送给您的应用程序的Cookie。 / p>

但您仍然可以使用$http_response_header检索所有响应标头。

PHP文档中的更多信息:$http_response_header