将$\u会话值从外部PHP文件获取到源文件中
我有两个文件: 第一个是一个名为index.php的php文件,该文件对用户可见,并包含一个HTML表单将$\u会话值从外部PHP文件获取到源文件中,php,Php,我有两个文件: 第一个是一个名为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" /> .... &l
<?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中
<?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
时显示无效的电子邮件,我认为这是预期的目标
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>
<?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))
哪里有代码>应该在filter\u var
中的f
前面!筛选变量
N.B.:我注意到session_start()代码>不会为您的index.php
文件显示。如果您还没有这样做,则必须将其包含在它中,并包含在使用会话的所有文件中
关于筛选\u验证\u电子邮件筛选:
检查是否有效,而当前方法检查是否有效
是一个否定一元运算符
有关逻辑运算符的列表,请访问PHP.net网站:
和语言操作员:
您的create\u profile.php
文件顶部是否有session\u start()
?什么不起作用-重定向或显示错误?您是否调试过这个,检查是否设置了invalidEmail,是否执行过头重定向,以及是否触发了第一个代码中的if
条件?我更新了-我相信这就是您希望实现的目标@user3173207@Fred-谢谢你,成功了