Précédent   Forum du club des développeurs et IT Pro > 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
 
Outils de la discussion
Publicité
'
Vieux 12/12/2012, 12h36   #1
Msb-Mhc
Invité régulier
 
Homme Mossaâb Akhazzan
Inscription : avril 2012
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Mossaâb Akhazzan
Localisation : Maroc

Informations forums :
Inscription : avril 2012
Messages : 19
Points : 6
Points : 6
Par défaut problème mailing fichier

salut à tous,
j'ai un problème, quand j'envoie un fichier a un email le serveur me donne ce code :


Citation:
Warning: file_get_contents(CV_blabla.pdf) [function.file-get-contents]: failed to open stream: No such file or directory in /homepages/5/d391037984/htdocs/msb/cible.php on line 118
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
<?php
if( isset($_POST['name'], $_POST['email'], $_POST['subject'], $_POST['message'])){
	//valider le sujet
	if( empty($_POST['subject'])){
	$errors[] = "s'il vous plait entrer un sujet.";
	}else{
		$subject = htmlentities($_POST['subject']);
	}
	// valider email 
	if( empty($_POST['email'])){
		$errors[] = "s'il vous plait entrer un email.";
	}elseif(strlen($_POST['email']) >347 ){
		$errors[] = "l'adresse est long !! s'il vous plait entrer un valid email.";
	}elseif(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) == false ){
		$errors[] = "s'il vous plait entrer un valid email !!.";
	}else{
	$email = "<".htmlentities($_POST['email']).">";
	}
	//valider reception
	$recept = "<blabla@blabla.com>";
	//valider le msg
	if( empty($_POST['message'])){
		$errors[] = "s'il vous plait entrer un message.";
	}else{
		$message = htmlentities($_POST['message']);
	}
}
 
//test de validation de fichier 
if( isset($_FILES['cv']) AND $_FILES['cv']['error'] == 0) {
	if( $_FILES['cv']['size'] <= 1000000 ){
		$info = pathinfo($_FILES['cv']['name']);
		$extention_upload = $info['extension'];
		$extention_autoriser = array('doc', 'docx', 'pdf');
		if( in_array($extention_upload, $extention_autoriser)){
			$nomfichier =$_FILES['cv']['name'];
 
 
 
			//*****************************************************
 
function mailfichier($email, $recept, $subject, $message, $nomfichier) {
  // generation du separateur, une chaine aleatoire fait l'affaire
  $bound = '------------'.md5(uniqid('toto'));
 
  $entete = 'From: '.$email."\n"
    .'MIME-Version: 1.0'."\n"
    .'Content-Type: multipart/mixed;'."\n"
    .' boundary="'.$bound.'"';
 
  $message = 'This is a multi-part message in MIME format.'."\n"
    .'--'.$bound."\n"
    .'Content-Type: text/plain; charset=ISO-8859-1'."\n"
    .'Content-Transfer-Encoding: 7bit'."\n\n"
    .$message
    ."\n\n"
    .'--'.$bound."\n"
    .'Content-Type: text/plain;'."\n".' name="'.basename($nomfichier).'"'."\n"
    .'Content-Transfer-Encoding: base64'."\n"
    .'Content-Disposition: attachment;'."\n".' filename="'.basename($nomfichier).'"'."\n\n"
    .chunk_split(base64_encode(file_get_contents($nomfichier)))
    .'--'.$bound.'--'."\n";
 
  return @mail($recept, $subject, $message, $entete);
}
 
			mailfichier($email, $recept, $subject, $message, $nomfichier);
 
		}
 
	}
}
 
?>
Msb-Mhc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 12h53   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 856
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 856
Points : 21 918
Points : 21 918
Le fichier uploadé c'est $_FILES['cv']['tmp_name'] ; $_FILES['cv']['name'] c'est uniquement le nom du fichier d'origine.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 13h00   #3
Msb-Mhc
Invité régulier
 
Homme Mossaâb Akhazzan
Inscription : avril 2012
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Mossaâb Akhazzan
Localisation : Maroc

Informations forums :
Inscription : avril 2012
Messages : 19
Points : 6
Points : 6
Par défaut merci

oui ça marche mais le problème c'est que , moi j'envoie un pdf, et dans le message que j'ai reçu un fichier.txt avec des chiffres ?
et quand je modifie l'extension de fichier reçu au pdf ça marche !!
Msb-Mhc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 14h21   #4
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 856
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 856
Points : 21 918
Points : 21 918
Le "name" c'est $_FILES['cv']['name']et le "filename" c'est $_FILES['cv']['tmp_name']
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 16h28   #5
Msb-Mhc
Invité régulier
 
Homme Mossaâb Akhazzan
Inscription : avril 2012
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Mossaâb Akhazzan
Localisation : Maroc

Informations forums :
Inscription : avril 2012
Messages : 19
Points : 6
Points : 6
oui, je compris , mais ce que je veux vous dire c'est que le serveur envoi un fichier sans extension, par contre moi je remplis la formulaire avec un fichier.pdf
le nom du fichier qu'il envoi : phpJDg1gm
le message que j'ai reçu :
Fichiers attachés
Images attachées
Type de fichier : png test.png (336,6 Ko, 1 affichages)
Msb-Mhc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 16h36   #6
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 856
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 856
Points : 21 918
Points : 21 918
C'est justement parce que tu utilises le tmp_name à l'endroit il faudrait utiliser le name
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 17h18   #7
Msb-Mhc
Invité régulier
 
