如何记住 PHP 表单中的文本输入?

Posted

技术标签:

【中文标题】如何记住 PHP 表单中的文本输入?【英文标题】:How to remember text input in PHP Forms? 【发布时间】:2013-07-02 01:36:17 【问题描述】:

我是 php 新手。请帮助我在返回表单后

我有一个注册页面,想将文本输入保存在数据库中,但如果数据库中存在文本输入,则返回注册页面但记住文本输入。 请帮帮我!

【问题讨论】:

你无法“记住”它。当您输出表单时,请执行 SELECT 查询以检索值并将其设为默认值 (<input name=... value=...>) 欢迎使用 ***。这不是***的工作方式。您需要提供您尝试过但失败的东西,以便我们可以帮助您(没有人会解决您的问题,即做您的工作)。另请记住,您不应该发布整个代码。识别有问题的部分,省略不相关的部分等,以获得更好更快的答案。实际上,还有很多话要说,请阅读 the help section 以更好地了解 SO 的工作原理。 请为我解释一下该怎么做? 不要重定向回注册页面。只显示错误 【参考方案1】:

在会话中保存数据。

打电话

session_start();

在 form.php 和你的 target.php 中。在 target.php 中解析所有 $_POST/$_GET 参数并将它们存储在会话中。

$_SESSION['user_name'] = check_for_valid_name($_POST['user_name']);

在 form.php 中只需将输入默认设置为您的会话变量:

<input name='user_name' value='<?= $_SESSION['user_name'] ?>' />

编辑:在form.php中你也可以使用:

value='<?php isset($_SESSION['user_name'])?(echo $_SESSION['user_name']):(echo "") ?>'

摆脱未知索引/变量的警告/通知。

【讨论】:

应该是 session_start() 而不是 start_session()【参考方案2】:

使用 PHP 会话

<?php 
session_start(); 
$_SESSION['name'] = "YourSession"; 
// ...
?>

【讨论】:

【参考方案3】:

您可以将详细信息存储在会话变量中。不过,您必须学习使用会话。

【讨论】:

【参考方案4】:

像这样定义你的输入字段。这将在提交后保留值

 <input id="user_firstname" type="text" name="user_firstname" value=<?= $_POST['user_firstmane'] ?> >

【讨论】:

我这样做了,但我有一个通知,我在下面写下这个通知: 注意:未定义的索引:inmputnamein C:\wamp\www\Final\Template\Register1.php 在第 124 行调用堆栈#TimeMemoryFunctionLocation 10.0012148864main( )..\Register1.php:0 "/> 这不是错误..请忽略它。或在这里查看dmxzone.com/go/13811/php-getting-notice-undefined-index【参考方案5】:
<form action="action.php" method="post">
<input type="text" name="inmputname" value="<?php echo $_POST['inmputname']?>">
<input type="submit">
</form>

希望对你有帮助

【讨论】:

这会在第一次渲染页面时产生大量警告,既慢又丑 我这样做了,但我有一个通知,我在下面写这个通知: 注意:未定义索引:inmputnamein C:\wamp\www\Final\Template\Register1.php 在第 124 行调用堆栈#TimeMemoryFunctionLocation 10.0012148864main( )..\Register1.php:0 "/>【参考方案6】:

试试这个,

<?php
$name = NULL;
if(isset($_POST['submit']))
$name=$_POST['inputname'];

?>

在你的表格中,

<form action="action.php" method="post">
<input type="text" name="inputname" value="<?php echo $name;?>">
<input type="submit">
</form>

【讨论】:

只需在if() 内尝试var_dump($_POST); 或发布您的代码,否则我们会得到什么错误 Register1.php :
Register2.php: $name = NULL; var_dump($_POST); if(isset($_POST['submit'])) $name=$_REQUEST['name'];
我想如果字段用户名重复,标头到 register1.php 并保留文本输入

以上是关于如何记住 PHP 表单中的文本输入?的主要内容,如果未能解决你的问题,请参考以下文章

如何让文本框记住它的值

用户开始输入时如何记住 UITextView 中的文本属性

如何在 PHP 中“记住”选择的表单值?

如何使输入文本字段用*替换任何字符? [复制]

如何让表单元素“记住”选择?

PHP实现简单的文本提交表单(可放入图片)