使用`curl_setopt`等在另一个文件中设置cookie

时间:2012-01-05 20:32:31

标签: php curl setcookie

我在谷歌搜索试图找到问题的解决方案。

我需要在一个不同的文件中设置一个cookie,我正在尝试curl_setopt,但它不起作用。

任何想法都是用PHP发送在另一个页面中设置cookie的值,如下所示:

    file1.php

    <? //start php
    //at the begining of the file i have
session_start();
header('Content-Type: text/html; charset=utf-8');
//if i set a cookie now it give me an error cause i can not change the header
//but because i need to set a cookie now without leaving this file
//i tryed to set it in file2.php this way:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $SITE_HOME_DIR ."login.php");
// Do a POST
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'email=pok@pok.com'); 
curl_close($ch);
    ///end php
    ?>

    file2.php
    <?
//just set cookie
setcookie("TestCookie", $_POST['email'], time()+3600)
?>

但这不起作用......

有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

您只能使用setcookie()为下一个脚本设置Cookie。没有其他选择。 - cURL向其他页面发送不同的请求,但不能在客户端(浏览器)设置任何cookie。

您的错误在Headers already sent (reference answer)中说明。如果您不能/不会重写您的页面,您可能会或可能不会对上述ob_start()解决方法感到满意。