【问题标题】:Bluehost (or PHP Script) Issue With CookiesCookie 的 Bluehost(或 PHP 脚本)问题
【发布时间】:2011-12-08 18:25:26
【问题描述】:

我遇到了 Cookie 最奇怪的问题。我编写了一些 PHP 脚本,使用令牌来识别访问者,以便“他/她”可以正确使用网站。

Token 系统在本地开发机器(windoze+ZendApache)上运行良好,但在 Bluehost 上的生产服务器上无法运行。

在设置 cookie 的有效期为 60 天时,我使用“/”作为路径,使用“mydomain.com”作为域。我可以在浏览器上正确查看 cookie,并且可以确认与数据库中的值相比,这些值设置正确。

每次刷新页面时,服务器都不会获取 cookie 并创建一个新令牌并将其发送回浏览器并再次在数据库中创建新记录。新的 cookie 再次与最新记录匹配,但下次我刷新时,又是同样的事情。无法维护令牌,因此无法浏览网站。

知道为什么会这样吗?有没有可能我错过了一些设置?

我已经在最新的 Firefox、Opera、Safari 和 Chrome 上对其进行了测试。

谢谢。

编辑:

这是一个与 PHP 和 Bluehost 相关的问题,我以序列化格式在 cookie 的值上存储了 3、40 个字符的字符串。 unserialize() 函数由于某种原因在 Bluehost 上没有执行,但在我的开发机器上运行良好。所以我将存储的值更改为 40chars.40chars.40chars 并用分隔符“。”分解该值。获取 3 个字符串。

再次感谢。

【问题讨论】:

    标签: php apache cookies bluehost


    【解决方案1】:

    你应该使用

    .mydomain.com
    

    而不是

    mydomain.com
    

    例如:

    setcookie("MyCookie", $value, time()+60*24*3600, "/", ".mydomain.com", 1);
    

    【讨论】:

    • 它添加了 . (点)本身在前面。我想到了这一点并尝试了它,但问题仍然存在。浏览器似乎没有发送带有令牌数据的 cookie。如果我 print_r $_REQUEST,我可以看到所有其他 cookie,除了持有令牌值的那个。
    • 请给我们一些代码示例。你如何获取/设置你提到的cookie?你如何定义令牌?等
    • 好吧,我刚刚发现 bluehost 不太喜欢 unserialize() 函数。我将 3 个值存储在序列化的令牌 cookie 中,但可以在下次刷新时获取这些值。我正在重写令牌系统脚本以使用 implode() 和 explode() 来设置和获取 cookie 数据。谢谢你花时间回答。 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多