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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
function ImportAbonnes ($file)
{
if ($file['type'] == 'text/plain' || $file['type'] == 'text/csv')
{
switch ($file['error'])
{
case 0: //--- Pas d'erreur
$arr1 = array() ;
$arr2 = array() ;
//----
$sql = ' SELECT ' . PREFIX_DB . 'newsletter_abonne.mail FROM ' . PREFIX_DB . 'newsletter_abonne' ;
$query = mysql_query($sql) or die (mysql_error());
$handle = $file['tmp_name'] ; // nom du fichier txt
//---
while ( $row_mail = mysql_fetch_assoc($query) ) // boucle de génération d'un arry avec les mails, tableau 1
{
$email = $row_mail['mail'] ;
$arr1[$email] = 1 ;
}
//--- lecture du fichier texte, tableau 2
if (file_exists($handle)) // vérifi l'existance du fichier
{
$buffer = fopen ($handle, "r") ; // ouverture du fichie en lecture
$buffer = file($handle) ; // lit le fichier et le converti en tableau
$buffer = array_unique($buffer); // supprime les doublons
$buffertmp = array_count_values($buffer); // tableau des doublons
$MailExclus = '' ; // déclaratiopn de la 1er valeur (avant concatenation)
foreach ($buffertmp as $key => $value) // boucle sur le tableau de doublon
{
if ($value > 1)
$MailExclus.= $key ; // concaténation de la valeur
}
foreach ($buffer as $email) // boucle de génération du 2éme array
{
$email = trim($email);
if ( !isset($arr1[$email]) && GlobalFunction::VerifAdresseMail($email)==TRUE) // commpare le tableau de la bd avec celui du fichier + vérification du format du mail
{
$arr2[] = $email;
}
else
{
$MailExclus.= $email . "\r\n" ; // liste des mails exclus
}
}
if (!empty($arr2))
{
foreach($arr2 as $mail) // boucle d'insertion en base des mails restant du fichier
{
$insertSQL = sprintf('INSERT INTO ' . PREFIX_DB . 'newsletter_abonne (mail) VALUES (%s)',
Sql::GetSQLValueString($mail, "text")
);
$Result1 = mysql_query($insertSQL) or die(mysql_error());
}
}
$result2 = count($arr2); // compte le Nb d'enregistrement importée
}
else
{
$retour -> msg[] = 'Impossible de lire le fichier : ' . $file['name'] ;
$retour -> valide[] = FALSE ;
}
/***********************************/
if (!empty($result2))
{
$retour -> msg[] = $result2 . ' adresse' . ($result2 >= 2 ? 's' : '') . ' mail enregistré' . ($result2 >= 2 ? 's' : '') ;
$retour -> valide[] = TRUE ;
}
else
{
$retour -> msg[] = 'Après annalyse des mails du fichier "' . $file['name'] . '" et comparaison avec ceux existant en base de donnée, aucun mail n\'a été enregistré.';
$retour -> valide[] = FALSE ;
}
/**************** FIN DU PROCESSUS ****************/
break;
case 1: // UPLOAD_ERR_INI_SIZE
$retour -> msg[] = 'Le fichier téléchargé excède la taille maximum autorisée pour le téléchargement.' ;
$retour -> valide[] = FALSE ;
break;
case 2: // UPLOAD_ERR_FORM_SIZE
$retour -> msg[] = 'Le fichier téléchargé excède la taille maximum autorisée pour le téléchargement.' ;
$retour -> valide[] = FALSE ;
break;
case 3: // UPLOAD_ERR_PARTIAL
$retour -> msg[] = 'Le fichier a été partiellement téléchargé.' ;
$retour -> valide[] = FALSE ;
break;
case 4: // UPLOAD_ERR_NO_FILE
$retour -> msg[] = 'Aucun fichier n\'a été téléchargé.' ;
$retour -> valide[] = FALSE ;
break;
case 5: // UPLOAD_ERR_NO_FILE
$retour -> msg[] = 'Erreur 5' ;
$retour -> valide[] = FALSE ;
break;
case 6: // UPLOAD_ERR_NO_FILE
$retour -> msg[] = 'Le dossier temporaire est manquant.' ;
$retour -> valide[] = FALSE ;
break;
case 7: // UPLOAD_ERR_NO_FILE
$retour -> msg[] = 'Échec de l\'écriture du fichier sur le disque.' ;
$retour -> valide[] = FALSE ;
break;
case 8: // UPLOAD_ERR_NO_FILE
$retour -> msg[] = 'L\'envoi de fichier est arrêté par l\'extension.' ;
$retour -> valide[] = FALSE ;
break;
}
}
else
{
$retour -> msg[] = 'Le fichier n\'a pas le bon format : ' . $file['type'] ;
$retour -> valide[] = FALSE ;
}
return $retour;
} |
Partager