0byt3m1n1
Path:
/
home
/
k
/
a
/
s
/
kassiope
/
www
/
administrer
/
[
Home
]
File: import_clients.php
<? include("../configuration.inc.php"); necessite_identification(); necessite_priv("admin"); $DOC_TITLE = "Module d'importation"; include("modeles/haut.php"); switch (vb($_POST['action'])) { /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */ case "ajouter" : $repertoire_upload = "$dirroot/administrer/upload/"; /* Importation du fichier */ if (!empty($_FILES['fichier']['name'])) { $fichier = upload($_FILES['fichier']); } else { $fichier = $_POST['fichier']; } echo "<form method='post' action='".$_SERVER['PHP_SELF']."'>"; echo "<input type='hidden' name='action' value='ajouter'>"; echo "<input type='hidden' name='fichier' value='".$fichier."'>"; echo "<font class='normal'>Nom du fichier retenu : /administrer/upload/<b>".$fichier."</b></font><br /><br />"; if ($fichier != "") { /* On ouvre le fichier en lecture seulement */ /* LE FICHIER CSV */ echo $fichier; if (file_exists($dirroot."/administrer/upload/".$fichier)) { $fp = @fopen ($dirroot."/administrer/upload/".$fichier, "r") or die ("Impossible d'ouvrir le fichier *.csv"); } } else { /* le fichier n'existe pas */ echo "<div class=normal>Fichier des utilisateurs introuvable !<br />Importation stoppée.</div>"; exit(); } // ON OUVRE LE FICHIER CSV $lignes=0; // ON INITIALISE LE COMPTEUR DU NOMBRE D'ENREGISREMENTS while ($data = @fgetcsv ($fp, 4096, ";")) { // ON RAMASSE LES DONNEES EN DEFINISSANT LE SEPARATEUR $num = count ($data); // NOMBRE D'ENREGITREMENTS PAR LIGNE for ($c=0; $c<$num; $c++) { // POUR CHAQUE CASE DE CHAQUE ENREGISTREMENT $data[$c] = str_replace('"', '"', $data[$c]); $data[$c] = str_replace("'", "\'", $data[$c]); $tabannonces[$lignes][$c] = $data[$c]; // ON CHARGE CA DANS UN TABLEAU } $lignes++; // INCREMENTATION DU NOMBRE DE LIGNES } fclose ($fp); // ON FERME LE FICHIER (PROPREMENT) echo "<input type='hidden' name='nomtable' value='gaia_utilisateurs'>"; /* ON COMMENCE L'AFFICHAGE DANS LE TABLEAU HTML (RIEN DE SORCIER) */ echo "<table bgcolor='#000000' cellspacing='1'><tr>"; for ($i = 0;$i<17;$i++) { echo "<td bgcolor='#DDDDDD'> <select name='champ[]' class='formulaire1'> <option value='email' "; if ($i == 0) {echo " selected";} echo ">Email</option>"; echo "<option value='mot_passe'"; if ($i == 1) {echo " selected";} echo ">Mot de passe</option>"; echo "<option value='code_client'"; if ($i == 2) {echo " selected";} echo ">Code client</option>"; echo "<option value='civilite'"; if ($i == 3) {echo " selected";} echo ">Civilité</option>"; echo "<option value='nom_famille'"; if ($i == 4) {echo " selected";} echo ">Nom de famille</option>"; echo "<option value='prenom'"; if ($i == 5) {echo " selected";} echo ">Prénom</option>"; echo "<option value='adresse'"; if ($i == 6) {echo " selected";} echo ">Adresse</option>"; echo "<option value='code_postal'"; if ($i == 7) {echo " selected";} echo ">Code postal</option>"; echo "<option value='ville'"; if ($i == 8) {echo " selected";} echo ">Ville</option>"; echo "<option value='pays'"; if ($i == 9) {echo " selected";} echo ">Pays</option>"; echo "<option value='telephone'"; if ($i == 10) {echo " selected";} echo ">Téléphone</option>"; echo "<option value='fax'"; if ($i == 11) {echo " selected";} echo ">Fax</option>"; echo "<option value='portable'"; if ($i == 12) {echo " selected";} echo ">Portable</option>"; echo "<option value='societe'"; if ($i == 13) {echo " selected";} echo ">Societe</option>"; echo "<option value='remise_percent'"; if ($i == 14) {echo " selected";} echo ">Remise en %</option>"; echo "<option value='newsletter'"; if ($i == 15) {echo " selected";} echo ">Newsletter</option>"; echo "<option value='priv'"; if ($i == 16) {echo " selected";} echo ">Privilège</option>"; echo "<option value=''>Ne pas insérer</option></select></td>"; } echo "</tr>"; for ($ligne=1 ; $ligne<=$lignes ; $ligne++) { echo "<tr>"; for ($colonne=1 ; $colonne<=$num ; $colonne++) { echo "<td bgcolor='#FFFFFF' nowrap class='normal'> ".$tabannonces[$ligne-1][$colonne-1]." </td>"; } echo "</tr>"; } $nbcolspans=$num-1; echo "<tr><td bgcolor='#FFFFFF' colspan='".$nbcolspans."'> </td><td align='right' bgcolor='#FFFFFF'><input class='bouton' type='Submit' value='Enregistrer' class='monform'></td></tr>"; echo "</table>"; echo "</form><p>"; echo "<font class='normal'>Nombre de ligne figurant dans le fichier : ".$lignes."</font><br />"; $nomtable = vb($_POST['nomtable']); $champ = vb($_POST['champ']); $compteur = 0; $nbcolssql = 0; if (!empty($nomtable)) { foreach ($champ as $kellabel) { $compteur++; if ($kellabel) { $nbcolssql++; if ($kellabel == "email") { $numero_reference = $compteur;} } } for ($ligne=1 ; $ligne<=$lignes ; $ligne++) { /* Test l'existence de l'utilisateur dans la base */ $select = "SELECT 1 FROM ".$nomtable." WHERE email = '".$tabannonces[$ligne-1][$numero_reference-1]."'"; $email = $tabannonces[$ligne-1][$numero_reference-1]; $res = mysql_query_override($select); if (mysql_num_rows_override($res) == 0) { $requete="INSERT INTO ".$nomtable." ("; $compteur=0; $nbcolssql=0; foreach ($champ as $kellabel) { $compteur++; if ($kellabel) { $nbcolssql++; if ($compteur==1) { $requete.=$kellabel; } else { $requete.=", ".$kellabel; } } } $requete.=", date_insert"; $requete.=", date_update"; $requete.=") VALUES ("; for ($i=1 ; $i<=$nbcolssql ; $i++) { $tabannonces[$ligne-1][$i-1]=str_replace('<', '<',$tabannonces[$ligne-1][$i-1]); $tabannonces[$ligne-1][$i-1]=str_replace('>', '>',$tabannonces[$ligne-1][$i-1]); $tabannonces[$ligne-1][$i-1]=str_replace('"', '"',$tabannonces[$ligne-1][$i-1]); if ($i==1) { $requete.= "'".$tabannonces[$ligne-1][$i-1]."'"; } else { if ($i == 2) { $requete.=", '".md5($tabannonces[$ligne-1][$i-1])."'"; } else { $requete.=", '".$tabannonces[$ligne-1][$i-1]."'"; } } } $requete .=", now()"; $requete .=", now()"; $requete.=");"; echo $requete; mysql_query_override($requete) or die ("<font color='#FF0000'><b>!!!Enregistrement non effectué !!!</b><br /></font>"); } else { // Requête de mise à jour $requete="UPDATE ".$nomtable." SET "; $compteur=0; $nbcolssql=0; $i=0; // Calcul le nombre de colonne à importer foreach ($champ as $kellabel) { if ($kellabel) { $nbcolssql++; } } // echo "Nb de colonne à importer : $nbcolssql"; foreach ($champ as $kellabel) { $compteur++; if ($kellabel) { $i++; $requete.= $kellabel." = "; $tabannonces[$ligne-1][$compteur-1]=str_replace('<', '<',$tabannonces[$ligne-1][$compteur-1]); $tabannonces[$ligne-1][$compteur-1]=str_replace('>', '>',$tabannonces[$ligne-1][$compteur-1]); $tabannonces[$ligne-1][$compteur-1]=str_replace('"', '"',$tabannonces[$ligne-1][$compteur-1]); $tabannonces[$ligne-1][$compteur-1]=str_replace(',', '.',$tabannonces[$ligne-1][$compteur-1]); //echo "Valeur du compteur $i"; if ($kellabel == "mot_passe") {$tabannonces[$ligne-1][$compteur-1] = md5($tabannonces[$ligne-1][$compteur-1]);} if ($i == $nbcolssql) { $requete .= "'".$tabannonces[$ligne-1][$compteur-1]."'"; } else { $requete .= "'".$tabannonces[$ligne-1][$compteur-1]."', "; } } } $requete .= ", date_insert = now()"; $requete .= ", date_update = now()"; $requete.= " WHERE email = '$email'"; echo "<font class='normal'>$requete</font><br />"; mysql_query_override($requete) or die ("<font color='#FF0000'><b>!!!Enregistrement non effectué !!!</b><br /></font>"); } } echo "<font color='#FF0000' class='normal'><b>Fin des enregistrements</b><br /></font>"; } break; default : ?> <form method="post" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data"> <table border="0" cellspacing="1" cellpadding="0" width="100%"> <tr bgcolor="#EEEEEE"><td class="entete" colspan="3">IMPORTER LES UTILISATEURS</td></tr> <tr><td colspan="3" class="normal"> <b>Format impératif du fichier </b>: CSV <br /> <br /> <b>Format du fichier </b>:<br /><br /> Extension : CSV<br /><br /> Sépérateur : <font size="4"><b>;</b></font> point virgule<br /><br /> Nom du fichie d'exemple : exemple_produit.csv<br /><br /> Méthode utilisée : Test sur l'existence de l'email. <br /><br /> <b>Contenu du fichier CSV</b> : <br /> - Email (unique) <br /> - Mot de passe (non crypté) <br /> - Code client (unique) <br /> - Civilité (M., Mme ou Melle) <br /> - Nom de famille <br /> - Prénom <br /> - Adresse <br /> - Code postal <br /> - Ville <br /> - Identifiant du pays (France = 1) <br /> - Téléphone <br /> - Fax <br /> - Portable <br /> - Société <br /> - Remise client ( en % ) <br /> - Abonnement newsletter (1 = oui) <br /> - Privilège (admin = administrateur, util = client) <br /> <br /> <b>Attention :</b><br /> - Il ne doit pas y avoir de formule dans le fichier CSV<br /> - Les virgules des chiffres doivent être symbolisées par des "."<br /> - Le point virgule indique impérativement un changement de colonne<br /> <br /> <br /> 1. Uploader les fichiers CSV dans le répertoire administrer/upload<br /> 2. Insérer le nom du fichier dans le champ suivant et cliquer sur Importer<p></p></td></tr> <br /> <br /> <tr> <td class="normal">Importation du fichier de données :</td> <td align="left"> <input class="formulaire1" type="file" name="fichier" size="40"> </td> </tr> <tr> <td align="center" colspan="3"> <input class="formulaire1" type="submit" name="submit" value="Importer"> </td> </tr> </table> <input type="hidden" name="action" value="ajouter"> </form> <? break; } include("modeles/bas.php"); ?>