Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 28/01/2007, 15h03   #1
Invité de passage
 
Inscription : janvier 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 9
Points : 1
Points : 1
Par défaut [Upload] Attacher au mail un fichier uploadé dans un formulaire

Bonjour,

Je suis parvenu à réaliser un formulaire de contact en PHP et à récupérer les infos dans le mail que je reçois après validation de l'utilisateur.

Quand je dis toutes les infos, c'est à une près. Je ne parviens pas à attacher le fichier image téléchargé par l'utilisateur sur son disque.

Quelqu'un pourrait-il m'éclairer sur le code à insérer pour y parvenir ? (la ligne avec "fichier" en tête de page est probablement incorrecte)

Merci beaucoup.

Voici mon code :

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
<?php
if($_POST['action'] == 'submitted')
{
	$adress = "laurentauc@aol.com";
	$sujet = "{$_POST['demande']}\n";
	$message = "Une demande a été faite depuis le formulaire en ligne d'ADHOC\n";
	$message .= "Nom: {$_POST['nom']}\nPrenom: {$_POST['prenom']}\nEntreprise: {$_POST['entreprise']}\nTelephone: {$_POST['telephone']}\nFax: {$_POST['fax']}\nE-mail: {$_POST['email']}\n";
	$message .= "Reference: {$_POST['reference']}\nCouleur: {$_POST['couleur']}\nQuantite: {$_POST['quantite']}\nTaille: {$_POST['taille']}\n";
	$fichier .= "Motif: {$_FILES['motif']}\n";
	$message .= "Commentaires: {$_POST['commentaires']}\n";
	$entete = "From: {$_POST['email']}\n";
	mail($adress, $sujet, $message, $entete, $fichier);
	//page de sortie
	$insertGoTo = "http://www.adhoc-marquage.com/pages/confirmation.htm";
	if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
    	$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
		$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
		}
	header(sprintf("Location: %s", $insertGoTo));
}
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xthml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>AD HOC, Solutions de marquage - Textile, bagagerie, objets publicitaires, boutique photo, espace 23</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<link rel="stylesheet" type ="text/css" href="/styles/styles_adhoc.css" media="screen" />
</head>
 
<body>
 
<!-- Bandeau haut de page -->
<div id="header1"></div>
<div id="fondheader">
	<div id="header2">
		<ul id="menuhaut">
			<li><a href="/pages/textile.php" title="Textile" alt="Textile">Textile</a> l </li>
			<li><a href="/pages/bagagerie.php" title="Bagagerie" alt="Bagagerie">Bagagerie</a> l </li>
			<li><a href="/pages/objets_pub.php" title="Objets publicitaires" alt="Objets publicitaires">Objets pub</a> l </li>
			<li><a href="/pages/boutique_photo.php" title="Boutique photo" alt="Boutique photo">Boutique photo</a> l </li>
			<li><a href="/pages/espace_23.php" title="Espace Creuse" alt="Espace Creuse">Espace 23</a></li>
		</ul>
	</div>
</div>
 
<!-- Menu horizontal -->
<div id="hautmenu">	
	<div id="global">
		<h1><img src="/images/pictos/picto_contact.gif" title="Contact" alt="Pictogramme contact">Contact</h1>
		<h2>Remplissez le formulaire ci-dessous et faites parvenir votre demande</h2>
  </div>
</div>
 
