IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoi mail multiple


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Points : 34
    Points
    34
    Par défaut Envoi mail multiple
    Bonjour,
    je viens de créer un formulaire d'upload ainsi que son script en php. L'utilisateur peut notifier de 0 à 10 adresse mails pour envoyer le lien de téléchargement à ses amis par exemple. J'ai donc placé dans mon formulaire 10 input text name="email[]". Lorsque je fais submit je voudrais que les mails soient envoyés. Dans ma partie upload.php je mets donc un code tel que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST['email'] as $key => $error){
      //code pour l'envoi du mail (fonction mail())
    }
    Cela vous paraît-il bon ? Merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    oui

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Points : 34
    Points
    34
    Par défaut
    Mais ayant déjà un foreach dans ma page pour l'upload de plusieurs fichiers en même temps, dois-je le placer avant ou après ce foreach ? Merci

  4. #4
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Si ta fonction mail envoi seulement un mail à la fois, elle sera placé dans la boucle.

    Ce qu'il faut avoir en tête :

    Il faut qu'il y ait autant de mail envoyé que de champs email saisi.

    Mais tu précises qu'il n'y a pas qu'un champs d'upload sur ta page ?

    Ce qui voudrait dire qu'il faut autant d'email que d'email saisi multiplié par le nombre de fichier uploadé ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Points : 34
    Points
    34
    Par défaut
    Je voudrais qu'à chaque upload (je précise que j'ai 4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="fichier[]"..>
    )

    un ou plusieurs mails soient envoyés aux adresses mails notifiées dans le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="mail[]"..>
    Si la personne upload 2 fichiers alors les deux fichiers seront dans le même mail.

    Voici mon code (upload.php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
    session_start();
    //Connexion BDD
    $base = mysql_connect('localhost','root','') or die ("Impossible de se connecter : ".mysql_error());
    mysql_select_db('upload', $base);
     
    echo '<h2><p align=center>Détails de l\'upload</h2>';
    if (isset($_FILES["fichier"])) {
                foreach ($_FILES["fichier"]["error"] as $key => $error) {   
    				if($_FILES['fichier']['tmp_name'][$key]){
    $dossier = 'upload/';
    $fichier = basename($_FILES['fichier']['name'][$key]);
    $taille_maxi = 20971520;
    $taille = filesize($_FILES['fichier']['tmp_name'][$key]);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.mp3', '.doc', '.docx', '.avi', '.txt', '.pdf', '.rar', '.mp4', '.mpeg');
    $extension = strtolower(strrchr($_FILES['fichier']['name'][$key], '.'));
    $upload_results = array();
    //Variables pour insertion + Insertion BDD
    $mdpForm = $_POST['motdepasse'];
    $ip = $_SERVER['REMOTE_ADDR'];
    //Début des vérifications de sécurité...
    	if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    		{
    		$erreur = '<p align=center>Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt, doc, mp3 ou encore avi<br>';
    		}
    			if($taille>$taille_maxi)
    			{
    			$erreur = '<p align=center>Le fichier est trop volumineux';
    			}
    				if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    				{
    				//On formate le nom du fichier ici...
    				$fichier = strtr($fichier,
    				'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
    				'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    				$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    				$fichier = uniqId().$extension;
    				$tmp_name = $_FILES["fichier"]["tmp_name"][$key];
    				$url = 'http://localhost/Projet/upload/'.$fichier;
    					if($upload_results[$fichier] = move_uploaded_file($_FILES['fichier']['tmp_name'][$key], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    					{
    					$dateUp = date("Y-m-d");					
    					$Requete = "INSERT INTO utilisateur (url, password, ip, fichier, date) VALUES ('".$url."', '".$mdpForm."', '".$ip."', '".$fichier."', '".$dateUp."')";
    					$result = mysql_query($Requete) or die('<font color="red">Error :/</font> on line <b>'.__LINE__.'</b>:<br />'.mysql_error());					
    					$com = '<p align=center>Cliquez ici pour télécharger le fichier';
    					echo '<p align=center><a  href="'.$url.'">'.$com.'</a><br/>';
    					echo '<a href="http://localhost/Projet/identification.php?fichier='.$fichier.'">Visualiser</a><br>';
    					}
    					else //Sinon (la fonction renvoie FALSE).
    					{
    					echo '<p align=center>Echec de l\'upload !';
    					}
    					}
    					else
    					{
    					echo $erreur;
    				}
    echo '<a href="efface.php?supprimeLeFichier='.($fichier).'">supprimer</a><br />';
    echo count(array_keys($upload_results, true, true)) . " fichiers envoyés avec succès<br>";
    echo count(array_keys($upload_results, false, true)) . " fichiers n'ont pas été envoyés<br>";
    														}else{
    															echo '';
    														}
    }
    }
    echo '<br><p align=center>Adresse ip du client : '.$_SERVER['REMOTE_ADDR'].'';
    echo '<p align=center>Port utilisé par le client : '.$_SERVER['REMOTE_PORT'].'';
    //Fermeture BDD
    mysql_close($base);
    ?>
    Le problème c'est que je ne sais pas où placer le foreach dans cette boucle ainsi que la fonction mail(). Merci de votre aide Gats !

Discussions similaires

  1. [XL-2002] Envoi de mails multiples - pièce jointe différente
    Par Phanloga dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 30/04/2011, 10h06
  2. Envoi e-mail multiples
    Par peaceandloveman01 dans le forum Développement
    Réponses: 10
    Dernier message: 25/06/2010, 13h01
  3. Envois de mails multiples
    Par nicolasferraris dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2010, 13h49
  4. envoi de mail multiple vers la meme adresse
    Par manu7607 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 22/08/2009, 22h11
  5. envois de mail multiple
    Par Jcpan dans le forum Langage
    Réponses: 6
    Dernier message: 25/02/2009, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo