检查会话数据是否已设置并对每个项目应用错误

时间:2015-06-02 22:43:09

标签: php session

我必须为大量会话变量执行以下操作,有没有办法可以缩短此代码以应用于所有变量而不是重复写出if(!isset($ _ SESSION ['whatever'])并将适当的错误添加到errors数组中。

if(!isset($_SESSION['fiat'])) {
$errors[fiat] = 'Please enter valid amount';
}
if(!isset($_SESSION['contact'])) {
$errors[contact] = 'Please enter valid contact';
}
if(!isset($_SESSION['name'])) {
$errors[name] = 'Please enter valid name';
}

我已经尝试过for循环和数组的一些东西,但即使经过一些严肃的谷歌搜索,我真的很挣扎,所以任何帮助都非常感激。 谢谢!

我现在制作了以下数组,但我不确定如何使用它:

$errors = array(
    $_SESSION['fiat'] => 'Please enter valid amount',
    $_SESSION['contact'] => 'Please enter valid contact',
    $_SESSION['name'] => 'Please enter valid name',
    );

我会做以下事情吗?不确定之间会发生什么。

for(!isset($errors)){

}

1 个答案:

答案 0 :(得分:2)

您可以做的是:

$errors = array();

// List all session parameters and error messages you want to check here
$valuesToCheck = array(
    'fiat' => 'Please enter valid amount',
    'contact' => 'Please enter valid contact'
    // and so on...
);

// Loop through all values you want to check and validate it. if validation doesn't pass add error message to $errors array.
foreach ($valuesToCheck as $k => $v) {
     if(!isset($_SESSION[$k])) {
         $errors[$k] = $v;
     }
}

// Check if after the validation array with errors is not empty then deal with it.
if (!empty($errors)) {
    // Do something with errors here
}

PS:我认为在开始编写代码之前,您应该了解有关软件开发基础知识的更多信息。这对你的职业生涯很有用。