<!-- Menu vertical -->
<div id="fondmenu">
	<div id="menu">
		<ul>
			<li><a href="/index.htm" title="Index" alt="Index">. Index</a></li>
			<li><a href="/pages/promo.php" title="Promo du mois" alt="Promo du mois">. Promo du mois</a></li>
			<li><a href="/pages/entreprise.php" title="L'entreprise" alt="L'entreprise">. L'entreprise</a></li>
			<li><a href="/pages/catalogue.php" title="Catalogue" alt="Catalogue">. Catalogue</a></li>
			<li><a href="/pages/contact.php" title="Contact" alt="Contact">. Contact</a></li>
			<li><a href="/pages/lettre_info.php" title="Lettre d'info">. Lettre d'info</a></li>
			<li><a href="/pages/liens.php" title="Liens">. Liens</a></li>
		</ul>
	</div>
 
	<!-- Contenu general -->
	<div id="global">
		<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="forml" onSubmit="return verif_champs()">
 		<div id="contact">
			<div id="coordonnees">
				<h3><label for="titre">Type de demande</label></h3>
				<p>
					<select name="demande" size="1">
					<option value=""></option>
					<option value="Demande de prix depuis formulaire">prix</option>
				  	<option value="Demande de renseignement technique depuis formulaire">renseignement technique</option>
				  <option value="Demande autre depuis formulaire">autre</option></select>
				</p>
				<h3>Vos coordonn&eacute;es</h3>     
        		<p>
					<label for="nom">* Nom</label>
        			<input type="text" size="20" name="nom">
				</p>
				<p>
					<label for="prenom">* Pr&eacutenom</label>
        			<input type="text" size="20" name="prenom">
				</p>
				<p>
					<label for="entreprise">Entreprise</label>
        			<input type="text" size="20" name="entreprise">
				</p>
				<p>
					<label for="telephone">T&eacute;l&eacute;phone</label>
        			<input type="text" size="20" name="telephone">
				</p>
				<p>
					<label for="fax">Fax</label>
        			<input type="text" size="20" name="fax">
				</p>
				<p>
					<label for="email">* Email</label>
        			<input type="text" size="20" value="" name="email">
				</p>
			</div>
			<div id="demande">
				<h3><label for="titre">Type de support</label></h3>
				<p>
					<label for="reference">R&eacute;f&eacute;rence</label>
        			<input type="text" size="20" value="" name="reference">
				</p>
				<p>
					<label for="quantite">Couleur</label>
        			<input type="text" size="20" value="" name="quantite">
				</p>
				<p>
					<label for="couleur">Quantit&eacute;</label>
        			<input type="text" size="20" value="" name="couleur">
				</p>
				<p>
					<label for="taille">Taille</label>
					<select name="taille" size="1">
					<option value=""></option>
					<option value="1-S">1-S</option>
					<option value="2-M">2-M</option>
					<option value="3-L">3-L</option>
					<option value="4-XL">4-XL</option>
					<option value="5-XXL">5-XXL</option>
					<option value="6-3XL">6-3XL</option>
					<option value="7-4XL">7-4XL</option></select>
				</p>
				<h3><label for="titre">Caract&eacute;ristiques du motif</label></h3>
				<p>
					<label for="largeur">Largeur motif (cm)</label>
        			<input type="text" size="20" value="" name="largeur">
				</p>
				<p>
					<label for="hauteur">Hauteur motif (cm)</label>
        			<input type="text" size="20" value="" name="hauteur">
				</p>
				<p>
        			<label for="motif">Motif &agrave; marquer</label>
					<input type="hidden" name="MAX_FILE_SIZE" value="2000" />
					<input name="motif" type="file" size="4" />
				</p>
			</div>
			<br />
			<div id="commentaires">
 
			  <p><h3>Commentaires</h3>				
 
					<textarea cols="60" rows="5" value="" name="commentaires"></textarea>
				</p>
			</div>			
		</div>
		<p align="center">
		<input type="hidden" name="action" value="submitted">
		<input type="submit" name="Submit" value="Envoyer">
		</p>
	  </form>
	</div>
</body>
</html>
littlesnoopy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2007, 15h49   #2
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Salut,

ya un tutoriel sur l'upload de fichier ici et pour l'envoi de mail ya la classe phpMailer ici.

Sinon quand tu donnes du code, essaie d'isoler la partie où tu coinces et utilise la balise code (bouton #)
billoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2007, 19h43   #3
Invité de passage
 
