Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/06/2011, 09h29   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : 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 : 11
Points : 11
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 :
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
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 10h28   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
oui
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 10h39   #3
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : 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 : 11
Points : 11
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
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 12h28   #4
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
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é ?
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 13h20   #5
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : 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 : 11
Points : 11
Je voudrais qu'à chaque upload (je précise que j'ai 4
Code :
<input type="file" name="fichier[]"..>
)

un ou plusieurs mails soient envoyés aux adresses mails notifiées dans le
Code :
<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 :
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 !
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h54.


 
 
 
 
Partenaires

Hébergement Web