ajout de pièce jointe dans un formulaire de contact

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ajout de pièce jointe dans un formulaire de contact

par julio2002 » 06 déc. 2007, 14:37

Ca marche toujours pas, j'ai entendu dire qu'il faut rajouter une fonction dans l'entête pour que ca marche!

$entete .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";

par Victor BRITO » 05 nov. 2007, 12:35

Je ne sais pas si tu as regardé le script mais je dois remplacer l'attribut action de ton bout de code par quelle page ? tu as écrit : traitement-du-formulaire.php , je dosi créer cette page?
Garde la valeur indiquée par ton script : celle que j'ai donnée n'était qu'un exemple.

par Invité » 05 nov. 2007, 02:56

merci victor brito mais à quel endroit faut il placer ce code?

j'ai essayé après cette balise :
Message (*):<br />
	<textarea name="message" wrap="soft" rows="5" cols="40"><?php
	if (isset($_POST["message"])) { // le message a été entré: le réafficher
		echo htmlspecialchars($_POST["message"],ENT_QUOTES);
	}
	?></textarea><br />
<form method="post" action="traitement-du-formulaire.php" enctype="multipart/data">
<p><label for="upload">Ajouter une pièce jointe</label></p>
<p><input id="upload" name="upload" type="file" /><p>
</form>
est ce que c'est bon comme ca?

Je ne sais pas si tu as regardé le script mais je dois remplacer l'attribut action de ton bout de code par quelle page ? tu as écrit : traitement-du-formulaire.php , je dosi créer cette page?

merci

par AB » 05 nov. 2007, 02:16

Bonjour

Et pour ce qui est de l'envoi de pièces jointes dans un mail, Truc a donné récemment une bonne adresse http://www.phpfrance.com/forums/voir_re ... php#219404

par Victor BRITO » 05 nov. 2007, 00:27

Si tu parles d'upload de fichier, il faut que l'élément form comporte l'attribut enctype="multipart/data", ainsi qu'un champ input de type "file", comme ci-dessous :

Code : Tout sélectionner

<form method="post" action="traitement-du-formulaire.php" enctype="multipart/data"> <p><label for="upload">Ajouter une pièce jointe</label></p> <p><input id="upload" name="upload" type="file" /><p> </form>
Le fichier uploadé est récupéré grâce à $_FILES. Encore faut-il procéder à des vérifications, de façon à ce que ledit fichier ne soit pas un fichier à risque de par son extension.

Un tutorial de PHPFrance complètera ce propos.

ajout de pièce jointe dans un formulaire de contact

par julio2002 » 04 nov. 2007, 23:36

bonjour,

Je dispose d'un hébergement web mais je suis limité au niveau des mails, j'ai la possibilité de créer des redirections pour les mails entrant, mais quand je veux envoyer un mail avec l'adresse du site, je suis obligé d'envoyer ca de : [email protected] , la seule solution que j'ai trouvé est un code pour un formulaire de contact anonyme sur une page de mon site.