Inscription : janvier 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 9
Points : 1
Points : 1
Autant pour moi, je vais tenter de mieux présenter mon code cette fois-ci.
J'ai fouiné parmi les nombreux scripts et autres tutoriels présents sur le net et voici le code PHP en tête de ma page :

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
<?php
if($_POST['action'] == 'submitted')
{
 
	$adress = "laurentauc@aol.com";
	$sujet = "{$_POST['demande']}\n";
	$message = "Une demande a été faite depuis le formulaire en ligne d'ADHOC\n";
	$message .= "Nom: {$_POST['nom']}\nPrenom: {$_POST['prenom']}\nEntreprise: {$_POST['entreprise']}\nTelephone: {$_POST['telephone']}\nFax: {$_POST['fax']}\nE-mail: {$_POST['email']}\n";
	$message .= "Reference: {$_POST['reference']}\nCouleur: {$_POST['couleur']}\nQuantite: {$_POST['quantite']}\nTaille: {$_POST['taille']}\n";
	$message .= "Commentaires: {$_POST['commentaires']}\n";
	$entete = "From: {$_POST['email']}\n";
	if(isset($_FILES['photo']))
	{
		unset($erreur);
		$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
		$taille_max = 100000;
		$dest_dossier = '/images/photos_clients/';
		if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
		{ 
			$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
		}
		elseif( file_exists($_FILES['photo']['tmp_name'])
			and filesize($_FILES['photo']['tmp_name']) > $taille_max)
		{
			$erreur = 'Votre fichier doit faire moins de 500Ko !';
		}
		if(!isset($erreur))
		{
		$dest_fichier = basename($_FILES['photo']['name']);
		$dest_fichier = strtr($dest_fichier,
     		'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
	 		'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
		$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);  
		move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);  
		}
	}
	mail($adress, $sujet, $message, $entete);
	//page de sortie
	$insertGoTo = "http://www.adhoc-marquage.com/pages/confirmation.htm";
	if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
    	$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
		$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
		}
	header(sprintf("Location: %s", $insertGoTo));
}
?>
Et les deux lignes dans le corps destinés à télécharger le fichier :
Code :
1
2
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
					<input name="photo" type="file" size="4" />
Je reçois les messages d'erreurs suivants :

Code :
1
2
3
4
5
Warning: move_uploaded_file(/images/photos_clients/picto_bagagerie.gif): failed to open stream: No such file or directory in D:\inetpub\vhosts\ADHOC-MARQUAGE.COM\httpdocs\pages\contact.php on line 34
 
Warning: move_uploaded_file(): Unable to move 'C:\WINDOWS\Temp\phpFC8.tmp' to '/images/photos_clients/picto_bagagerie.gif' in D:\inetpub\vhosts\ADHOC-MARQUAGE.COM\httpdocs\pages\contact.php on line 34
 
Warning: Cannot modify header information - headers already sent by (output started at D:\inetpub\vhosts\ADHOC-MARQUAGE.COM\httpdocs\pages\contact.php:34) in D:\inetpub\vhosts\ADHOC-MARQUAGE.COM\httpdocs\pages\contact.php on line 44
(picto_bagagerie.gif est le fichier que j'ai tenté de télécharger)

Ai-je mal placé le code PHP destiné à uploader le fichier ?
littlesnoopy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2007, 20h10   #4
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Essaie en faisant:

Code :
1
2
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);  
chmod($dest_fichier, 0777);
billoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2007, 21h11   #5
Invité de passage
 
Inscription : janvier 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 9
Points : 1
Points : 1
Cela n'a rien changé aux messages d'erreurs et à la récupération du fichier attaché.
Je ne sais si cela vient de là, mais j'ai tenté en vain de régler le chmod via un clic droit sur le répertoire où uploader le fichier (/images/photos_clients). Les paramètres que je définis ne sont pas engeristrés.
littlesnoopy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2007, 21h49   #6
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Pardon je voulais dire:
Code :
1
2
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);  
chmod($dest_dossier . $dest_fichier, 0777);
Je ne pense pas que changer les droits via ton compte ftp serve à qlque chose pour ton problème, parce que php utilise un autre compte pour accéder aux fichiers.
billoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2007, 22h22   #7
Invité de passage
 
