OVH Community, votre nouvel espace communautaire.

Formulaire et envoie de pièce jointe ?


Daniel60
31/07/2014, 11h30
Citation Envoyé par testph
J'ai du vouloir combiné plusieurs scripts car le premier que j'ai trouvé ne fesait pas du tout ce que je voulais.
J'ai réussi à me dépatouiller, mais je dois pas être doué, car j'ai pas pas mal de temps.
Et le script résultant est ?

testph
31/07/2014, 09h30
Citation Envoyé par Rizz
fopen retourne false si echec.
Mais bon la c'est pas le fopen le soucis c'est ce que tu met après je pense.
C'est étonnant parce que le forum sur lequel tu as du trouvé ton code ne présente pas cette énormité.
J'ai du vouloir combiné plusieurs scripts car le premier que j'ai trouvé ne fesait pas du tout ce que je voulais.
J'ai réussi à me dépatouiller, mais je dois pas être doué, car j'ai pas pas mal de temps.

Rizz
30/07/2014, 21h45
Citation Envoyé par testph
Salut à tous.

J'ai l'impression que c'est la fonction fopen qui marche pas.

fopen retourne false si echec.
Mais bon la c'est pas le fopen le soucis c'est ce que tu met après je pense.
C'est étonnant parce que le forum sur lequel tu as du trouvé ton code ne présente pas cette énormité.

testph
24/07/2014, 11h01
Salut à tous.
Je galère depuis plusieurs jours sur un formulaire.
En plus du formulaire classique je souhaite que l'utilisateur puisse joindre une pièce jointe au mail ainsi généré.
J4ai essay éplusierus scripts trouvé à droite et à gauche sur le net mais j'arrive jamais à avori la pièce joitn eà l'arrivée.
J'ai l'impression que c'est la fonction fopen qui marche pas.
Voici le bout de script que j'ai, si vous avez une piset d'avance merci !

Code:
//pièce jointe.		
		// clé aléatoire de limite
$boundary = md5(uniqid(microtime(), TRUE));
 
// Headers
$headers='From: toto '."\r\n";
$headers .= 'X-Priority: 1 '."\n";
$headers .= 'Mime-Version: 1.0'."\r\n";
$headers .= 'Content-Type: multipart/mixed; boundary='.$boundary."\r\n";
$headers .= "\r\n";
 

// Texte
$msg .= '--'.$boundary." \r\n";
$msg .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
$msg .= 'Content-Transfer-Encoding:8bit '."\r\n";
$msg .= 'Un message avec une pièce jointe.'."\r\n";
 
// Pièce jointe
$fileatt = $_FILES['piece_jointe']['tmp_name'];
$fileatt_type = $_FILES['piece_jointe']['type'];
$fileatt_name = $_FILES['piece_jointe']['name'];
if (file_exists($fileatt))
{
	$file_type = filetype($fileatt);
	$file_size = filesize($fileatt);
 
	$handle = fopen($fileatt, 'r') or die('File '.$fileatt_name.'can t be open');
	$content = fread($handle, $file_size);
	$content = chunk_split(base64_encode($content));
	$f = fclose($handle);
 
	$msg .= '--'.$boundary."\r\n";
	$msg .= 'Content-Type:'.$file_type.'; name='.$fileatt_name."\r\n";
	$msg .= 'Content-Transfer-Encoding: base64'."\r\n";
	$msg .= 'Content-Disposition: attachment; filename='.$fileatt_name." \n";  
	$msg .= $content."\r\n";
}
 
// Fin
$msg .= '--'.$boundary.'--'."\r\n";
 
// Function mail()
mail('moi@moi.fr', $subject, $msg, $headers);