Указан неверный аргумент для foreach() с использованием adldap

Я использую Adldap http://adldap.sourceforge.net/

И я передаю сеанс от страницы к странице и проверяю, чтобы убедиться, что имя пользователя в сеансе является членом определенной группы участников, в данном примере это группа STAFF.

<?php
    ini_set('display_errors',1);
    error_reporting(E_ALL);
    require_once('/web/ee_web/include/adLDAP.php');
    $adldap = new adLDAP();

    session_start();

    $group = "STAFF";

    //$authUser = $adldap->authenticate($username, $password);

    $result=$adldap->user_groups($_SESSION['user_session']);

    foreach($result as $key=>$value) {
        switch($value) {
            case $group:
                print '<h3>'.$group.'</h3>';
                break;

            default:
                print '<h3>Did not find specific value: '.$value.'</h3>';
            }
        if($value == $group) { print 'for loop broke'; break; }
    }
?>

Это дает мне ошибку: Предупреждение: неверный аргумент, предоставленный для foreach() в строке 15, которая представляет собой следующую строку кода: foreach($result as $key=>$value) {

Когда я раскомментирую код, $authUser = $adldap->authenticate($username, $password); и введите соответствующее имя пользователя и пароль, все работает нормально, но мне не нужно было этого делать, поскольку сеанс действителен, я просто хочу посмотреть, не входит ли имя пользователя, хранящееся в valid_session, в группу STAFF.

Почему это вызывает у меня эту проблему?

1 ответ

Решение

Согласно этому исходному файлу, user_groups() will, вернет false, если имя пользователя было пустым (и в некоторых других случаях также проверьте источник). Готов поспорить $_SESSION["user_session"] пусто, и $result тогда ложно. Ты не можешь бежать foreach на не массив, поэтому вы получаете предупреждение.

Вам необходимо выяснить, почему ваша переменная сеанса пуста, и / или проверить, $result является массивом, потому что делает для него foreach:

if (is_array($result))
 foreach ($result....
Другие вопросы по тегам