Inscription : janvier 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 9
Points : 1
Points : 1
J'obtiens toujours une erreur du type

Citation:
Warning: move_uploaded_file(/images/photosclients/picto_liens.gif): failed to open stream: No such file or directory in D:\inetpub\vhosts\ADHOC-MARQUAGE.COM\httpdocs\pages\contact.php on line 33

Warning: move_uploaded_file(): Unable to move 'C:\WINDOWS\Temp\phpFE8.tmp' to '/images/photosclients/picto_liens.gif' in D:\inetpub\vhosts\ADHOC-MARQUAGE.COM\httpdocs\pages\contact.php on line 33

Warning: chmod(): No such file or directory in D:\inetpub\vhosts\ADHOC-MARQUAGE.COM\httpdocs\pages\contact.php on line 34

Warning: Cannot modify header information - headers already sent by (output started at D:\inetpub\vhosts\ADHOC-MARQUAGE.COM\httpdocs\pages\contact.php:33) in D:\inetpub\vhosts\ADHOC-MARQUAGE.COM\httpdocs\pages\contact.php on line 44
littlesnoopy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2007, 23h34   #8
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Citation:
No such file or directory
En fait c'est pas une question de droit, il ne trouve pas le fichier .

Supprime le premier / de $dest_dossier pour avoir un chemin relatif.
billoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 00h02   #9
Invité de passage
 
Inscription : janvier 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 9
Points : 1
Points : 1
J'ai testé sans le premier "/" du répertoire d'upload, cela ne change rien.
Alors j'ai testé un autre script qui me donne le même résultat, à savoir que le message "Problème de transfert du fichier" s'affiche.
J'ai pourtant créé mon répertoire "upload" à la racine de mon site, au même niveau que mes répertoires "pages" et "images". J'ai ensuite tenté d'écrire l'adresse URL en dur "http://www.adhoc-marquage.com/upload/", mais le résultat est identique.
S'il ne trouve pas le fichier, je ne parviens pas à voir pourquoi

Voici le second script PHP testé et intégré dans ma page :

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
324
325
326
327
328
329
330
331
332
333
334
<?php
/*
Envoi de formulaire sans javascript avec pièce jointe
proposé par Pierre Pesty http://dev.ppan.net/
Variables à modifier selon paramètres et besoins :
*/
# le nom de page (et titre) change en fonction des événements
$pageName = "Formulaire de contact";
# en-tête de l'objet du mail (option: vide)
$entete = "";
# email du webmestre
$destinataire = "laurentauc@aol.com";
# envoi en copie carbone (option: vide)
$email_cc = "";
# envoi en copie cachée (option: vide)
$email_bcc = "";
# options de pièce jointe
# répertoire temporaire d'upload (option: vide ou $rep inconnu)
# NB. le répertoire "upload" doit être créé sur le serveur (en FTP)
$rep = "http://www.adhoc-marquage.com/upload/"; // ne pas oublier le slash /
# taille max de la pièce jointe (multiple de 1024)
$taillemax = 500000;
# menu déroulant pour l'objet (option: vide)
# ajout d'option : 'n'=>'Choix 1', 'n+1'=>'Choix 2',
# la première ligne (optionnelle) impose un choix
$objets = array(
    0 => 'Choisissez',
    1 => 'Test du script',
    2 => 'Ce script',
    3 => 'Autre',
);
# choix du mode de confirmation d'envoi
# true ou 1 = redirection vers $pageconfirme
# false ou 0 = affichage du résumé du message
$redirection = false;
# si $redirection = true ou 1
# page vers laquelle rediriger l'internaute
$pageconfirme = "/pages/catalogue.php";
/*
fin des modifications
*/
 
