我正在尝试存储会话值,并检查字段是否已填充。继续执行表单功能,否则返回注册表单。
但我的底线出现了错误。
if(($_SESSION['name'] == '') && ($_SESSION['email'] == '') && ($_SESSION['phone'] == ''))
下面是我在表单页面中使用的完整php代码。
<?php
session_start();
if (isset($_POST['signup']))
{
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['phone'] = $_POST['phone'];
}
if(($_SESSION['name'] == '') && ($_SESSION['email'] == '') && ($_SESSION['phone'] == ''))
{
exit();
}
else
{
header('Location : signup-form.php');
exit();
}
?>
这是最好的
<?php
session_start();
if (isset($_POST['signup']))
{
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['phone'] = $_POST['phone'];
}
if(!isset($_SESSION['name'])){ // if name is empty
exit('Type your name.');
}elseif(!isset($_SESSION['email'])){ // if email is empty
exit('Type your email.');
}elseif(!isset($_SESSION['phone'])){ // if phone number is empty
exit('Type your phone.');
}else{ // ohh look, they're all fine
header('Location : signup-form.php');
exit();
}
?>
使用标头时,请从代码中删除空格,然后使用isset()
检查是否设置了会话
<?php
session_start();
if (isset($_POST['signup']))
{
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['phone'] = $_POST['phone'];
}
if(!isset($_SESSION['name']) && !isset($_SESSION['email']) && !isset($_SESSION['phone']))
{
exit();
}
else
{
header('Location : signup-form.php');
exit();
}
?>
在使用isset()设置SESSION之前,您正在检查SESSION
正确的方法是:
if(!isset($_SESSION['name']) && !isset($_SESSION['email']) && !isset($_SESSION['phone'])){
exit();
}
else{
//...
}