J'utilise adldap http://adldap.sourceforge.net/Invalid argument supplied for foreach() en utilisant adldap
Et je passe la session de la page à la page, et de vérifier pour vous assurer que le nom d'utilisateur dans la session est membre d'un certain groupe de membres , pour cet exemple, c'est le groupe 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; }
}
?>
Il me donne l'erreur: Warning: Invalid argument supplied for foreach() sur la ligne 15, qui est cette ligne de code: foreach ($ result as $ key => $ value) {
Lorsque je décommente le code $ authUser = $ adldap-> authenticate ($ username, $ password); et entrez le nom d'utilisateur et mot de passe approprié, cela fonctionne bien, mais je ne devrais pas avoir à le faire, puisque la session est valide, je veux juste voir si le nom d'utilisateur stocké dans valid_session est en dehors du groupe STAFF.
Pourquoi est-ce que ça me donnerait ce problème?
J'ai imprimé la variable et imprimer le nom d'utilisateur approprié . $ _SESSION ['user_session'] – Brad
$ result n'est pas un tableau, c'est un bon début pour voir pourquoi il ne l'est pas. – Brad
@Brad alors c'est soit cette ligne: 'if (! $ This -> _ bind) {return (false); } 'ou plus loin le long de la fonction récursive' recursive_groups'. Assurez-vous de regarder dans votre version du code source d'adldap, cependant. –