Impossible de récupérer un chemin en php

Résolu/Fermé
Nicolas - 22 déc. 2010 à 12:15
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 22 déc. 2010 à 13:08
Bonjour,

j'ai crée un formulaire en method POST qui envoie un mail, le mail s'envoie pas de soucis seulement j'essaie d'y insérer une pièce jointe et lors de la récupération du chemin de mon fichier, la variable n'existe pas.

Voici le code mon formulaire (jusque là pas de soucis) :
	<form enctype="multipart/form-data" method=POST action="envoi_mail.php">
		<h2>Formulaire de réponse</h2>
		<table>
		<tbody>
			<tr>
				<td>
					<b>Adresse de réponse :</b>
				</td>
			</tr>
			<tr>
				<td>
					<input type="text" style="width:250px;" name="mail_reponse">
				</td>
			</tr>
			<tr>
				<td>
					<b>Fichier</b>
				</td>
			</tr>
			<tr>
				<td>
					<input name="fichier" type="file" size="16">
				</td> 
			</tr>
			<tr>
				<td>
					<b>Message :</b>
				</td>
			</tr>
			<tr>
				<td>
					<textarea style="width:500px;" rows="10" name="message"></textarea>
				</td>
			</tr>
			<tr>
				<td style="float:right;">
					<input type="submit" value="Envoyer">
				</td>
			</tr>
		</tbody>
		</table>
	</form>


ET ci-dessous le code ma page php qui envoie l'email :
<?php
	$file_name = $_POST['fichier'];
	$my_email = $_POST['mail_reponse'];
	$message = $_POST['message'];
	$email = 'mon_email@ndd.fr';
	$subject = 'Sujet du mail';

	$boundary = "_".md5 (uniqid (rand()));
	$attached_file = file_get_contents($file_name);
	$attached_file = chunk_split(base64_encode($attached_file));
	$attached = "\n\n". "--" .$boundary . "\nContent-Type: application; name=\"$file_name\"\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment; filename=\"$file_name\"\r\n\n".$attached_file . "--" . $boundary . "--";
	$headers ="From: ".$my_email." \r\n";
	$headers .= "MIME-Version: 1.0\r\nContent-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
	$body = "--". $boundary ."\nContent-Type: text/plain; charset=utf-8\r\n\n".$message . $attached;

	if(@mail($email,$subject,$body,$headers))
	{ ?>
		<script>
			alert("Votre message a bien été envoyé !");
		</script>
	<?php
	}
	else
	{ ?>
		<script>
			alert("Votre message n'a pas pu être envoyé !");
		</script>
<?php
	}
?>


Quand je test l'envoie j'ai un message me disant que la variable $_POST['fichier'] n'existe pas...
Une idée ? je tourne en rond...

1 réponse

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
22 déc. 2010 à 13:08
Utilises $_FILES['fichier'] et non $_POST['fichier'] !
C'est la que tu auras les infos que le fichier ainsi que son contenu pour son file_get_contents ;)

EnJoY !
0