PHP会话和Cookie问题

时间:2013-12-10 21:51:01

标签: php session cookies

我想在cookie或会话中保存并记住多个单词作为字符串,并在html表中输入的值字段中重新显示它们。

例如,

说我想在$_SESSION['Customer']

中存储“John Smith”
setcookie("Customer", "$CUSTOMER", $time);

然后重新显示p标签中的完整字符串。但是当我想在输入字段中显示完整内容时,这样:

<input type="text" name="customer" value= <?php echo $_COOKIE['Customer'];?>

<input type="text" name="customer" value= <?php echo $_SESSION['Customer'];?>

这些显示了第一个字,但就是全部。知道为什么它不会显示这两个词吗?

你最近检查过一辆租车吗?你是加里科尔?

顾客:加里(应该是加里科尔) 车名:福特(应福特福克斯)

也许是桌面问题?

2 个答案:

答案 0 :(得分:1)

也许有两件事:

  1. 无效的HTML&amp; PHP:缺少"<以及>。有效期是:

    <input type="text" name="customer" value="<?php echo $_COOKIE['Customer']; ?>" />
    

    请确保html编码该值!,即:

    <?php echo htmlspecialchars($_COOKIE['Customer']); ?>
    

    或短标签:

    <?= htmlspecialchars($_COOKIE['Customer']) ?>
    
  2. 设置Cookie后,它不会更新$_COOKIE,因此您无法立即访问它。它在下一页加载时存在于$_COOKIE中。或者你可以直接自己添加:

    $_COOKIE['Customer'] = "$CUSTOMER";
    setcookie("Customer", $_COOKIE['Customer'], $time);
    
  3. 当然,setcookie()不会影响$_SESSION

答案 1 :(得分:0)

这对我有用:

<?php
$CUSTOMER = "John Smith";
setcookie("Customer", "$CUSTOMER", time()+3600);
echo $_COOKIE['Customer']; // check cookie ;-)
?>
<form>
<input type="text" name="customer" value="<?php echo $_COOKIE['Customer']; ?>">
</form>