PHP

[PHP – LDAP] Annuaire LDAP Partie 3

Comment incorporer nos données dans une base MySQL


louis MARTINBRANDA
[PHP – LDAP] Annuaire LDAP Partie 3
On y est presque Parti 3:

Nous allons voir comment incorporer nos données dans une base MySQL.

Tout d’abord créons notre base SQL

CREATE TABLE IF NOT EXISTS `users` (
`uid` int(11) unsigned NOT NULL auto_increment,
`tstamp` int(11) unsigned NOT NULL default '0',
`username` varchar(50) NOT NULL default '',
`name` varchar(80) NOT NULL default '',
`address` varchar(255) NOT NULL default '',
`telephone` varchar(20) NOT NULL default '',
`email` varchar(80) NOT NULL default '',
`title` varchar(40) NOT NULL default '',
`zip` varchar(10) NOT NULL default '',
`city` text NOT NULL,
`country` varchar(40) NOT NULL default '',
`company` varchar(80) NOT NULL default '',
`first_name` varchar(50) NOT NULL default '',
`last_name` varchar(50) NOT NULL default '',
PRIMARY KEY  (`uid`),
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=702 ;

Déjà on va lancer une commande pour compter le nombre d’utilisateur :

$count = ldap_count_entries($connect, $search);
echo "Nombre d'utilisateurs qui seront intégrés : " .$count. "
";

et comme dans la partie 2 on récupere les donnée du LDAP :

/**********************************************************************
* Resultats de la recherche
**********************************************************************/
$entries = ldap_get_entries($connect, $search);

connexion à la base de donnée :

$serveur = localhost
$login = "user";
$mot_passe = "password";
$nom_bdd = "bdd"

$connection = mysql_connect($serveur, $login, $mot_passe);
$select_bdd = mysql_select_db($nom_bdd);

/**********************************************************************
* Set le type d'encodage
**********************************************************************/

mysql_query("SET NAMES 'utf8'");

/**********************************************************************
* Défini les variables user en fonction ne notre recherche.
* Le mysql_real_escape_string permet de remplacer les appostrophes.
**********************************************************************/

for ($i=0; $i < $count; $i++)
{

$tstamp = time();
$username = mysql_real_escape_string($entries[$i]['samaccountname'][0]);
$name = mysql_real_escape_string($entries[$i]['cn'][0]);
$address = mysql_real_escape_string($entries[$i]['streetaddress'][0]);
$telephone = mysql_real_escape_string($entries[$i]['telephonenumber'][0]);
$email = mysql_real_escape_string($entries[$i]['mail'][0]);
$title = mysql_real_escape_string($entries[$i]['description'][0]);
$zip = mysql_real_escape_string($entries[$i]['postalcode'][0]);
$city = mysql_real_escape_string($entries[$i]['l'][0]);
$country = mysql_real_escape_string($entries[$i]['co'][0]);

$company = mysql_real_escape_string($entries[$i]['company'][0]);
$first_name = mysql_real_escape_string($entries[$i]['givenname'][0]);
$last_name = mysql_real_escape_string($entries[$i]['sn'][0]);

/**********************************************************************
* Envoi de la requete $insert contenant les attributs vers MySQL
**********************************************************************/

$insert = "INSERT INTO users (tstamp,username,name,address,telephone,email,title,zip,city,country,company,first_name,last_name) VALUES( '".$tstamp."', '".$username."', '".$usergroup."', '".$name."', '".$address."', '".$telephone."', '".$email."', '".$title."', '".$
zip."', '".$city."', '".$country."', '".$company."', '".$first_name."', '".$last_name."')";

mysql_query($insert) or die("erreur $insert");

}

De ce fait on se sert du nombre d’utilisateur trouvé pour faire notre boucle.
Ensuite on défini nos variables avant de les envoyés dans notre BDD.

La fonction mysql_query(« SET NAMES ‘utf8′ »); permet d’envoyer des données au format UTF-8 à MySQL.

Pour finir et faire plus jolie on affiche un utilisateur au hasard  :

/**********************************************************************
* Affiche les infos d'un user au hasard
**********************************************************************/

$nb_min = 0;
$nb_max = $count;
$nombre = mt_rand($nb_min,$nb_max);
echo "Information type sur l'éxportation des utilisateurs";

echo "
";
echo "
";
echo "Exemple avec l'utilisateur "; echo utf8_decode($entries[$nombre]['cn'][0]);
echo "
";
echo "
";
echo "login : ";
echo utf8_decode($entries[$nombre]['samaccountname'][0]);
echo "
";
echo "Mail : ";
echo utf8_decode($entries[$nombre]['mail'][0]);
echo "
";
echo "LastName : ";
echo utf8_decode($entries[$nombre]['sn'][0]);
echo "
";
echo "FirstName : ";
echo utf8_decode($entries[$nombre]['givenname'][0]);
echo "
";
echo "Name : ";
echo utf8_decode($entries[$nombre]['cn'][0]);
echo "
";
echo "Company : ";
echo utf8_decode($entries[$nombre]['company'][0]);
echo "
";
echo "Fonction : ";
echo utf8_decode($entries[$nombre]['description'][0]);
echo "
";
echo "Telephone : ";
echo utf8_decode($entries[$nombre]['telephonenumber'][0]);
echo "
";
echo "Adresse : ";
echo utf8_decode($entries[$nombre]['streetaddress'][0]);
echo "
";
echo "Ville : ";
echo utf8_decode($entries[$nombre]['l'][0]);
echo "
";
echo "Zip Code : ";
echo utf8_decode($entries[$nombre]['postalcode'][0]);
echo "
";
echo "Pays : ";
echo utf8_decode($entries[$nombre]['co'][0]);
echo "
";

/**********************************************************************
* Fermeture de la connection
**********************************************************************/

ldap_unbind($connect);

echo "
";
echo "Exportation terminée. 
";

 

Show Comments (0)

Comments

Related Articles

PHP

[PHP – LDAP] Annuaire LDAP Partie 1

Un de mes projets était de mettre en place un annuaire LDAP. Le but étant de synchroniser tous les comptes utilisateurs et de les insérer dans une base MySQL. Ainsi fait, nous...

Posted on by louis MARTINBRANDA
PHP

[PHP – LDAP] Annuaire LDAP Partie 2

Partie 2 étape1 : créé le code qui va nous permettre de se connecter au LDAP étape2 : créé le fichier php pour afficher un compte étape3 : mettre en place le fichier php pour...

Posted on by louis MARTINBRANDA

Subscribe to MARTINBRANDA

Subscribe to our email newsletter to receive useful articles and special offers.

We won't share your email address.