PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » autoriser l'accès » 28-01-2014 09:26:56

Merci JC pour ta réponse

Le code marche en lui même car javai deux utilisateurs dans Ma BDD un avec le groupes = 1 et un autre avec le groupe = 2 ensuite c'est 2 utilisateur sont dans Mon LDAP

MAIS il a fallu supprimer l'utilisateur1 groupes = 1 de LDAP du coups quand je veut mettre l'utilisateur2 en groupe = 1 a la place de groupe = 2 pour qu'il est accès a tout le site cela ne marche pas.

#2 Re : Forum Général PHP » autoriser l'accès » 28-01-2014 09:26:56

Pour ce qu'il ne marche pas

mon code permet de donner des droit ( envoie de documennt publier des actualité dans le site intranet ) uniquement pour ceux qui font partie du groupes = 1

la on peut voir que j'ai fait toutes les condition et malgré ca qd je me connecte avec un utilisateur du groupe = 1 il ne pas pas publier une actualiter

#3 Forum Général PHP » autoriser l'accès » 28-01-2014 09:26:56

django_78
Réponses : 4

bonjour,

je vais vous présenter mon projet je doit crée un site intranet pour mon entreprise le site est finaliser mais je doit crée des règles selon l’utilisateur

en effet certains utilisateur n'auront droit a certains accès du site intranet

j'ai crée les différentes conditions mais cela ne fonctionne pas

#4 Re : Forum Général PHP » Probléme de connexion au site intranet » 17-01-2014 23:07:08

Merci pour ta réponse JC

j'ai pas très bien saisie le problème qui a dans mon algorithme de traitement

pouvez_vous me donner un exemple s'il vous plait

cordialement

#5 Forum Général PHP » Probléme de connexion au site intranet » 17-01-2014 23:07:08

django_78
Réponses : 3

Bonjour,

je vous ecrit car cela fait un moment que j'ai un probléme de connexion a mon site intranet

je vous explique:

j'ai créé une page connexion_ldap.php ce code me permet de me connecter via un utilisateur créé dans LDAP

mais probléme ca ne marche pas et voila les erreurs qui me retourne

Connexion au serveur
Le résultat de connexion est Resource id #3
Utilisation de LDAPv3 Connexion authentifiée ...
Utilisateur authentifié avec succès !Recherche suivant le filtre (email=*@vernon27.fr)
Le résultat de la recherche est Resource id #4
LDAP-Errno: 0
LDAP-Error: Success
Le nombre d'entrées retournées est 0

Lecture de ces entrées ....

Données pour 0 entrées:


Warning: ldap_get_attributes() expects parameter 2 to be resource, boolean given in C:\Program Files\EasyPHP-12.1\www\Intranet-2\connexion_ldap.php on line 87
attributs dans cette entrée :


Notice: Undefined variable: groupes in C:\Program Files\EasyPHP-12.1\www\Intranet-2\connexion_ldap.php on line 120
Fermeture de la connexionOK Auth USER

Notice: Undefined variable: groupes in C:\Program Files\EasyPHP-12.1\www\Intranet-2\connexion_ldap.php on line 147

Notice: Undefined index: nom in C:\Program Files\EasyPHP-12.1\www\Intranet-2\connexion_ldap.php on line 148

Notice: Undefined index: prenom in C:\Program Files\EasyPHP-12.1\www\Intranet-2\connexion_ldap.php on line 149

Notice: Undefined variable: groupes in C:\Program Files\EasyPHP-12.1\www\Intranet-2\connexion_ldap.php on line 152
Vous n'avez pas de droit d'utilisation.
Retour



et voila mon code


<?php
// Connexion a mysqli
$link = mysqli_connect("localhost", "root", "", "intra")or die("Impossible de se connecter : " . mysqli_error());
 
//$baseDN = 'cn=users, dc=vernon27, dc=local';
$baseDN = 'OU=Services, DC=vernon27, DC=local';
$ldapServer = '172.20.1.3';
$rdn = 'intra_ldap';
$mdp = '123456';
$user = "cn=".$_POST['login'];
$password = $_POST['password'];
$admin="admin";  // indiquez ici le groupe auquels appartient les admin et les membres. dans mon exemple, j'ai un o=admin et un o=membres.
$membres="membres";

  // Connexion au serveur
  echo "Connexion au serveur <br />";
  $conn=ldap_connect($ldapServer);

  // on teste : le serveur LDAP est-il trouvé ?
  if ($conn)
  {
    echo "Le résultat de connexion est ".$conn ."<br />";
  }
  else
  {
    die("connexion impossible au serveur LDAP");
  }

