如何记住 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 表单中的文本输入?的主要内容,如果未能解决你的问题,请参考以下文章