How to set cookies

时间:2017-01-16 作者:Francesco Martelli

我需要设置1个cookie,保存从表单发送的数据。

我看到我必须将setcookie()挂接到“init”。没关系。

add_action( \'init\', \'cookie_function\');
我的“cookie\\u函数”将包含$cookieName、$cookieValue、$time、COOKIEPATH、COOKIEDOMAIN。

如果我需要setcookie(\'test\',$\\u POST[\'test\')之类的东西,我该怎么称呼:

cookie_function() //and where do I pass parameters?

setcookie() //and this function will be related to my cookie_function()?

2 个回复
SO网友:CK MacLeod

您可以像使用任何其他函数一样使用setcookie(),参数如Codex中所述。

如何在表单中使用它通常取决于需要如何以及何时访问$\\u COOKIE变量。

如果希望DOM中的更改立即注册并保持不变,一种常见的方法是使用Javascript/jQuery函数,其效果在将使用$\\u COOKIE变量的PHP函数中重复。cookie通常也会在同一个脚本中设置或更新,通常借助jquery cookie或js cookie。

SO网友:prosti

cookie是名称和值对的简化。使用Cookie在客户端存储数据。

在PHP中,您可以这样定义cookie:

setcookie( name, value, expire, path, domain, secure, httponly);
Cookie可以通过JavaScript被盗,但可能不会。视情况而定。

httponly标志如果设置为true,则表示不能通过JavaScript更改Cookie。

安全标志的目的是防止HTTP上的明文cookie。通过设置安全标志,浏览器将阻止通过未加密通道传输cookie。

其他参数(如域和路径)是约束,可以精确地设置cookie应该在哪里工作。

例如,将cookie域设置为www.example.com 仅表示确切的域www.example.com 将匹配,而.example.com 也将匹配任何子域(forum.example.com, blog.example.com).

路径参数的默认值/ 意味着每个请求都将获得cookie,而/forum/ 将cookie限制为/forum 路径

expire标志通常设置为1周或2周,这意味着cookie将持续1周或2周。

我看到我必须将setcookie()挂接到“init”。没关系。

$\\u POST[“测试”]

您不需要使用“init”钩子来设置cookie。这不是必须的。无论在何处使用代码中的表单数据,只要使用$_POST[\'test\']$_GET[\'test\'] 基于表单类型。此外,无需提及,您需要首先检查这些变量。

稍后,您可以使用类似的方法来检查cookie是否存在。

if ( isset( $_COOKIE[\'name\'] ) ) ...

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请