Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 27/06/2011, 10h58   #1
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Par défaut Formulaire de contact et envoi de mp3

Bonjour,

je souhaite, sur un formulaire de contact, que l'on puisse m'envoyer également un morceau audio en .mp3 ou .wav mais rien ne se passe...
pouvez-vous m'aider ?
Merci.

contact.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
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
<title>MON SITE</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
 
<body>
<?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
 
<div id="mainContent">
 
<?php
	/* CONFIGURATION */
	/* destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule */
	$destinataire = 'monmail@free.fr';
 
	// copie ? (envoie une copie au visiteur)
	$copie = 'oui';
 
	/* Action du formulaire (si votre page a des paramètres dans l'URL)
	si cette page est index.php?page=contact alors mettez index.php?page=contact
	sinon, laissez vide */
	$form_action = '';
 
	/* Messages de confirmation du mail */
	$message_envoye = "Votre message nous est bien parvenu !";
	$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
 
	/* Message d'erreur du formulaire */
	$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
 
	/* FIN DE LA CONFIGURATION	*/
 
	/* cette fonction sert à nettoyer et enregistrer un texte */
	function Rec($text)
	{
		/* delete white spaces after & before text */
		$text = trim($text); 
		if (1 === get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}
 
		/* magic quotes */
		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); /* converts to string with " and ' as well */
		$text = nl2br($text);
		return $text;
	};
 
	/* Cette fonction sert à vérifier la syntaxe d'un email */
	function IsEmail($email)
	{
		$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
		return (eregi($pattern,$email)) ? true : false;
	};
 
	/* sert pour remplir le formulaire en cas d'erreur si besoin */
	$err_formulaire = false; 
 
	/* si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables. */
	$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
	$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
	$objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
	if (isset($_POST['envoi']))
	{
		/* On va vérifier les variables et l'email */
		$email = (IsEmail($email)) ? $email : '';
		/* soit l'email est vide si erroné, soit il vaut l'email entré */
		$err_formulaire = (IsEmail($email)) ? false : true;
 
		if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
		{
			/* les 4 variables sont remplies, on génère puis envoie le mail */
			$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
 
			/* envoyer une copie au visiteur ? */
			if ($copie == 'oui')
			{
				$cible = $destinataire.','.$email;
			}
			else
			{
				$cible = $destinataire;
			};
 
			/* Remplacement de certains caractères spéciaux */
			$message = html_entity_decode($message);
			$message = str_replace('&#039;',"'",$message);
			$message = str_replace('&#8217;',"'",$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
 
			/* Envoi du mail */
			if (mail($cible, $objet, $message, $headers))
			{
				echo '<p>'.$message_envoye.'</p>'."\n";
			}
			else
			{
				echo '<p>'.$message_non_envoye.'</p>'."\n";
			};
		}
		else
		{
			/* une des 3 variables (ou plus) est vide*/
			echo '<p>'.$message_formulaire_invalide.' <a href="">Retour au formulaire</a></p>'."\n";
			$err_formulaire = true;
		};
	}; /* fin du if (!isset($_POST['envoi'])) */
 
	if (($err_formulaire) || (!isset($_POST['envoi'])))
	{
		/* afficher le formulaire */
		echo '<form id="contact" method="post" action="'.$form_action.'">'."\n";
		echo '	<fieldset><legend>Vos coordonnées</legend>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="nom">Nom :</label>'."\n";
		echo '			<input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="email">Email :</label>'."\n";
		echo '			<input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
		echo '		</p>'."\n";
		echo '	</fieldset>'."\n";
 
		echo '	<fieldset><legend>Votre message :</legend>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="objet">Objet :</label>'."\n";
		echo '			<input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" />'."\n";
		echo '		</p>'."\n";
		echo '		<p>'."\n";
		echo '			<label for="message">Message :</label>'."\n";
		echo '			<textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
		echo '		</p>'."\n";
		echo '	</fieldset>'."\n";
 
		echo '<form id="form1" enctype="multipart/form-data" action="telechargement.php" method="post">';
		echo '<input type="hidden" name="max_file_size" value="1000">Envoyer ce fichier : <input name="fichier" type="file">';
		echo '<input type="submit" name="telechargement" value="Envoyer le fichier">'; 
		echo '</form>';
 
		echo '	<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
		echo '</form>'."\n";
	};
?>
 
</div>
 
<?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
 
</body>
 
</html>
telechargement.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
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
    $content_dir = 'upload/'; // dossier où sera déplacé le fichier
    $tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable");
    }
 
