在PHP中使类型索引表单字段粘贴的正确语法

时间:2014-12-02 01:14:52

标签: php forms sticky

我必须在函数中包含一些form type = index字段,例如。名字,姓氏。该表单使用单独的handle.php页面。我无法弄清楚如何使其变粘(如果我刷新页面,则保留输入的最后一个值)。因为如果输入错误,我会将页面刷新回表单,并希望保留最后输入字段条目。我尝试了$ _SESSION [' fname']和$ _POST [' fname']。似乎都没有效果......

这没有粘性

echo "<tr><td>First Name:<input type='text' name='fname' value=''></td>";

如果不是已经在php块中,我认为这是有效的

<td>First Name:<input type='text' name='fname' placeholder='First Name' value="<?php if(isset($_SESSION['fname'])) echo ;?>" ></td>

1 个答案:

答案 0 :(得分:0)

你很亲密!

您的示例缺少echo的参数。试试这个:

<?php if(isset($_SESSION['fname'])) echo $_SESSION['fname'];?>

但是,默认情况下,表单永远不会提交给$ _SESSION。

如果你有<form action='handle.php' method='get'>你的变量将在$ _GET超全局中,如果你有method = post,它们在$ _POST中可用,即`$ _POST ['fname']

你必须手动把东西放在会话中,即

$_SESSION['fname'] = $_POST['fname'](我们只是将fname后的值复制到会话中)

通常对于验证表单这样的事情,最好使用$ _REQUEST,$ _POST或$ _GET,而不是将变量放在$ _SESSION中。 $ _SESSION因为记住了所有内容而变得拥挤,并且通常不需要记住表单验证超过1个请求。

如果使用浏览器刷新页面,则不会记住

$ _ POST变量。如果表单(提交)发送到服务器,则$ _POST变量将仅发布。如果您尝试记住它们以进行浏览器刷新,则必须手动将变量复制到会话中,如上例所示。

如果您只想在下一页访问变量,它们将在$ _POST或$ _GET超全局中提供,具体取决于您的表单。

如果要将它们传递回表单页面,执行此操作的方法取决于您的重定向方式。您需要发布它们或将它们添加到网址,然后在超级全局的表单页面中访问它们。