PHP会话表单提交条件



我正在尝试存储会话值,并检查字段是否已填充。继续执行表单功能,否则返回注册表单。

但我的底线出现了错误。

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{
 //...
}

最新更新