8791 sujets

Développement web côté serveur, CMS

Bonjour,
je réalise actuellement un formulaire en PHP avec envoie de mail Html + stokage des info dans une base de donnée + enregistrement d'un fichier sur le serveur web.
Juqu'ici, pas de problème (enfin... plus, merci au forum Smiley cligne ).

Néanmois, il me reste un petit souçi :

Explications :
lorsque l'utilisateur rempli les chamsp du formulaire, les infos sont donc stokés dans la base de donnée, envoyé au destinataire du mail avec un liens vers le fichier qui vien d'ètre stoké sur le serveur.
Exemple de mail reçu par le destinataire :
a écrit :

Nom : Dupont
Prenom : Robert
Adresse : 2 rue Duduponpon
fichier joint : mon_fichier.doc


tout ce passe très bien SAUF si le fichier contient un caractère "étrange" Smiley rolleyes (é à è etc...).
le liens vers le fichier s'affiche alors bien (le é est present) mais lors de l'ouverture de ce liens dans le navigateur, le fameux "é" se transforme en "%C3%A9" Smiley bawling
Biensure.. le fichier ne peu être chargé...

après quelque recherches sur google, je n'est pas trouvé de réponse suffisamement satisfesantes...

Ci dessou un extrait de mon code :

// Recup du nom du fichier + fichier lui meme
	$Fichier = $HTTP_POST_FILES["Fichier"];
	$nom_du_fichier = basename($HTTP_POST_FILES["Fichier"]["name"]);
	if (!empty($nom_du_fichier))
		{
			$file_name = str_replace(" ", "_", $nom_du_fichier);
			$mes .= "	<tr>";
			$mes .= "		<td align=\"right\">telechargement du cv :</td>";
			$mes .= "		<td align=\"left\"><a href=\"http://www.mon_serveur-web.net/doit/rester/secret/cv/$file_name\">$file_name</td>";
			$mes .= "	</tr>";									
		}
	else
		{}
	$mes .= "</table>";

	//echo $mes; // A SUPPRIMER (DEBUG)
	// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
	 $headers .= 'MIME-Version: 1.0' . "\r\n";
	 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

	// En-têtes additionnels
	 $headers .= 'From: Repotel communication du site <contact@repotel.fr>' . "\r\n";
 
	//Envoi du mail								
	 mail($adresse_mail, 'Message depuis votre site web [Ne pas répondre]', stripslashes($mes), $headers);

	// enregistrement du fichier sur le serveur (répertoire /CV)


		if ( isset($Fichier) && !empty($Fichier) )
		{
		
		copy($HTTP_POST_FILES["Fichier"]["tmp_name"], "cv/$file_name");
		}

Modifié par Johnlemon (24 Sep 2007 - 15:20)