$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 email et/ou t&eacute;l&eacute;phone 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;
		}
	# vérification du téléphone (sans espaces)
	} elseif (!is_numeric(str_replace(" ","",$_POST['Tel']))) {
		$erreur = "Téléphone non conforme";
		$_POST['Tel'] = "";
		$focus = 6;
	}
	# pièce jointe (nouveauté 12.10.2005)
	$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éléchargement du fichier $name impossible";
		elseif(!@move_uploaded_file($temp, $destination))
			$erreur = "Problè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(
					'.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;
				}
			}
			/*
				pour utiliser mime_content_type()
				éditer le fichier php.ini et enlever le commentaire sur :
				extension=php_mime_magic.dll
				sous Windows ajouter ces 2 lignes :
				mime_magic.debug = On
				mime_magic.magicfile = "c:\chemin_du_fichier\magic.mime"
				NB : fonction non activée chez OVH
			*/
			$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è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 deuxième partie du test passe les champs non désirés dans le mail
			# pour passer d'autres champs les séparer par |
			if (strlen($value) && !eregi("(MAX_FILE_SIZE|Objet)", $key))
				$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));
		# si $objets est un tableau : Objet = select donc index = $_POST['Objet']
		if(is_array($objets))
			$objet = "$entete ".$objets[$_POST['Objet']];
		# sinon Objet = input donc en français dans le texte !
		else
			$objet = "$entete ".$_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
			if($redirection) {
				# NB : traiter $_GET['mailOK'] dans $pageconfirme
				@header("Location: ".$pageconfirme."?mailOK=1");
				exit;
			}
			$pageName = "Le mail a été envoyé !";
		 } else {
			$pageName = "Echec !";
			$erreur = "Echec de l'envoi ! Merci d'essayer encore SVP";
		 }
 
	} else {
 
		$pageName = "Erreur de saisie !";
 
	} // if(!$erreur)
 
} else {
 
	$_POST = false;
 
} // if ($_POST)
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xthml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>AD HOC, Solutions de marquage - Textile, bagagerie, objets publicitaires, boutique photo, espace 23</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<link rel="stylesheet" type ="text/css" href="/styles/styles_adhoc.css" media="screen" />
</head>
 
<body>
 
<!-- Bandeau haut de page -->
<div id="header1"></div>
<div id="fondheader">
	<div id="header2">
		<ul id="menuhaut">
			<li><a href="/pages/textile.php" title="Textile" alt="Textile">Textile</a> l </li>
			<li><a href="/pages/bagagerie.php" title="Bagagerie" alt="Bagagerie">Bagagerie</a> l </li>
			<li><a href="/pages/objets_pub.php" title="Objets publicitaires" alt="Objets publicitaires">Objets pub</a> l </li>
			<li><a href="/pages/boutique_photo.php" title="Boutique photo" alt="Boutique photo">Boutique photo</a> l </li>
			<li><a href="/pages/espace_23.php" title="Espace Creuse" alt="Espace Creuse">Espace 23</a></li>
		</ul>
	</div>
</div>
 
<!-- Menu horizontal -->
<div id="hautmenu">	
	<div id="global">
		<h1><img src="/images/pictos/picto_contact.gif" title="Contact" alt="Pictogramme contact">Contact</h1>
		<h2>Remplissez le formulaire ci-dessous et faites parvenir votre demande</h2>
  </div>
</div>
 
<!-- Menu vertical -->
<div id="fondmenu">
	<div id="menu">
		<ul>
			<li><a href="/index.htm" title="Index" alt="Index">. Index</a></li>
			<li><a href="/pages/promo.php" title="Promo du mois" alt="Promo du mois">. Promo du mois</a></li>
			<li><a href="/pages/entreprise.php" title="L'entreprise" alt="L'entreprise">. L'entreprise</a></li>
			<li><a href="/pages/catalogue.php" title="Catalogue" alt="Catalogue">. Catalogue</a></li>
			<li><a href="/pages/contact.php" title="Contact" alt="Contact">. Contact</a></li>
			<li><a href="/pages/lettre_info.php" title="Lettre d'info">. Lettre d'info</a></li>
			<li><a href="/pages/liens.php" title="Liens">. Liens</a></li>
		</ul>
	</div>
 
	<!-- Contenu general -->
	<div id="global">
		<div id="contact">
		<div id="coordonnees">