// on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];
    if( !strstr($type_file, 'mp3') && !strstr($type_file, 'wav') )
    {
        exit("Le fichier n'est pas un morceau audio");
    }
 
// on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }
    echo "Le fichier a bien été téléchargé";
}
?>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 11h43   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

il nous faudrait plus de détails, erreurs, ce que ca fait etc...
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 13h29   #3
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
<troll>Tu as bien pensé à mettre ta vraie adresse email?</troll>
Tu as vérifié que les données "html" était correcte? Un simple debogage suffit.
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 13h46   #4
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
oui, j'ai bien mis mon vrai mail...!

sinon, quand je clique sur "Envoyer le fichier", il m'efface la ligne où se trouve le fichier
et quand je clique sur "Envoyer le formulaire !" il ne se passe rien, je reste sur la même page...
merci de votre aide !
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 14h37   #5
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
En déboguant que te donne la balise submit?
À la ligne 124, remplace post par get. Copie/colle la barre d'adresse et remodifie. Ça permettra de vérifier que les paramètres sont ok au moins.
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 14h51   #6
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Il semblerait que tu ne renseignes pas "$form_action". Du coup c'est normal que tu restes sur la même page...
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h06   #7
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
\o/ Bravo, même pas pensé à ça moi.
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 21h51   #8
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Bonjour dhuyp et merci mais
je ne comprends pas :
"En déboguant que te donne la balise submit?"

je suis débutant, comment tu "débogue" ?

PS : j'utilise le logiciel "Geany" pour écrire du PHP

Encore merci pour votre patience
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 10h47   #9
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
ca ne fonctionne pas, car (entre autre) tu as un formulaire dans un autre (le <form>...</form> du telechargement dans le form principal).
Il faut traiter le tout dans un seul formulaire.

1/ formulaire contact :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form method="post" enctype="multipart/form-data" action="<?php echo $form_action; ?>">
<fieldset>
   <legend>Vos coordonnées</legend>
   ........... (suite) .............
</fieldset>
<fieldset>
   <legend>Votre message</legend>
   ........... (suite) .............
</fieldset>
<fieldset>
   <legend>Joindre un fichier (mp3, wav)</legend>
   <input type="hidden" name="max_file_size" value="5000000">
   <input name="fichier" type="file" />
</fieldset>
<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire" /></div>
</form>
2/ Traitement (dans le fichier "$form_action") :
- recuperation des données du formulaire
- upload du fichier joint (mettre "telechargement.php" en include dans le fichier "$form_action")
- envoi du mail

3/ upload du fichier joint (fichier "telechargement.php")
remplacer :
if( isset($_POST['upload']) ) // si formulaire soumis
par :
if( isset($_POST['fichier']) && $_POST['fichier'][size]>0) // si fichier joint
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 09h43   #10
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
j'ai réussi à trouver un script qui fonctionne bien
sauf une chose : l'envoi de mail chez Free (mon hébergeur) est limité à 2 Méga sur le serveur, donc je ne peux envoyer de MP3 (généralement ça fait plus...) :
connaissez-vous une solution pour envoyer directement le mail sans passer par le serveur ?
Merci de votre aide.

Ci-dessous mon code qui fonctionne :

contact.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
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
 
/* VARIABLES A MODIFIER */
 
