我有两个文件:
第一个是一个称为index.php的PHP文件 - 用户可见并包含HTML表单。
<?php
ob_start();
session_start();
?>
<form method="post" action="create_profile.php">
....
<input id="personal_email" name="personal_email" tabindex="auto" type="text" />
....
<input name="submit" type="submit" value="Submit">
</form>
<?php
//Get value from create_profile.php
if(empty($_POST) === false) {
$invalidEmail = $_SESSION['invalidEmail'];
echo $invalidEmail;
}
?>
第二个文件create_profile.php流程上面的文件index.php,基本上它检查表单并查看是否有任何错误 - 如果有任何错误,则应在index.php
中显示错误<?php
....
if (filter_var($personal_email, FILTER_VALIDATE_EMAIL)) {
$invalidEmail = 'The email address is invalid or missing' . '<br/>';
}
...
//Send errors to index.php
$_SESSION['invalidEmail'] = $invalidEmail;
header('Location: create_profile.php');
..
?>
问题是,当我从index.php提交表单到create_profile.php时 - create_profile.php的错误未在index.php
中显示我没有在错误日志中遇到任何错误!
尝试此逻辑,它将在返回到index.php
时显示无效的电子邮件,我认为这是预期的目标。
index.php
<?php
ob_start();
session_start();
if(isset($_SESSION['invalidEmail'])) {
$invalidEmail = $_SESSION['invalidEmail'];
echo $invalidEmail;
}
?>
<form method="post" action="create_profile.php">
<input id="personal_email" name="personal_email" tabindex="auto" type="text" />
<input name="submit" type="submit" value="Submit">
</form>
create_profile.php
<?php
// ob_start(); // uncomment if needed
session_start();
$personal_email = $_POST['personal_email'];
$_SESSION['invalidEmail'] = $personal_email;
if (!filter_var($personal_email, FILTER_VALIDATE_EMAIL)) {
$invalidEmail = 'The email address is invalid or missing' . '<br/>';
echo $personal_email;
echo "<hr>";
}
//Send errors to index.php
echo "";
// header('Location: create_profile.php');
?>
为什么"无效"不出现
由于此行,下一页上的错误消息未出现:
if ( filter_var($personal_email, FILTER_VALIDATE_EMAIL))
---^
应该是:
if (!filter_var($personal_email, FILTER_VALIDATE_EMAIL))
!
应该在filter_var
中的f
的前面是!filter_var
n.b。:我注意到您的 关于 有关逻辑运营商列表,请访问php.net网站: 和语言操作员:index.php
文件未显示session_start();
。它必须包括在其中,如果您还没有这样做,并且内部 ass> assesions。FILTER_VALIDATE_EMAIL
滤镜:!
检查if NOT
有效的检查,而当前方法正在检查it IS
是否有效。!
是否定的单操作员