Mais je n'arrive pas a jouter a ce code la possibilité d'ajouter une pièce jointe ou plusieurs.
Pouvez vous m'aider a ajouter cette option, voici le code :
<?php
if(isset($_POST["envoyer"])){ // le formulaire a été soumis
	$status="erreur"; // Par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
	// mise en forme des champs saisis dans le formulaire lors de sa soumission
	$_POST["email_destinataire"]=trim(stripslashes($_POST["email_destinataire"]));
	$_POST["pseudo_expediteur"]=trim(stripslashes($_POST["pseudo_expediteur"]));
	$_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
	$_POST["titre"]=trim(stripslashes($_POST["titre"]));
	$_POST["message"]=trim(stripslashes($_POST["message"]));
	// test de la validité des champs saisis
	if(empty($_POST["email_destinataire"]) || empty($_POST["email_expediteur"]) || empty($_POST["message"])){ // un champ obligatoire est vide
		$erreur="Erreur: Les champs marqués (*) sont obligatoires...";
	}
	elseif(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$",$_POST["email_destinataire"])){ // l'adresse e-mail du destinataire est invalide
		$erreur="L'adresse e-mail du destinataire est invalide...";
	}
	elseif(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$",$_POST["email_expediteur"])){ // l'adresse e-mail du destinataire est invalide
		$erreur="L'adresse e-mail de l'expéditeur est invalide...";
	}
	else { // tous les champs sont correctement remplis: on pourra envoyer le mail
		$status="ok";
	}
}
else { // le formulaire n'a pas été envoyé
	$status="attente";
}
?>
<html>
<head><title>e-mail anonyme</title>
<meta name="description"  lang="fr" content="Préservez-vous du spam. Envoyez un e-mail anonyme.">
<meta name="keywords" lang="fr" content="email anonyme, e-mail anonyme, anti spam, mailer anonyme, cacher son adresse mail">
<meta name="robots" content="index, follow">
<meta name="author" content="ActuLab">
<link rel="DC.identifier" type="text/plain" href="http://www.actulab.com/php--e-mail-anonyme.php">
</head>
<body>
<h1>e-mail anonyme</h1>
<?php
if($status!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
	if($status=="erreur"){//le formulaire a été soumis avec une erreur
		echo"<p style=\"font-weight:bold;\">".$erreur."</p>\n";
	}
?>
	<form method="post" action="<?php echo$PHP_SELF; ?>">
	Adresse e-mail du destinataire (*):<br />
	<input type="text" name="email_destinataire" value="<?php
	if (!empty($_POST["email_destinataire"])) { // l'adresse email du destinataire a été entrée: la réafficher
		echo htmlspecialchars($_POST["email_destinataire"],ENT_QUOTES);
	}
	?>"><br />
	(Faux) pseudo de l'expéditeur:<br />
	<input type="text" name="pseudo_expediteur" value="<?php
	if (!empty($_POST["pseudo_expediteur"])) { // le pseudo de l'expéditeur a été entré: le réafficher
		echo htmlspecialchars($_POST["pseudo_expediteur"],ENT_QUOTES);
	}
	?>"><br />
	(Fausse) adresse e-mail de l'expéditeur (*):<br />
	<input type="text" name="email_expediteur" value="<?php
	if (!empty($_POST["email_expediteur"])) { // l'adresse email de l'expéditeur a été entrée: la réafficher
		echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
	}
	?>"><br />
	Titre de message:<br />
	<input type="text" name="titre" value="<?php
	if (!empty($_POST["titre"])) { // le titre du message a été entré: le réafficher
		echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
	}
	?>">
	<br />
	Message (*):<br />
	<textarea name="message" wrap="soft" rows="5" cols="40"><?php
	if (isset($_POST["message"])) { // le message a été entré: le réafficher
		echo htmlspecialchars($_POST["message"],ENT_QUOTES);
	}
	?></textarea><br />
	
	<input type="submit" name="envoyer" value="Envoyer">
	<input type="reset" value="Ré-initialiser">
	<a href="http://www.actulab.com/php--e-mail-anonyme.php" target="_blank" title="Ce script PHP sur votre site..."><img src="http://www.actulab.com/images/icon.gif" width="16" height="9" border="0" alt="Ce script PHP sur votre site..."></a>
	</form>
	<a href="http://www.actulab.com/php--e-mail-anonyme.php" target="_blank">Mailer anonyme offert par ActuLab</a>



<?php
}
else{// le formulaire a été soumis sans erreur, on envoie le mail
	if($_POST["pseudo_expediteur"]==""){ $_POST["pseudo_expediteur"]=$_POST["email_expediteur"]; }
	$entete = "From: ".$_POST["pseudo_expediteur"]." <".$_POST["email_expediteur"].">\n";
	$entete .= "Big-Brother-vous-observe: http://www.actulab.com/big-brother-vous-observe.php\n";
	$entete .= "MIME-Version: 1.0";
	if(mail($_POST["email_destinataire"],$_POST["titre"],$_POST["message"],$entete)){ // mail envoyé
		echo"Votre message a été envoyé.<br />\n";
		echo"<a href=\"".$PHP_SELF."\">Envoyer un autre e-mail anonyme...</a>";
	}
	else{ // erreur lors de l'envoi du mail
		echo"Un problème s'est produit lors de l'envoi.\n";
		echo"<a href=\"javascript:history.go(-1)\">Réessayez...</a>";
	}
}
?>
</body>
</html>
Merci