# remplacez login@fai par votre email
$destinataire = "monmail@free.fr";
# nom et titre de page
$pageName = "Formulaire de contact";
# en-tête de l'objet du mail (option: vide)
$entete = "";
# envoi en copie carbone (option: vide)
$email_cc = "";
# envoi en copie cachée (option: vide)
$email_bcc = "";
# emplacement de la feuille de styles
$cssform = "style.css";
# nom du répertoire pour upload des pièces jointes
# le répertoire (ici "upload") doit être créé sur le serveur
$rep = "upload/"; // ne pas oublier le slash /
# taille max de la pièce jointe (multiple de 1024 2048000 = 2 Mo  )
$taillemax = 4096000;
# page vers laquelle rediriger le script après envoi réussi
$pageconfirme = "contact2.php";
# traiter $_GET['mailOK'] dans $pageconfirme (ex. index.php) comme ceci :
# if(isset($_GET['mailOK'])) echo "Votre message a été envoyé";
 
/* FIN DES VARIABLES A MODIFIER */
 
$erreur = false;
$message = false;
$focus = 0;
 
# l'utilisateur a validé le formulaire
if (!empty($_POST)) {
 
	# vérification des champs requis (Nom, Objet, Message, Email ou Tel)
	if (empty($_POST['Message'])) {
		$erreur = "Merci de renseigner le message";
		$focus = 1; // modification couleur du champ de saisie concerné
	}
	if (empty($_POST['Objet'])) {
		$erreur = "Merci de renseigner l'objet";
		$focus = 2;
	}
	if (empty($_POST['Nom'])) {
		$erreur = "Merci de renseigner votre nom";
		$focus = 3;
	}
	# email et tel sont vides : pas glop !
	if (empty($_POST['Email']) && empty($_POST['Tel'])) {
		$erreur = "Saisir votre email SVP";
		$focus = 4;
	}
	# vérification de l'email non vide
	elseif (!empty($_POST['Email'])) {
		if(!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*\.([a-z]{2,4})$`',$_POST['Email'])) {
			$erreur = "Email non conforme";
			$_POST['Email'] = "";
			$focus = 5;
		}
 
	}
 
	# pièce jointe
	$piecejointe = "";
	if(!$erreur && strlen($_FILES['Fichier']['name'])) {
		$fichier = $_FILES['Fichier'];
		# upload du fichier sur le serveur
		$temp = $fichier['tmp_name'];
		$name = $fichier['name'];
		$size = $fichier['size'];
		$destination = $rep.$name;
		if($size > $taillemax)
			$erreur = "Taille du fichier $name > ".(int)($taillemax/1024)." Ko";
		elseif(!@is_uploaded_file($temp))
			$erreur = "T&eacute;l&eacute;chargement du fichier $name impossible";
		elseif(!@move_uploaded_file($temp, $destination))
			$erreur = "Probl&egrave;me de transfert du fichier $name";
		if($erreur) $focus = 7;
		else {
			# lecture du type de fichier
			if(!function_exists('mime_content_type')) {
			function mime_content_type($fichier) {
			# ajouter autant de combinaisons que souhaitées
			$mime = array(
			'txt' => 'text/plain',
            'htm' => 'text/html',
            'html' => 'text/html',
            'php' => 'text/html',
            'css' => 'text/css',
            'js' => 'application/javascript',
            'json' => 'application/json',
            'xml' => 'application/xml',
            'swf' => 'application/x-shockwave-flash',
            'flv' => 'video/x-flv',
 
            // images
            'png' => 'image/png',
            'jpe' => 'image/jpeg',
            'jpeg' => 'image/jpeg',
            'jpg' => 'image/jpeg',
            'gif' => 'image/gif',
            'bmp' => 'image/bmp',
            'ico' => 'image/vnd.microsoft.icon',
            'tiff' => 'image/tiff',
            'tif' => 'image/tiff',
            'svg' => 'image/svg+xml',
            'svgz' => 'image/svg+xml',
 
            // archives
            'zip' => 'application/zip',
            'rar' => 'application/x-rar-compressed',
            'exe' => 'application/x-msdownload',
            'msi' => 'application/x-msdownload',
            'cab' => 'application/vnd.ms-cab-compressed',
 
            // audio/video
            'mp3' => 'audio/mpeg',
            'qt' => 'video/quicktime',
            'mov' => 'video/quicktime',
 
            // adobe
            'pdf' => 'application/pdf',
            'psd' => 'image/vnd.adobe.photoshop',
            'ai' => 'application/postscript',
            'eps' => 'application/postscript',
            'ps' => 'application/postscript',
 
            // ms office
            'doc' => 'application/msword',
            'rtf' => 'application/rtf',
            'xls' => 'application/vnd.ms-excel',
            'ppt' => 'application/vnd.ms-powerpoint',
 
            // open office
            'odt' => 'application/vnd.oasis.opendocument.text',
            'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
 
			'.gif' => 'image/gif',
			'.jpg' => 'image/jpeg',
			'.psd' => 'image/x-xwd',
			'.png' => 'image/png',
			'.txt' => 'text/plain',
			'.doc' => 'application/msword',
			'.xls' => 'application/vnd.ms-excel',
			);
			# par défaut
			if(!$type = $mime[strrchr($fichier,'.')]) $type = "application/octet-stream";
			return $type;
			}
			}
 
			$mimetype = mime_content_type($destination);
			# lecture et conversion du fichier
			if($openf = @fopen($destination, "rb")) {
				$fichier = fread($openf, filesize($destination));
				@fclose($openf);
				# encodage norme RFC 2045
				$piecejointe = chunk_split(base64_encode($fichier));
			} else {
				$erreur = "Probl&egrave;me de lecture du fichier $name";
				$focus = 7;
			}
		}
 
	}
	# pas d'erreur donc on continue
	if(!$erreur) {
 
		# traitement du tableau $_POST qui contient les paires name => value
		$message_final = "";
		foreach($_POST as $key => $value) {
			# la boucle passe les champs vides ou non désirés
			# pour passer d'autres champs les séparer par |
			if (!strlen($value) || eregi("(MAX_FILE_SIZE|Objet)", $key)) continue;
			$message_final .= "$key : ".strip_tags($value)."\n";
		}
		# formatage du message de confirmation affiché (option)
		# conversion des sauts de ligne et des caractères spéciaux
		$message = ereg_replace("(\n|\r|\r\n)", "<br>", htmlentities($message_final));
		# met en objet le menu déroulant
		$objet = $_POST['Objet'];
		# si l'email n'est pas renseigné on le remplace par celui du destinataire, en ajoutant une alerte au message
		$final_mail = $_POST['Email'];
		if(empty($_POST['Email'])) {
			$final_mail = $destinataire;
			$message_final .= "\nNe pas répondre par mail : email absent.\n";
		}
		# en-têtes
		$headers = "From: ".$final_mail;
		if(strlen($email_cc))
			$headers .= "\nCC: ".$email_cc;
		if(strlen($email_bcc))
			$headers .= "\nBCC: ".$email_bcc;
		# hôte expéditeur
		$message_final .= "Hôte : ".gethostbyaddr($_SERVER['REMOTE_ADDR']);
		# si pièce jointe on ajoute l'en-tête spécifique avec séparateurs
		if(strlen($piecejointe)) {
			$boundary = "/-------".md5(uniqid(rand()))."-------/"; // séparateur
			$headers .= "\nMIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"$boundary\"\n";
			$message_final =
				"This is a multi-part message in MIME format.\n--$boundary\n".
				"Content-Type: text/plain; charset=ISO-8859-1\n".
				"Content-Transfer-Encoding: 7bit\n\n".
				"$message_final\n\n--$boundary\n".
				"Content-Type: $mimetype; name=\"$name\"\n".
				"Content-Transfer-Encoding: base64\n".
				"Content-Disposition: attachment; filename=\"$name\"\n\n".
				"$piecejointe\n--".
				$boundary."--\n";
		}
 
		# envoi du mail
		if (@mail($destinataire, stripslashes($objet), stripslashes($message_final), $headers)) {
			@unlink($destination); // suppression de la pièce jointe
			@header("Location: ".$pageconfirme."?mailOK=1");
			exit;
		 } else {
			$pageName = "Echec !";
			$erreur = "Echec de l\'envoi ! Merci d\'essayer encore";
		 }
 
	} else {
 
		$pageName = "Erreur de saisie !";
 
	} // if(!$erreur)
 
} // if ($_POST)
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
<title>MON SITE</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
 
<body>
<?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
 
<div id="mainContent">
 
<?
if (!$erreur) 
{
?>
<h4>Contact</h4>
<p>Merci de renseigner tous les champs </p>
<?
}
else
{
echo '<p>';
echo '<div class="alerte">';
echo $erreur;
echo '</div>';
echo '<br>';
echo '</br>';
echo '</p>';
}
?>
 
</p>
<form name="formulaire" action="<? echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<p>
<label for="nom">Nom</label>
<input type="text" id="nom" name="Nom" maxlength="40" class="ev" tabindex="1" onfocus="this.className='textarea_focus';" 
onblur="this.className='';valide(this, 'err_nom');">
</input>
 
</p>
<p>
<label for="email">Email</label>
<input id="email" name="Email" maxlength="60" class="ev" tabindex="2" onfocus="this.className='textarea_focus';" 
onblur="this.className='';valide(this, 'err_nom');">
</input>
</p>
<p>
<label for="objet">Objet</label>
<select name='Objet' id="objet" class="ev" tabindex="3" onfocus="this.className='textarea_focus';" 
onblur="this.className='';valide(this, 'err_nom');" >
<option>Choisir</option>
<option>Envoyer MP3</option>
<option>Envoyer oeuvre</option>
<option>Autres</option>
</select>
</p>
<p>
<label for="message">Message</label>
<textarea id="message" name="Message" class="ev" tabindex="4" onfocus="this.className='textarea_focus';" 
onblur="this.className='';valide(this, 'err_nom');" >
</textarea>
</p>
 
<?
if (file_exists($rep)) 
{
?>
<p>
<label for="fichier">Pi&egrave;ce jointe</label>
<input type="hidden" name="MAX_FILE_SIZE" value="<? echo $taillemax?>">
<input type="file" id="fichier" name="Fichier" size="35" tabindex="5" onfocus="this.className='textarea_focus';" 
onblur="this.className='';valide(this, 'err_nom');" >
</p>
<p>
<label>&nbsp;</label>NB : taille du fichier inf&eacute;rieure &agrave; <?= (int)($taillemax/1024)?> Ko
</p>
<?
}
?>
 
<p>
<label>&nbsp;</label><input id="submit" tabindex="6" type="submit" value="Envoyer">
</p>
 
</form>
</div>
</body>
</html>
et la page si le mail a été envoyé :

contact2.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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
<title>MON SITE</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
 
<body>
 
<?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
 
<div id="mainContent">
 
<br></br>
 
<p>
<h3>Votre message nous est bien parvenu, nous le traiterons dans les meilleurs d&eacute;lais</h3>
</p>
 
<br></br>
 
<a href="index.php">Retour &agrave; l'accueil</a>
 
</div>
<br></br><br></br><br></br><br></br>
 
<?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
 
</body>
</html>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 09h49   #11
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
apparemment, tu upload le fichier mp3 sur ton serveur,
donc : inutile de le mettre en pièce jointe
Il suffit de connaitre le chemin d'accès :
- dans ton mail : "fichier téléchargé à cette adresse : ...(chemin d'accès)..."
- (et éventuellement tu le récupéres via le FTP)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 10h25   #12
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
@ jreaux62 :

en fait, il ne veut pas l'uploader vu que mon fichier fait plus de 2Mo :

j'ai le message suivant :
Téléchargement du fichier titre.mp3 impossible

Merci.
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h02.


 
 
 
 
Partenaires

Hébergement Web