我有一个注册表单注册.php它提交给自己,如果所有输入都有效,它包括确认.php,我必须将数据保存到表中。
看起来像这样——
注册.php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
include('validate.php');
if($valid) {
require_once ('getDBconnection.php');
include ('confirm.php');
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<!DOCTYPE html >
<html>
// all html code with banner and navigation and form elements.
因此,当我在确认文本后在整个页面下方收到注册确认时,我会看到带有所有横幅和导航以及所有 DIV 内容和表单的表单。
是因为我要确认吗.php?
如果有什么问题,请告诉我,我刚刚开始学习 php。
尝试在indlude确认后添加退出.php以停止使用菜单等执行整个站点。
if($valid) {
require_once ('getDBconnection.php');
include ('confirm.php');
exit();
}
您应该重定向以确认.php,而不是包含它
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
include('validate.php');
if($valid) {
header('Location: confirm.php');
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<!DOCTYPE html >
<html>
// all html code with banner and navigation and form elements.
编辑
当然,这只有在您尚未向浏览器输出任何内容时才有效(IE:echo 'Please fill out the form correctly';
)
您可以重定向页面进行确认.php也可以重定向 如果要包含确认.php而不是你需要在包含('确认.php')行之后放置 exit() 或 die();
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
include('validate.php');
if($valid) {
require_once ('getDBconnection.php');
include ('confirm.php');
exit(); //or you can also use die();
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
这是因为无论是否包含确认.php,enroll.php
都会运行到文件的末尾。
您最有可能提交表单以确认.php,然后重定向用户确认.php