4

我正在我的 Mac 笔记本上开发,我使用 MAMP。我正在尝试使用 PHP 设置 cookie,但我不能。我已经离开了域,我尝试使用“\”作为域。没运气。

setcookie("username", "George", false, "/", false);
setcookie("name","Joe");

我一定遗漏了一些明显的东西。我需要一个快速简单的解决方案。有吗?

我没有做任何花哨的事情,只是加载(通过 MAMP)页面 http://localhost:8888/MAMP/lynn/setcookie.php

该脚本的顶部有 setcookie 代码,甚至在编写 HTML 标记之前。(尽管我也在 BODY 中尝试过)。我在各种浏览器中加载页面,然后打开 cookie 列表。我知道浏览器接受 cookie,因为我在列表中看到了当前的。只是不是我的新的。

4

3 回答 3

8

从文档:

setcookie() 定义了一个 cookie 与其余的 HTTP 标头一起发送。与其他标头一样,必须在脚本的任何输出之前发送 cookie(这是协议限制)。这要求您在任何输出之前调用此函数,包括和标记以及任何空格。

是这样吗?

编辑:

您能看到服务器发送的 cookie,例如通过使用 Firefox 扩展Tamper Data或 telnet 吗?你能看到它在下一个请求中被浏览器发回吗?setcookie() 的返回值是多少?它不适用于所有浏览器,还是仅适用于某些浏览器?

于 2009-03-10T19:12:31.523 回答
1
<?php
ob_start();
if (isset($_COOKIE['test'])) {
    echo 'cookie is fine<br>';
    print_r($_COOKIE);
} else {
    setcookie('test', 'cookie test content', time()+3600);  /* expire in 1 hour */
    echo 'Trying to set cookie. Reload page plz';    
}

试试这个。

于 2009-03-10T22:06:14.650 回答
0

取出“localhost”并只使用一个空白字符串对我有用。

于 2010-07-08T00:47:54.177 回答