简单的PHP cookie问题

时间:2011-01-26 15:41:53

标签: php setcookie

为什么不这样做?

以下代码在send.php上

<?php
  $expire=time()+60*60*24*30;
  $name = $_POST['nameField'];
  setcookie("name", $name, $expire);
?>

Cookie的值为空。为什么?我该如何解决这个问题?

新问题:

为什么$ _POST ['nameField']为空?

<form action="/contact/send.php" method="post" id="contactForm">
<input type="text" id="nameField" name="Name" value="<?php if (isset($_COOKIE["name"])){ echo $_COOKIE["name"];} ?>" class="extra_large" />
<input type="submit" class="submit" name="Submit" value="   Send   " />

5 个答案:

答案 0 :(得分:1)

<input type="text" id="nameField" name="Name"

此输入的名称也必须是 nameField

<input type="text" id="nameField" name="nameField"

$ _ GET $ _ POST 变量按名称获取表单输入的值。例如,$_GET['stack']$_POST['stack']获取<input name="stack">的值。

答案 1 :(得分:0)

在HTML中你应该写name =“nameField”,name是发布值的名称而不是id,如果是,上面的代码似乎工作正常

答案 2 :(得分:0)

表单字段的名称是“Name”,id是“nameField”。因此,您需要使用

$ name = $ _POST ['Name'];

或将输入上的名称更改为nameField

答案 3 :(得分:0)

关于cookie:Cookies只会在下一页加载时生效。因此,如果您设置了cookie,则在加载其他页面之前,您无法引用或使用该cookie。这只是他们工作方式的一个怪癖。

关于POST:您需要使用$ _POST ['name_attribute']而不是ID

答案 4 :(得分:0)

你怎么知道它不起作用?

next 页面加载之前,不会设置Cookie(以及$ _COOKIE) - 它必须返回将cookie设置为客户端的标头,然后客户端才会发送请求饼干在里面。

因此,对此脚本将有一个HTTP请求,它将返回标头以设置名称cookie以及任何输出,并且只会是将获得(并填充$ _COOKIE)名称cookie的下一页。 / p>

此外,如上所述,$ _POST []引用表单元素的name属性。您的文本框需要具有name ='nameField',而不仅仅是id。