首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将输入的值保存在PHP中,这样用户就不必在单击submit按钮后再次键入这些值了?

如何将输入的值保存在PHP中,这样用户就不必在单击submit按钮后再次键入这些值了?
EN

Stack Overflow用户
提问于 2016-07-22 09:46:40
回答 3查看 69关注 0票数 1

假设我们有一个包含多个输入字段的表单,比如名字、姓氏、电话号码、消息,所有这些都有验证。除了名字之外,我们都输入了名字,因为我们忘记了。我们点击submit发送数据,但是返回时出现了一个错误,因为我们忘记了输入我们的名字。输入的所有信息仍然存在,因此我们不必再次键入它。

我怎么才能继续这么做?下面的代码是从这个网站

代码语言:javascript
复制
    <?php
    if (isset($_POST["submit"])) {
        $name = $_POST['name'];
        $email = $_POST['email'];
        $message = $_POST['message'];
        $human = intval($_POST['human']);
        $from = 'Demo Contact Form'; 
        $to = 'myemail@mail.com'; 
        $subject = 'Message from Contact Demo ';

        $body ="From: $name\n E-Mail: $email\n Message:\n $message";
        // Check if name has been entered
        if (!$_POST['name']) {
            $errName = 'Please enter your name';
        }

        // Check if email has been entered and is valid
        if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            $errEmail = 'Please enter a valid email address';
        }

        //Check if message has been entered
        if (!$_POST['message']) {
            $errMessage = 'Please enter your message';
        }
        //Check if simple anti-bot test is correct
        if ($human !== 5) {
            $errHuman = 'Your anti-spam is incorrect';
        }

// If there are no errors, send the email
if (!$errName && !$errEmail && !$errMessage && !$errHuman) {
    if (mail ($to, $subject, $body, $from)) {
        $result='<div class="alert alert-success">Thank You! I will be in touch</div>';
    } else {
        $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later.</div>';
    }
}
    }
?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-22 10:01:04

您可以使用会话以如下形式存储信息和显示值

PHP

代码语言:javascript
复制
<?php

  session_start();

   $form_name = isset($_SESSION['name']) ? $_SESSION['name'] : '';
   $form_email= isset($_SESSION['email']) ? $_SESSION['email'] : '';
   $form_message= isset($_SESSION['message']) ? $_SESSION['message'] : '';
   $form_human = isset($_SESSION['human ']) ? $_SESSION['human'] : '';

    if (isset($_POST["submit"])) {

        //store information into session

        $_SESSION["name"]=$_POST['name'];
        $_SESSION["email"]=$_POST['email'];
        $_SESSION["message"]=$_POST['message'];
        $_SESSION["human"]=intval($_POST['human']);

        $name = $_POST['name'];
        $email = $_POST['email'];
        $message = $_POST['message'];
        $human = intval($_POST['human']);
        $from = 'Demo Contact Form'; 
        $to = 'myemail@mail.com'; 
        $subject = 'Message from Contact Demo ';

    .....
     ....
if (mail ($to, $subject, $body, $from)) {
        $result='<div class="alert alert-success">Thank You! I will be in touch</div>';

      //remove information from session
      unset($_SESSION["name"]);
      unset($_SESSION["email"]);
      unset($_SESSION["message"]);
      unset($_SESSION["human "]);

    } else {
        $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later.</div>';
    }

HTML

代码语言:javascript
复制
<input type="text" value="<?php echo $form_name; ?>" name="name">
-----
-----
票数 0
EN

Stack Overflow用户

发布于 2016-07-22 09:51:31

您可以回显html表单中的内容。

喜欢,

代码语言:javascript
复制
   <input type="text" name="name1” value="<?=(isset($_POST['name1']) ? $_POST['name1'] : "") ?>
票数 2
EN

Stack Overflow用户

发布于 2016-07-22 09:52:44

使用这个

代码语言:javascript
复制
<input type="text" name="name" value="<?php echo $_POST['name'];?>">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38523280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档