如何将变量从php页面传递到另一个页面(窗体)?

问题描述 投票:0回答:1

我工作在两个页面上,第一个页面的表单包含三个字段:姓名,电子邮件和消息)。此页面会将这些数据发送到第二页,该页面将验证那些字段是否符合条件。

如果在第二页上,那些字段中的任何一个都不符合条件,我想重定向到第一页(或第三PHP字段),用先前的信息填写表格,并告诉用户正确地更正字段。

我正在努力将第二页的数据发送到第一页(或第三页)。有人知道这样做的好方法吗?

这是我的代码:

第一页-contato.html

<form action="validate.php" method="POST" name="emailform">
    <div class="form-group">
        <input type="text" id="name" name="nome" placeholder="Type your name">
    </div>
    <div class="form-group">
        <input type="text" id="email" name="email" placeholder="type [email protected] here">
    </div>
    <div class="form-group">
        <textarea class="form-control" cols="30" rows="10" maxlength="300" id="message" name="mensagem" placeholder="Leave your message." ></textarea>
    </div>

    <div class="form-group">
        <input type="submit" name="submit" value="Send message" onclick="alert('Thank you!')" ></form>

第二页-validate.php

if(isset($_POST['nome'])) $nome = $_POST['nome'];
if(isset($_POST['email'])) $email_visitante = $_POST['email'];
if(isset($_POST['mensagem'])) $mensagem = $_POST['mensagem'];

// if does not meet the criteria, redirect to contato.html and update the form with the info
if(empty($nome)){
    Header("location:contato.html"); 
}
if(empty($email_visitante)){
    Header("location:contato.html");
}
if(empty($mensagem)){
    Header("location:contato.html");
}
// check for letters and space only
if (!preg_match("/^[a-zA-Z ]*$/",$nome)) {
    Header("location:contato.html");
}
// check if e-mail address is well-formed
if (!filter_var($email_visitante, FILTER_VALIDATE_EMAIL)) {
    Header("location:contato.php");
}

有人知道该怎么做吗?发送到第三页或重定向到第一页(然后再次填写表格)

php html forms parameter-passing
1个回答
0
投票

您必须使用会话并将数据存储在一个页面中,而在另一页面中进行访问,这是一种小用法

<?php
// page 1
session_start();
// Set session variables
$_SESSION["nome"] = $nome;
$_SESSION["email"] = $email_visitante;
$_SESSION["mensagem"] = $mensagem;

<?php
// page 2|3|N - any other page
session_start();
// Get session variables
$nome = $_SESSION["nome"];
$email_visitante = $_SESSION["email"];
$mensagem = $_SESSION["mensagem"];
© www.soinside.com 2019 - 2024. All rights reserved.