【问题标题】:Post Form DATA to another page after PHP ValidationPHP 验证后将表单数据发布到另一个页面
【发布时间】:2014-10-16 05:50:36
【问题描述】:

我在验证和将数据发布到另一个页面时遇到了这个问题。

这是我的表格:

注册.php

<form id="regForm" action="<?php echo htmlspecialchars($_SERVER["submit.php"]);?>" method="post" name="regForm">
    <label for="fname">First Name:</label><input name="fname" type="text" size="25" maxlength="35" value="<?php if(isset($_POST['fname'])){echo $_POST['fname'];}?>"/><br/>
    <label for="mdname">Middle initial:</label><input name="mdname" type="text" size="10" maxlength="35" value="<?php if(isset($_POST['mdname'])){echo $_POST['mdname'];}?>"/><br/>
    <label for="lname">Last Name:</label><input name="lname" type="text" size="25" maxlength="35" value="<?php if(isset($_POST['lname'])){echo $_POST['lname'];}?>"/><br/>
    <br/>
    <label>&nbsp;</label><input type="submit" name="Signup" class="formButton" value="Signup" /></form>

这是我的 submit.php,它将验证 signup.html 输入

提交.php

function msg($status,$txt)
{
    return '{"status":'.$status.',"txt":"'.$txt.'"}';
}

// we check if everything is filled in and perform checks
//check if fname is empty
if(!$_POST['fname'])
{
    die(msg(0,"<p>Please enter your first name.</p>"));
}
//check if lname is empty
if(!$_POST['lname'])
{
    die(msg(0,"<p>Please enter your last name.</p>"));
}

现在,我的问题是,在我的“submit.php”文件中,我想知道在表单字段验证之后要放置哪些代码,这将使我能够将输入数据发布到另一个页面,因为我计划将其设为两页的注册表单。假设我的下一页是signup-2.html

如何将验证后的数据发布到下一页?我知道如何在下一页上检索发布的数据,例如使用 Session 或 Echo $_POST 数据,但是,我的主要问题是....如何让表单在我的submit.php 文件中的验证消息之后发布数据?

【问题讨论】:

  • 将它们放入signup2.php形式的隐藏变量中
  • 将文件名从Signup.html更改为Signup.php
  • 感谢您的回复先生。但是,我对在下一页中填充发布的数据有一个好主意,但是我的主要问题在于我的 submit.php 文件。
  • 在我的 submit.php 文件中的以下代码后面应该放什么 "if(!$_POST['lname']) { die(msg(0,"

    请输入您的姓氏.

    ")); } "
  • 在die() 命令之后放置任何内容是没有意义的,因为这会杀死脚本。

标签: php html forms


【解决方案1】:

使用标题:

header("Location: your page url?fname=$_POST['fname']&lname=$_POST['lname']");

但在此之前不要回显或打印任何内容,否则它不会重定向到该页面。

您可以像这样使用目标页面上的数据:

$_GET['fname']

示例:

提交.php

function msg($status,$txt)
{
    return '{"status":'.$status.',"txt":"'.$txt.'"}';
}

// we check if everything is filled in and perform checks
//check if fname is empty
if(!$_POST['fname'])
{
    die(msg(0,"<p>Please enter your first name.</p>"));
}
//check if lname is empty
if(!$_POST['lname'])
{
    die(msg(0,"<p>Please enter your last name.</p>"));
}

header('Location:download.php?fname='.$_POST['fname']."&lname=".$_POST['lname']);

view.php

<html>
<body>
<form action="submit.php" method="post">
<input type='text' id="fname" name="fname"/>
<input type='text' id="lname" name="lname"/>
<input type="submit" id="button" value="submit"/>
</form>

</body>


</html>

download.php

<?php
echo "First Name........".$_GET['fname'];

把这三个文件放在同一个目录下,运行view.php。你会没事的。

【讨论】:

  • 这会将您的 $_POST 参数更改为 $_GET。
  • 请检查我的“submit.php”代码并告诉我在哪里放置标头位置,以便在验证后将数据发布到下一页。
  • 如果所有东西都被填满,你想得到这个,所以把它放在第二个 if 和 see.one 总是使用 isset() 方法检查值。
  • 感谢您的回复,Suchi。但是,我真的不明白你要解释什么。可以再详细一点吗?谢谢!
  • function msg($status,$txt) { return '{"status":'.$status.',"txt":"'.$txt.'"}'; } // 我们检查是否所有内容都已填写并执行检查 // 检查 fname 是否为空 if(!$_POST['fname']) { die(msg(0,"

    请输入您的名字。

    ")); } //检查 lname 是否为空 if(!$_POST['lname']) { die(msg(0,"

    请输入您的姓氏。

    ")); } header("位置:你的页面地址?fname=$_POST['fname']&lname=$_POST['lname']");然后在您的重定向页面上使用 $_GET 方法访问变量。
猜你喜欢
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 2015-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多