Homme Mossaâb Akhazzan
Inscription : avril 2012
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Mossaâb Akhazzan
Localisation : Maroc

Informations forums :
Inscription : avril 2012
Messages : 19
Points : 6
Points : 6
s'il vous plait vous pouvez m'expliquer car j'ai pas bien compris ??
voici le 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
 
if( isset($_FILES['cv']) AND $_FILES['cv']['error'] == 0) {
	if( $_FILES['cv']['size'] <= 1000000 ){
		$info = pathinfo($_FILES['cv']['name']);
		$extention_upload = $info['extension'];
		$extention_autoriser = array('doc', 'docx', 'pdf');
		if( in_array($extention_upload, $extention_autoriser)){
			$nomfichier =$_FILES['cv']['tmp_name'];
function mailfichier($email, $recept, $subject, $message, $nomfichier) {
  // generation du separateur, une chaine aleatoire fait l'affaire
  $bound = '------------'.md5(uniqid('toto'));
 
  $entete = 'From: '.$email."\n"
    .'MIME-Version: 1.0'."\n"
    .'Content-Type: multipart/mixed;'."\n"
    .' boundary="'.$bound.'"';
 
  $message = 'This is a multi-part message in MIME format.'."\n"
    .'--'.$bound."\n"
    .'Content-Type: text/plain; charset=ISO-8859-1'."\n"
    .'Content-Transfer-Encoding: 7bit'."\n\n"
    .$message
    ."\n\n"
    .'--'.$bound."\n"
    .'Content-Type: text/plain;'."\n".' name="'.basename($nomfichier).'"'."\n"
    .'Content-Transfer-Encoding: base64'."\n"
    .'Content-Disposition: attachment;'."\n".' filename="'.basename($nomfichier).'"'."\n\n"
    .chunk_split(base64_encode(file_get_contents($nomfichier)))
    .'--'.$bound.'--'."\n";
 
  return @mail($recept, $subject, $message, $entete);
}
 
			mailfichier($email, $recept, $subject, $message, $nomfichier);
 
 
		}
 
	}
}
c'est comme vous m'avez dit !!
Msb-Mhc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 10h45   #8
Msb-Mhc
Invité régulier
 
Homme Mossaâb Akhazzan
Inscription : avril 2012
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Mossaâb Akhazzan
Localisation : Maroc

Informations forums :
Inscription : avril 2012
Messages : 19
Points : 6
Points : 6
Par défaut merci à tous

grâce a vous j'ai trouvé la solution, bon si quelqu'un veux la solution c'est :

comme m'a dit
Citation:
le Modérateur
que :
Code :
$_FILES['nom_fichier']['tmp_name']
renvoi le fichier, par contre
Code :
$_FILES['nom_fichier']['name']
renvoi juste le nom.
alors la solution consiste a envoyer les deux à la fonction c'est comme ceci :
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
 
 
if( isset($_FILES['cv']) AND $_FILES['cv']['error'] == 0) {
	if( $_FILES['cv']['size'] <= 1000000 ){
		$info = pathinfo($_FILES['cv']['name']);
		$extention_upload = $info['extension'];
		$extention_autoriser = array('doc', 'docx', 'pdf');
		if( in_array($extention_upload, $extention_autoriser)){
 
			$nomfichier =$_FILES['cv']['name'];
			$fichiertmp = $_FILES['cv']['tmp_name'];
 
function mailfichier($email, $recept, $subject, $message, $nomfichier, $fichiertmp) {
  // generation du separateur, une chaine aleatoire fait l'affaire
  $bound = '------------'.md5(uniqid('toto'));
 
  $entete = 'From: '.$email."\n"
    .'MIME-Version: 1.0'."\n"
    .'Content-Type: multipart/mixed;'."\n"
    .' boundary="'.$bound.'"';
 
  $message = 'This is a multi-part message in MIME format.'."\n"
    .'--'.$bound."\n"
    .'Content-Type: text/plain; charset=ISO-8859-1'."\n"
    .'Content-Transfer-Encoding: 7bit'."\n\n"
    .$message
    ."\n\n"
    .'--'.$bound."\n"
    .'Content-Type: text/plain;'."\n".' name="'.basename($nomfichier).'"'."\n"
    .'Content-Transfer-Encoding: base64'."\n"
    .'Content-Disposition: attachment;'."\n".' filename="'.basename($nomfichier).'"'."\n\n"
    .chunk_split(base64_encode(file_get_contents($fichiertmp)))
    .'--'.$bound.'--'."\n";
 
  return @mail($recept, $subject, $message, $entete);
}
			mailfichier($email, $recept, $subject, $message, $nomfichier, $fichiertmp);
		}
	}
}
merci groupe developpez.net !! ^^
Msb-Mhc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h33.


 
 
 
 
Partenaires

Hébergement Web