Re: Création d'utilisateurs en nbr à partir d'un fichier | Titre du sujet : Re: Création d'utilisateurs en nbr à partir d'un fichier par LEMOINE sur 26/02/2011 20:11:06
Comme promis, voici l'adaptation du code de Christian (pour la version 2.3.2) pour un fonctionnement sous 2.5.0
<?php
// christian@frxoops.org - https://www.frxoops.org
// adaptation version 2.5.0 par Eric
// Import users from a csv or text file into XOOPS 2.5.0
// variables
$bdd= "xoops25";
$host= "localhost";
$user= "root";
$pass= "";
$prefix= "x25"; // tables prefix, without _
$separator= ";";// separator used in original file
$user_regdate=time();// date d'inscription
$fichier = "liste2010.csv";// file name to read
// formatage du fichier
// Nom;Identifiant;mail;url_site;Password;groupe
// IMPORTANT : DO NOT LEAVE AN EMPTY LINE IN YOUR ORIGINAL DOCUMENT (fichier.csv)
mysql_connect($host,$user,$pass) or die("Unable to connect Database");
mysql_select_db($bdd);
//Open file for read
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else{ // unknown file
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
while (!feof($fp)){
$ligne = fgets($fp,4096);
$liste = explode($separator,$ligne); //create array
// Add real name
$name = $liste[0];
// End
// Add real name
$uname = $liste[1];
// End
// Add real name
$email = $liste[2];
// End
// Add website
$url = $liste[3];
// End
// Add Password
$pass= md5(trim($liste[4]));
// End
// Add website
$user_regdate = time();
// End
// Add avatar
$user_avatar = "blank.gif";
// End
$attachsig = "0";// 1=signature attachée
$rank = "0";// Choose rank 1
$theme = "zetagenesis";// nom du theme
$notify_method = "0";// 0=pas de notification
$user_mailok = "1";// Choose 1 if you allow administrator to send email
$numgroup = $liste[5];// choose Group number 2=Elv 4=Prof 5=ProfMod 6... pour classes (en fonction des groupes existants)
$umode = "flat";// affichage commentaires : "flat"=a plat "nest"=emboite "thread"=par conversation
// Add user in xoops_users table
$query = "insert into ".$prefix."_users (name, uname, email, url, user_avatar, user_regdate, user_sig, pass, attachsig, rank, theme, umode, notify_method, user_occ, user_mailok) VALUES ('".$name."', '".$uname."', '".$email."', '".$url."', '".$user_avatar."', '".$user_regdate."', '".$user_sig."', '".$pass."', '".$attachsig."', '".$rank."', '".$theme."', '".$umode."', '".$notify_method."', '".$user_occ."', '".$user_mailok."')";
$result= mysql_query($query);
$uid = mysql_insert_id();
//Add user in group : registered users per default
$query = "insert into ".$prefix."_groups_users_link (groupid, uid) VALUES('".$numgroup."', '".$uid."')";
$result= mysql_query($query);
if (mysql_error()){
echo 'Error in database : '.mysql_error();
echo '</table><br /><br /><b>Importation stoppee.</b><br /><br />';
fclose($fp);
exit();
}else{
echo '<tr><td> '.$uid.' </td><td> '.$uname.' </td></tr> ';
}
}
echo '</table><br />Import finished successfully.';
fclose($fp);
?>
J'ai fait peu de modifications, juste quelques ajouts et un peu de documentation du code. La structure du fichier est dans le code.
Bon courage et merci encore Beru et jlz78
|
|