Geçersiz bağımsız değişken adldap kullanarak) (foreach için verilen

1 Cevap php

Ben adldap kullanıyorum http://adldap.sourceforge.net/

Ve ben sayfadan sayfaya oturumu geçen ve seans içinde kullanıcı adı, belirli bir üye grubunun bir üyesi olan bu örneğin, PERSONEL grubu olduğundan emin olmak için kontrol ediyorum.

<?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; }
    }
?>

Bana hata veriyor: Warning: Bu kod satırı 15 hattı üzerinde foreach için verilen Geçersiz bağımsız değişken (): foreach ($ sonuç $ anahtar => $ değer olarak) {

Ben kodu $ AUTHUSER = $ adldap-> kimlik doğrulaması ($ username, $ password) yorumsuz zaman; ve ben sadece valid_session içinde depolanan kullanıcı adı dışında PERSONEL grubun olup olmadığını görmek istiyorum, iyi çalışıyor, uygun kullanıcı adı ve şifrenizi girin, ancak oturum geçerli olduğundan ben, gerek olmamalıdır.

Neden bana bu sorunu veriyor olurdu?

1 Cevap

this source file göre, user_groups(), kullanıcı adı boş ise (ve diğer bazı durumlarda, kaynağını kontrol) false dönecektir. Ben senin $_SESSION["user_session"] boş bahis, ve $result o yanlıştır. Eğer uyarı alıyorum neden olmayan bir dizi üzerinde foreach koşamam.

Eğer oturum değişkeni boş nedenini bulmak gerekir, ve / veya $result bir dizi olup olmadığını kontrol edecek bunun üzerine bir foreach yapıyor çünkü:

if (is_array($result))
 foreach ($result....