我将cookie值和名称设置为用户可以在表单中输入的值?我用什么来在我的第二页上显示该值? (我不能不为此使用cookies,所以虽然可能有更聪明的方法来做到这一点,但我想知道如何使用cookies !!)谢谢!
<?php
setcookie($color, 'color');
setcookie($name, 'name');
?>
<?php
echo "<form action=\"form_data.php\" method=\"post\">";
echo "favorite color:<input type=\"text\" name=\"color\" size=\"20\"><br/>";
echo "name:<input type=\"text\" name=\"name\" size=\"20\"><br/>";
echo "<input type=\"submit\" value=\"Submit\" />";
echo "<br /><input type=\"hidden\" name=\"submitted\" value=\"true\" />";
?>
form_data上的数据:
<?php
echo "<b>fav color:</b>".$_COOKIE['color'];
echo "<b>name:</b>".$_COOKIE['name'];
?>
答案 0 :(得分:5)
首先,您有表格:
<?php
echo "<form action=\"form_data.php\" method=\"post\">";
echo "favorite color:<input type=\"text\" name=\"color\" size=\"20\"><br/>";
echo "name:<input type=\"text\" name=\"name\" size=\"20\"><br/>";
echo "<input type=\"submit\" value=\"Submit\" />";
echo "<br /><input type=\"hidden\" name=\"submitted\" value=\"true\" />";
?>
然后在form_data.php中:
<?php
// set the cookie with the submitted user data
setcookie('color',$_POST['color']);
setcookie('name', $_POST['name']);
echo "<b>fav color:</b>".$_COOKIE['color'];
echo "<b>name:</b>".$_COOKIE['name'];
?>
但是,您会注意到$ _COOKIE变量尚不可用...如果您重新加载该页面,它们将会出现。
为了适应cookie的这种行为,您可以在form_data.php中设置重定向:
<?php
if (!empty($_POST)) {
// set the cookie with the submitted user data
setcookie('color',$_POST['color']);
setcookie('name', $_POST['name']);
// redirect the user to final landing page so cookie info is available
header("Location:form_data.php");
} else {
echo "<b>fav color:</b>".$_COOKIE['color'];
echo "<b>name:</b>".$_COOKIE['name'];
}
?>
您可以将它们重定向到任何合适的位置。希望这有帮助,祝你好运!
答案 1 :(得分:2)
你的问题的功能setcookie失败了。 setcookie($ name,$ value);
例: setcookie('color','red');
echo $ _COOKIE ['color']; // outout:red
答案 2 :(得分:0)
我不知道您为什么要使用cookies.as我知道您可以使用会话传递用户的信息,如下所示: 这是为我工作的完整示例
<?php
session_start();
if(array_key_exists('sub',$_POST))
$_SESSION['name']=$_POST['name'];
?>
<html>
<form method="post">
<input type='text' name="name">
<input type='submit' name='sub' value='send my info'>
</html>
在另一页中只使用这个:
<?php
session_start();
$r=$_SESSION['name'];
echo $r;
?>
记得调用session_start();在您希望使用会话的每个页面上
答案 3 :(得分:0)
任何人都可以解释baraboom所写的内容:
但是,您会注意到$ _COOKIE变量不可用 但是......如果你重新加载那个页面,它们就会出现。
<?php
if (!empty($_POST)) {
// set the cookie with the submitted user data
setcookie('color',$_POST['color']);
setcookie('name', $_POST['name']);
// redirect the user to final landing page so cookie info is available
header("Location:form_data.php");
} else {
echo "<b>fav color:</b>".$_COOKIE['color'];
echo "<b>name:</b>".$_COOKIE['name'];
}
?>
试图理解为什么会这样,因为用户被重定向到提交页面。