检查多个$ _SESSION变量是否为空

时间:2017-04-20 10:50:55

标签: php session

人们基本上可以选择他们想做什么样的活动。这是通过复选框完成的。我的旧代码有点垃圾,我决定把它清理一下。因此,已检查的POST变量将被放入这样的SESSION中;

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    for($x = 0; $x < $keuzelength; $x++) {
    $_SESSION[$keuze[$x]] = $_POST[$keuze[$x]];
    }
    }

这就像一个魅力,但在此之后我想检查它们是否全是空的。只有当它们都是空的时,才需要弹出错误。目前这样做是这样的:

if (empty($_SESSION['Dierentuin']) && 
    empty($_SESSION['Bowlen']) && 
    empty($_SESSION['Attractiepark']) &&
    empty($_SESSION['Wandelen']) &&
    empty($_SESSION['Hardlopen']) &&
    empty($_SESSION['Uitgaan']) &&
    empty($_SESSION['Zwemmen']) &&
    empty($_SESSION['Karten']) &&
    empty($_SESSION['Lasergamen']) &&
    empty($_SESSION['Paintballen']) &&
    empty($_SESSION['Klimmen']) &&
    empty($_SESSION['Museum']) &&
    empty($_SESSION['Kanovaren']) &&
    empty($_SESSION['Weekend weg']) &&
    empty($_SESSION['Verras me']) &&
    empty($_SESSION['Poolen'])){

    print('error text');
                exit();
                }

这基本上检查上述任何一个是否为空,脚本停止并发送错误。奇迹般有效。但是,只要我为用于复选框的数组添加新选项,我就需要在其中添加另一个空行。

有没有办法检查所有$ _SESSION [$ keuze []]变量?

提前致谢!

1 个答案:

答案 0 :(得分:-1)

  

不起作用,因为我还将其他东西存储在会话变量中。

根据@ImClarky的建议,创建另一个数组来存储你要检查的所有值,即:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    for($x = 0; $x < $keuzelength; $x++) {
    $_SESSION['custom_sessions'][$keuze[$x]] = $_POST[$keuze[$x]];
    }
 }

然后您可以使用array_filter检查$_SESSION['custom_sessions']是否为空,即:

if (!array_filter($_SESSION['custom_sessions']))
{
    print('error text'); # empty array
}