Impossible de récupérer un chemin en php

Résolu
Nicolas -  
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   200
 
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