// 2ème étape : on effectue une liaison au serveur, ici de type "anonyme" pour une recherche permise par un accès en lecture seule

  // On dit qu'on utilise LDAP V3, sinon la V2 par défaut est utilisé et le bind ne passe pas.
  if (ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3))
  {
    echo "Utilisation de LDAPv3 \n";
  }
  else
  {
    echo "Impossible d'utiliser LDAP V3\n";
    exit;
  }
 
  print ("Connexion authentifiée ...<br />");
  $bindServerLDAP=ldap_bind($conn,$rdn,$mdp);
 
  // nom d'utilisateur
  $identifiant = $_POST['login'];
   
  // mot de passe utilisateur
  $auth_pass = $_POST['password'];
   
  // nom de domaine
  $domaine = "VERNON27.local";
 
 
  // nom d'utilisateur + @ + nom de domaine
  $auth_user = $identifiant."@".$domaine;
 
 
  // resultat de connexion
  if (!($bind=@ldap_bind($conn, $auth_user, $auth_pass)))
  {
    // l'utilisateur ou le mdp est refusé
    echo "Nom d'utilisateur ou mot de passe refusé ! ";
    echo "<a href='index.php'>Retour";
  }
  else
  {
    // l'utilisateur ou le mdp est accepté
    echo "Utilisateur authentifié avec succès !";

    echo "Recherche suivant le filtre (email=*@vernon27.fr) <br />";
    $query = "mail=".$_POST['login']."@vernon27.fr";

    $result = ldap_search($conn, $baseDN, $query);
    echo "Le résultat de la recherche est $result <br />";
    echo "LDAP-Errno: " . ldap_errno($conn) . "<br />\n";
    echo "LDAP-Error: " . ldap_error($conn) . "<br />\n";

    echo "Le nombre d'entrées retournées est ".ldap_count_entries($conn,$result)."<p />";
   
    echo "Lecture de ces entrées ....<p />";
    $info = ldap_get_entries($conn, $result);
    echo "Données pour ".$info["count"]." entrées:<p />";
   
    // Atrributs de l'entrée
    $entry = ldap_first_entry($conn, $result);
    $attrs = ldap_get_attributes($conn, $entry);

    echo $attrs["count"] . " attributs dans cette entrée :<p>";

    //Démarrage de la session
    session_start();
   
    // Informations de l'entrée
    for ($i=0; $i < $info["count"]; $i++)
    {
      //Mise en session des données
      $_SESSION['prenom'] = $info[$i]["givenname"][0];
      $_SESSION['nom'] = $info[$i]["sn"][0];
      $_SESSION['courriel'] = $info[$i]["mail"][0];
     
      $d = 0;
      while ($info[$i]["memberof"][$d])
      {
        echo $info[$i]["memberof"][$d];
        echo '<br>';
        $pieces = explode(',', $info[$i]["memberof"][$d]);
        echo $pieces[0];
        $groupes = $groupes.''.$pieces[0].'.';
        echo '<br>';
        $d++;
      }
    }
    /*
    while ($array[$d])
    {
      $groupes = $array[$d]'.';
      $d++;
    }*/
    echo $groupes;
    echo "Fermeture de la connexion";
    ldap_close($conn);
   
    // Vérification de l'existence de l'utilisateur
    $reqVerif = mysqli_query($link,
    ' SELECT Id_utilisateurs, Num_sections
      FROM utilisateurs
      WHERE Pseudo="'.$_POST['login'].'"
    ')or die("Pb avec la requete: $reqVerif");
    $existUser = mysqli_fetch_array($reqVerif);
   
    if($existUser['Id_utilisateurs'] == '')
    {
      //Création de l'utilisateur pour la première fois
      mysqli_query($link,  "INSERT INTO utilisateurs (Id_utilisateurs, Nom, Prenom, Pseudo, Mot_de_passe, Courriel, Telephone, Groupes, Num_groupes, Num_sections)
            VALUES('', '".$_SESSION['nom']."', '".$_SESSION['prenom']."', '".$_POST['login']."', '', '".$_SESSION['courriel']."', '5557545759', '".$groupes."', '1', '1')");
     
      echo "Insertion en base de données. Veuillez vous reconnecter pour accèder à l'intranet.";
    }
    else
    {
      //Connexion de l'utilisateur déjà présent dans la base avec UPDATE du statut si modification
      echo "OK Auth USER</br>";
     
      mysqli_query($link,  
      " UPDATE utilisateurs
      SET Groupes = '".$groupes."'
      WHERE Nom = '".$_SESSION['nom']."'
      AND Prenom = '".$_SESSION['prenom']."'
      ");
           
      if(strstr($groupes, 'Intra_Intranet'))
      {
        $_SESSION['id_utilisateurs'] = $existUser['Id_utilisateurs'];
        $_SESSION['num_sections'] = $existUser['Num_sections'];
       
        //echo "<a href='accueil.php'>Poursuivre</a>";
        header('Location: accueil.php');
      }
      else
        echo "Vous n'avez pas de droit d'utilisation.";
        echo '<br>';
        echo '<a href="index.php">Retour</a>';
    }
  }
?>

pouvez_vous m'aider cordialement

Pied de page des forums

Propulsé par FluxBB