如果$ validForm变量为TRUE,我正在尝试重定向到.php页面。
这是我的代码:
<?php session_start();
require("validationLibrary.php");
$validForm = true;
?>
<html>
<head>
<title>Registration Form - 1 of 2</title>
</head>
<body>
<h1>Registration - Part 1 of 2</h1>
<p>Please fill in all the required information before submitting the information.</p>
<form action="registerFormOne.php" method="post">
<dt>First Name:</dt>
<dd><input type="text" name="firstName" /></dd><br />
<dd>
<?php
if(isset($_POST['firstName'])){
if(!validateRequired($_POST['firstName'])){
$validForm = false;
}
}
?>
</dd><br />
<dt>Last Name:</dt>
<dd><input type="text" name="lastName" /></dd><br />
<dd>
<?php
if(isset($_POST['lastName'])){
if(!validateRequired($_POST['lastName'])){
$validForm = false;
}
}
?>
</dd><br />
<dt>EMail:</dt>
<dd><input type="text" name="email" /></dd><br />
<dd>
<?php
if(isset($_POST['email'])){
if(!validateEmail($_POST['email'])){
$validForm = false;
}
}
?>
</dd><br />
<dt>Age:</dt>
<dd><input type="text" name="age" /></dd><br />
<dd>
<?php
if(isset($_POST['age'])){
if(!validateNumber($_POST['age'])){
$validForm = false;
}
}
?>
</dd><br />
<dt>Date of Birth:</dt>
<dd><input type="text" name="dateOfBirth" /></dd><br />
<dd>
<?php
if(isset($_POST['dateOfBirth'])){
if(!validateRequired($_POST['dateOfBirth'])){
$validForm = false;
}
}
?>
</dd><br />
<dt>Gender:</dt>
<dd>Masculino <input type="radio" value="M" name="gender" checked/>
Femenino <input type="radio" value="F" name="gender" />
</dd>
<dt><input type="submit" /></dt>
<?php
if($validForm = true){
header("Location: registerFormTwo.php");
exit;
}
?>
</form>
</body>
</html>
我收到了这个错误:
警告:无法修改标头信息 - 已在第84行的C:\ XAMPP \ xampp \ htdocs \ registerFormOne.php中发送的标头(输出从C:\ XAMPP \ xampp \ htdocs \ registerFormOne.php:18开始)< / p>
答案 0 :(得分:3)
必须在任何内容之前发送HTTP标头。
这意味着您必须在执行任何输出之前完成对header()
function的调用(引用):
请记住,必须调用
header()
在发送任何实际输出之前, 通过普通的HTML标签,空白 文件中的行,或PHP中的行。
一个非常标准的方法来实现:
header
答案 1 :(得分:2)
在将任何信息打印到页面之前必须发送标题。在回显HTML之前,不得致电header()
。
答案 2 :(得分:0)
分隔表单验证和HTML生成部分。首先验证表单,可选择重定向,否则生成HTML。
答案 3 :(得分:0)
在页面上放置内容后不能使用header()
- 之前必须这样做(输出到客户端的任何字符都会导致它不起作用。页面必须完全空白)
换句话说......
<html>
已经太多了。
在回显任何HTML之前,您应该检查表单输入是否有效,如果是,请使用header()
重定向,否则回显HTML。