Php 如果会话为空,如何使用页眉将用户发送到另一个页面?

Php 如果会话为空,如何使用页眉将用户发送到另一个页面?,php,session,Php,Session,我在几个页面上制作了一个表单,在最后会给我发送一封电子邮件,但如果人们没有输入他们的IGN(游戏名),我不希望他们转到其他页面,所以我尝试将其放入会话中。我的问题是检查会话,因为如果会话为空,我无法让它将用户发送回主页。这里是我的代码 <?php session_start(); $_SESSION['IGN']=$_POST['IGN']; if ($_SESSION['IGN']="") { header('Location: Index.php'); } ?&g

我在几个页面上制作了一个表单,在最后会给我发送一封电子邮件,但如果人们没有输入他们的IGN(游戏名),我不希望他们转到其他页面,所以我尝试将其放入会话中。我的问题是检查会话,因为如果会话为空,我无法让它将用户发送回主页。这里是我的代码

<?php session_start();
  $_SESSION['IGN']=$_POST['IGN'];
  if ($_SESSION['IGN']="")  {
    header('Location: Index.php');
  }
?>

是不是我检查会话出错了?你能帮我看一下吗:-)

是的,你需要做:

 if ( $_SESSION['IGN'] == "" )  {      // here you need to use "==" instead of "="
    header('Location: Index.php');
  }
阅读如何比较

您还可以通过以下方式进行检查:

if (isset($_SESSION['IGN']) && !empty($_SESSION['IGN']))  {
    header('Location: Index.php');
  }
试试这个:

<?php session_start();
  $_SESSION['IGN']=$_POST['IGN'];
  if ($_SESSION['IGN']=="" || is_null($_SESSION['IGN']))  {
    header('Location: Index.php');
  }
?>


哦,你没有。这个问题可以结束了-它的拼写错误==@Skuta谢谢你指出,我应该看到的!我发现代码的逻辑存在潜在问题。需要考虑的是:代码可能也在检查IGN的正确性。只需从数据库中提取所有IGN并检查它是否存在。如果我尝试sql注入您的站点并在IGN中使用特殊代码,会怎么样?我希望它能解释这种情况。@Skuta它是通过电子邮件发送的,不会涉及数据库,它从“index.html”上的文本框中获取IGN。虽然我在尝试从第一个问题转到下一个问题时遇到了问题,但出于某种原因,它会将问题发送回索引页。当我删除第一个问题顶部的复选框时,我就可以进入第二个问题了,你知道为什么吗?我需要看看代码哇,我怎么会错过这个。我通常会听到这样的事情谢谢你的快速回复!您可以使用
!isset($\u SESSION['IGN'])和&empty($\u SESSION['IGN'])
而不是将会话与
@Adam Azad进行比较,感谢您查看
empty()
是否在内部设置了变量。因为
空($var)
相当于
!isset($var)| |$var
只使用
空($var)
就足够了。