<? if (!$_POST || $erreur) { ?>
<?		if (!$erreur) { ?>
		  <h4>Contact</h4>
		  <p>Merci de renseigner les champs marqués d'un astérisque (email et/ou téléphone)</p>
<?		} else { ?>
		  <p class="alerte"><? echo $erreur?></p>
<?		} ?>
		  <hr>
		  <form name="formulaire" action="<? echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
			 <p>
				<label for="nom">Nom</label><input id="nom" <? if($focus == 3) echo "class=\"focus\"";?> name="Nom" maxlength="30" value="<? echo htmlentities($_POST['Nom'], ENT_QUOTES)?>"> 
			 </p>
			 <p>
				<label for="email">Email</label><input id="email" <? if($focus == 5 || $focus == 4) echo "class=\"focus\"";?> name="Email" maxlength="60" value="<? echo htmlentities($_POST['Email'], ENT_QUOTES)?>">
			 </p>
			 <p>
				<label for="tel">Téléphone</label><input id="tel" <? if($focus == 6 || $focus == 4) echo "class=\"focus\"";?> name="Tel" maxlength="20" value="<? echo htmlentities($_POST['Tel'])?>">
			 </p>
			 <p>
<?		if ($objets) { ?>
				<label for="objet">Objet</label><select name='Objet' <? if($focus == 2) echo "class=\"focus\"";?> id="objet">
<?
foreach($objets as $key => $val) {
    echo "				  <option value='$key'";
    // vérifier si une des entrées a été choisie
    if($key == $_POST['Objet']) echo " selected";
    echo ">$val\n";
}
?>
				</select>
<?		} else { ?>
				<label for="objet">Objet</label><input id="objet" <? if($focus == 2) echo "class=\"focus\"";?> name="Objet" maxlength="60" value="<? echo htmlentities($_POST['Objet'], ENT_QUOTES)?>">
<?		} ?>
			 </p>
			 <p>
				<label for="message">Message</label><textarea <? if($focus == 1) echo "class=\"focus\"";?> id="message" name="Message"><? echo htmlentities(stripslashes($_POST['Message']))?></textarea>
			 </p>
 
			 <p>
				<label for="fichier">Pièce jointe</label><input type="hidden" name="MAX_FILE_SIZE" value="<? echo $taillemax?>"><input type="file" id="fichier" <? if($focus == 7) echo "class=\"focus\"";?> name="Fichier" size="35">
			 </p>
			 <p>
				<label>&nbsp;</label>NB : taille du fichier inférieure à <?= (int)($taillemax/1024)?> Ko
			 </p>
 
			 <p>
				<label>&nbsp;</label><input id="submit" type="submit" value="Envoyer"> <a href="./">Accueil</a>
			 </p>
		  </form>
 
<? } elseif($message) { ?>
 
		  <h3>Votre message a été envoyé !</h3>
<pre>
<? echo wordwrap(stripslashes($message),100)?>
</pre>
		  <p><a href="./">Cliquez</a> pour revenir en page d'accueil.</p>
 
<? } ?>
 
</div></div></div>
 
<div id="baspage">
	<p><a href="/pages/conditions_vente.php">Conditions g&eacute;n&eacute;rales de vente</a> - <a href="/pages/mentions_legales.php">Mentions légales</a> - <a href="/pages/contact.php">Nous contacter</a> - <a href="/pages/plan.php">Plan du site</a>
	<br>AD HOC - 7 Rue de la Marche 23190 CHAMPAGNAT - Tél. 05.55.67.51.21 - Fax 05.55.83.11.96 - email <a href="mailto:adhoc.info@club-internet.fr">adhoc.info@club-internet.fr</a></p>
</div>
</body>
</html>
littlesnoopy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 00h27   #10
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Essaie en créant un répertoire "tmp-php" dans le répertoire de ton script contact.php et en y placant le répertoire "images".

Désolé mais si ça ne fonctionne pas je ne saurai pas t'aider plus .
billoum 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 20h36.


 
 
 
 
Partenaires

Hébergement Web