[LDAP] Formulaire PHP / LDAP
Bonjour les amis,
Je viens d intégré un serveur ldap a mon raspberry, jusqu'ici tout va bien, en allant piocher a droite et a gauche sur le net j'ai a peu pres en place un script en php qui permettrait a mes users de créé eux meme leur annuaire afin d'alimenter nos sip phone :)
seulement voila la je butte je ne comprends pas ou ca merdois mais je voudrais que mes users créé leur contacts et ca ne fonctionne pas.
La suppression ou la modification ne fonctionne pas non plus, si il y avait une ame charitable pour m'aider, de plus je n'ai pas trouver d'autres script tout pret à l'emploi alors celui-ci une fois bien modifier fera certainement beaucoup d'heureux :)
Voici toutes les pages concernant le script :
la page header :
Code:
1 2 3 4 5 6 7 8
| <?php
// Fichier de configuration pour l'interface PHP pour administrer // notre annuaire LDAP
$server = "192.168.50.48";
$port ="389";
$racine = "dc=ltc,dc=com";
$rootdn = "cn=admin,dc=ltc,dc=com";
$rootpw ="ltcs1721";
?> |
la page admin ou index :) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| <?php
// affichage du haut de la page contenu dans le fichier header.php
require("header.php");
echo "<center><B>PAGE CONTACTS</B></center><p>";
echo "Les personnes suivantes sont inscrites dans l'annuaire :<p>";
// connexion au serveur LDAP : ds est égal à 1 si la connexion est OK
$ds=ldap_connect($server);
if ($ds==1)
{
// on recherche les objet de type person à partir de la racine
// de notre serveur LDAP, ici : o=commentcamarche, c=fr
$sr=ldap_search($ds, $racine, "objectclass=person");
$info = ldap_get_entries($ds, $sr);
echo "<table border=1>";
echo "<tr>
<th>Nom et prénom</th>
<th>Téléphone</th>
<th>Mobile</th>
<th>Mail</th>
</tr>";
// on affiche sous forme d'un tableau les personnes enregistrées
// dans l'annuaire avec un lien pour modifier et un lien pour supprimer
for ($i=0;$i<$info["count"];$i++)
{
$mynom = $info[$i]["cn"][0];
$mytel = $info[$i]["telephoneNumber"][0];
$mymobile = $info[$i]["mobile"][0];
$mymail = $info[$i]["mail"][0];
echo "<tr><th>$mynom</th><th>$mytel</th><th>$mymobile</th><th>$mymail</th></tr>";
$mynom=urlencode($mynom);
echo" <th><a href=modifie.php?cn=$mynom\">
Modifier</a></th>";
echo" <th><a href=supprime.php?cn=$mysn\">
Supprimer</a></th></tr>";
}
echo"</table>";
echo "<a href=\"ajoute.php\">Ajouter une
nouvelle personne dans l'annuaire</a>";
}
// on ferme la connexion au serveur LDAP
ldap_close($ds);
?> |
la page modifie :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
| <?php
// on affiche le haut de la page contenu dans le fichier header.php
require("header.php");
echo "<center><B>MODIFIER CONTACT</B></center><p>";
$cn=urldecode($cn);
if (($go==1) and ($sn!=""))
{
// connexion au serveur
$ds=ldap_connect($server);
if ($ds==1)
{
// on s'authentifie en tant que super-utilisateur, ici, ldap_admin
$r=ldap_bind($ds,$rootdn,$rootpw);
// Suppression de l'ancien enregistrement
$r=ldap_delete($ds,"cn=$cn,$racine");
// Préparation des données
$info["cn"]=$cn;
$info["mail"]=$mail;
$info["telephonenumber"]=$tel;
$info["objectclass"]="person";
// Ajout dans l'annuaire
$r=ldap_add($ds,"cn=$cn,$racine",$info);
echo "<P><A HREF=\"admin.php\">Retourner
à la page d'administration</A>\n";
// fermeture de la connexion à l'annuaire LDAP
ldap_close($ds);
$go==0;
$nom=="";
$prenom="";
$mail="";
$tel="";
echo "La modification a réussi !!!\n";
}
} else {
if ($go==1)
{
$mes="ERREUR ! Vous devez obligatoirement remplir le champ mail";
echo "<FONT COLOR=FF0000>$mes</FONT>\n";
}
// connexion au serveur
$ds=ldap_connect($server);
if ($ds)
{
$recherche="cn=$cn";
$champs = array("cn", "telephonenumber", "mail");
// recherche les informations de la personne que l'on veut modifier
$sr=ldap_search($ds, $racine, $recherche, $champs);
$num= ldap_get_entries($ds,$sr);
if ($num["count"]>0)
{
$mynom = $num[0]["cn"][0];
$myemail = $num[0]["mail"][0];
$mymobile = $num[0]["mobile"][0];
$mytel = $num[0]["telephonenumber"][0];
echo "<FORM ACTION=\"modifie.php\" METHOD=POST>\n";
echo "<TABLE BORDER=0>\n";
echo "<TR><TD> <B>Modification de l'utilisateur : $cn</B></TD>\n";
echo "<TR><TD> <B>SN</B></TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"sn\" value=\"$mymobile\"
SIZE=40 maxlength=80><BR></TD></TR>\n";
echo "<TR><TD> Téléphone</TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"tel\" value=\"$mytel\"
SIZE=40 maxlength=255><BR></TD></TR>\n";
echo "</TABLE>\n";
echo "<INPUT type=\"hidden\" name=\"cn\" value=\"$cn\"><BR><BR>\n";
echo "<INPUT type=\"hidden\" name=\"go\" value=\"1\"><BR><BR>\n";
echo "<INPUT type=\"submit\" value=\"Modifier\">\n";
echo "<INPUT type=\"reset\" value=\"Annuler\">\n";
echo "</FORM>\n";
echo "<BR>Le champ <B>Mail</B> est obligatoire.\n";
} else {
echo "Erreur ! La recherche n'a pas aboutie";
}
} else {
echo "Erreur ! Problème à la connexion avec le serveur LDAP";
}
}
?> |
la page ajoute :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| <?php
// on affiche le haut de la page contenu dans le fichier header.php
require("header.php");
echo "<center><B>AJOUT CONTACT</B></center><p>";
// connexion au serveur
$ds=ldap_connect($server);
if (($go==1) and ($nom!="") and ($prenom!="") and ($mail!=""))
{
if ($ds==1)
{
// on s'authentifie en tant que super-utilisateur, ici, ldap_admin
$r=ldap_bind($ds,$rootdn,$rootpw);
// préparation des données
$info["cn"]=$nom." ".$prenom;
$info["mail"]=$mail;
$info["telephoneNumber"]=$tel;
$info["mobile"]=$mobile;
$info["objectclass"]="inetOrgPerson";
$info["objectclass"]="top";
// ajout dans l'annuaire
$r=ldap_add($ds,"cn=$prenom $nom,$racine",$info);
// fermeture de la connexion
ldap_close($ds);
$go==0;
$nom=="";
$prenom="";
$mail="";
$tel="";
$mobile="";
echo "L'enregistrement a réussi !!!\n";
echo "<P><A HREF=\"ajoute.php\">Ajouter
une nouvelle personne</A>\n";
}
} else {
if ($go==1)
{
$mes="ERREUR ! Vous devez obligatoirement remplir les champs en gras";
echo "<FONT COLOR=FF0000>$mes</FONT>\n";
}
echo "<FORM ACTION=\"admin.php\" METHOD=POST>\n";
echo "<TABLE BORDER=0>\n";
echo "<TR><TD> <B>Nom *</B></TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"nom\"
value=\"$nom\" SIZE=30 maxlength=80><BR></TD></TR>\n";
echo "<TR><TD> <B>Prénom *</B></TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"prenom\"
value=\"$prenom\" SIZE=30 maxlength=80><BR></TD></TR>\n";
echo "<TR><TD> <B>E-Mail *</B></TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"mail\"
value=\"$mail\" SIZE=40 maxlength=80><BR></TD></TR>\n";
echo "<TR><TD> Téléphone</TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"tel\"
value=\"$tel\" SIZE=40 maxlength=255><BR></TD></TR>\n";
echo "<TR><TD> Mobile</TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"mobile\"
value=\"$mobile\" SIZE=40 maxlength=255><BR></TD></TR>\n";
echo "</TABLE>\n";
echo "<INPUT type=\"hidden\" name=\"go\" value=\"1\"><BR><BR>\n";
echo "<INPUT type=\"submit\" value=\"Valider\">\n";
echo "<INPUT type=\"reset\" value=\"Annuler\">\n";
echo "</FORM>\n";
echo "<BR>Les champs en <B>gras</B> suivis d'une étoile sont obligatoires.\n";
echo "<P><A HREF=\"admin.php\">Retourner
à la page d'administration</A>\n";
}
?> |
la page supprime :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <?php
// on affiche le haut de la page contenu dans le fichier header.php
require("header.php");
echo "<center><B>SUPPRIMER CONTACT</B></center><p>";
$cn=urldecode($cn)
if ($go==0) {
echo "Etes-vous sur de vouloir supprimer l'utilisateur $cn<br>\n";
$cn=urlencode($cn);
echo "<A HREF=\"supprime.php?go=1&cn=$cn\">oui</A><BR>\n";
echo "<A HREF=\"admin.php\">non</A><BR>\n";
echo "<P><A HREF=\"admin.php\">Retourner
à la page d'administration</A>\n";
}
else {
$cn=urldecode($cn);
// connexion au serveur LDAP
$ds=ldap_connect($server);
if ($ds==1) {
// on s'authentifie en tant que super-utilisateur, ici, ldap_admin
$r=ldap_bind($ds,$rootdn,$rootpw);
// Suppression de l'ancien enregistrement
$r=ldap_delete($ds,"cn=$cn,$racine");
echo "La suppression a réussi !!!\n";
}
}
?> |
Voila voilou :)