将 cookie 设置为文件夹内页面的整个域

发布于 2024-10-31 08:58:27 字数 406 浏览 5 评论 0原文

我是饼干之类的初学者。

我需要从诸如 mydomain.com/folder/page.php 之类的文件夹内的页面为整个域设置 cookie。我之前必须这样做,然后我重定向到另一个设置 cookie 的页面 mydomain.com/another.php 。现在的问题是,由于某些数据来自表单和其他内容,我不应该重定向页面,那么我该怎么做呢?

setcookie("name", $name, time()+31536000); 只会为 folder 内的页面设置 cookie,我尝试了 setcookie("name ", $name, time()+31536000,'/','mydomain.com'); 但它不起作用。

I'm a begginer in cookies and stuff like that.

I need to set a cookie to the entire domain from a page inside a folder like mydomain.com/folder/page.php. I had to do this before and I got it done redirecting to another page mydomain.com/another.php which set the cookies. The thing is now I should not redirect the page because of some data coming from a form and other things, so how could I do this?

setcookie("name", $name, time()+31536000); will set the cookies only for the pages inside folder and I tried setcookie("name", $name, time()+31536000,'/','mydomain.com'); but it didn't worked.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

猥琐帝 2024-11-07 08:58:27

此代码绝对有效:

setcookie("name", $value, time()+31536000,'/');

您应该注意 mydomain.comwww.mydomain.comsub.mydomain.com 不同。

除此之外,请注意 $value 的值应该是一个字符串。

This code definitely works:

setcookie("name", $value, time()+31536000,'/');

You should take note that mydomain.com is different from www.mydomain.com or sub.mydomain.com.

Other than this, take note that the value of $value should be a string.

星光不落少年眉 2024-11-07 08:58:27

@SPL_Splinter:确保您在任何输出之前设置cookie。因此,例如:

<?php
$name = 'Some name';

setcookie("name", $name, time() + 31536000, '/', '.mydomain.com');
if (isset($_COOKIE['name'])) 
{
    echo $_COOKIE['name'];
}
?>

更新

来自 http://php.net /manual/en/function.setcookie.php

cookie 可用的域。要使 cookie 在 example.com 的所有子域(包括 example.com 本身)上可用,您可以将其设置为“.example.com”。尽管某些浏览器会接受不带首字母 . 的 cookie,但 RFC 2109 要求将其包含在内。将域设置为“www.example.com”或“.www.example.com”将使 cookie 仅在 www 子域中可用。

@SPL_Splinter: Make sure you're setting the cookie prior to any output. So, for example:

<?php
$name = 'Some name';

setcookie("name", $name, time() + 31536000, '/', '.mydomain.com');
if (isset($_COOKIE['name'])) 
{
    echo $_COOKIE['name'];
}
?>

Update

From http://php.net/manual/en/function.setcookie.php

The domain that the cookie is available to. To make the cookie available on all subdomains of example.com (including example.com itself) then you'd set it to '.example.com'. Although some browsers will accept cookies without the initial ., » RFC 2109 requires it to be included. Setting the domain to 'www.example.com' or '.www.example.com' will make the cookie only available in the www subdomain.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文