Fork me on GitHub

Rapport de message :*
 

Re: importer des utilisateurs.

Titre du sujet : Re: importer des utilisateurs.
par blueteen sur 01/04/2008 14:14:59

Je viens de faire quelques changements, et ça semble être ok avec xoops 2.0.18

<?php
// christian@frxoops.org - https://www.frxoops.org
// Import users from a csv or text file into xoops 2.0.18
// variables
$bdd"nom de la base";
$host"localhost";
$user"utilisateur de la base";
$pass"mot de passe de la base";
$prefix"préfixe"//préfixe des tables, sans indiquer le _
$separator ";";//séparateur uilisé dans le fichier à importer
$regdate=time();
$fichier "membres.txt"//nom du fichier à parcourir
//file structure : pseudo;email;password en clair

//ne pas laisser de ligne vide à la fin du fichier à importer

mysql_connect($host,$user,$pass) or die("Unable to connect Database");
mysql_select_db($bdd);

//Open file for read - Ouverture du fichier contenant les membres
if (file_exists($fichier))
$fp fopen("$fichier""r");
else{ 
// unknown file - fichier non trouvé
echo "File not found !<br />Import stopped.";
exit();
}
echo 
'Begin file import : <b>'.$fichier.'</b><br /><br />';
echo 
'<table border="1" cellspacing="3">';
echo 
'<tr><td>UID</td><td>Pseudo</td>';
// import line by line - import ligne par ligne
while (!feof($fp)){
$ligne fgets($fp,4096);
$liste explode($separator,$ligne); //create array 
$uname $liste[0];
$email $liste[1];
$passmd5(trim($liste[2])); 
$user_mailok "0"//n'autorise pas l'administrateur à envoyer des mails par défaut - mettre à un (1) dans le cas contraire

// Add user in xoops_users table
$query "insert into ".$prefix."_users (uname, email, pass, user_regdate, user_mailok) VALUES ('".$uname."', '".$email."', '".$pass."', '".$regdate."' , ".$user_mailok.")";
$resultmysql_query($query);
$uid mysql_insert_id();

//Add user in group : registered users / utilisateurs enregistrés
$numgroup ='2';//changer cette valeur pour affecter le membre à un autre groupe
$query "insert into ".$prefix."_groups_users_link (groupid, uid) VALUES('".$numgroup."', '".$uid."')";
$resultmysql_query($query);

if (
mysql_error()){
echo 
"Error in database : ".mysql_error();
echo 
"</table><br /><br /><b>Importation stoppée.</b><br /><br />";
fclose($fp);
exit();
}else{
echo 
"<tr><td> ".$uid." </td><td> ".$uname." </td></tr> ";
}
}

echo 
"</table><br />Import finished successfully.";//Import réalisé avec succès

fclose($fp);
?>


Pense à renseigner les variables au début du fichier (connexion à la base).
j'ai ajouté une variable pour le préfixe, comme ça, tu le saisis une fois et on en parle plus.
Par défaut, il te faut donc un fichier nommé membres.txt
Contenant un membre par ligne, avec les données du membre séparées par un point-virgule.
Par défaut, l'autorisation d'envoi de mails par l'administrateur est désactivée, tu peux changer la valeur de la variable si tu souhaites le contraire.
Par défaut, les membres créés sont placés dans le groupe des utilisateurs enregistrés (2), tu peux changer la valeur de la variable si tu veux les placer dans un autre groupe.

Je te laisse tester (si possible sur une base de test), et revenir nous dire si c'est ok, au cas où ça puisse servir à d'autres !
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

55 Personne(s) en ligne (45 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 55 | Plus ...