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

我是 php 新手。请帮助我在返回表单后如何记住 PHP 表单中的文本输入?

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

【问题讨论】:

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

标签: php mysql textinput


【解决方案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.0012148864{main}( )..\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.0012148864{main}( )..\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 并保留文本输入
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多