Formulaire php + fichier joint

Fermé
Seve - 31 janv. 2006 à 16:27
 saleh amali - 28 mars 2013 à 13:26
Bonjour à tous,

Voici mon pb, j'ai réalisé un formulaire en php pour des demandes de stage, seulement, il faudrait que je puisse rajouter une zone d'ajout de fichier joint pour que les gens puissent y mettre un cv et une lettre de motivation... Or c mon premier php et je ne sais aps comment faire.

Merci a ceux qui pourront m'aider.

Sev
A voir également:

5 réponses

crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
31 janv. 2006 à 19:55
1
bon, j'ai bien compris que je devais utiliser ce code:

<FORM method="POST" ENCTYPE="multipart/form-data">
<INPUT type=hidden name=MAX_FILE_SIZE VALUE=2048>
<INPUT type=file name="nom_du_fichier">
<INPUT type=submit value="Envoyer">
</FORM>

le pb, c que je dois l'intégrer à mon code existant qui est:

<?php

$email_dest = "severine@terifik.fr";

if ($_POST['envoi']) {

$message_remerciement = "Merci de votre demande, nous y répondrons dans les meilleurs délais";

// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: Demande de stage<stage@wizzz.org>\n";


$headers .="Content-Type: text/html; charset=iso-8859-1 \n";

$subject = "Demande de stage";

$partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";

for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
}

if ($_POST['nbre_zone_email'] != 0) {
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
}

if ($_POST['nbre_zones_texte'] != 0) {
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
$partie_zone_texte = stripslashes($partie_zone_texte);
}

$fin = "</body></html>";

$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;

// Send the e-mail
if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible");
} // Closing if !mail...

} // Closing if edit
?><html>
<head>
<title>DEMANDE DE STAGE</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript"><!-- Hide script from older browsers
function verifSelection() {if (mail_form.champ1.value == "") {
alert("champs obligatoire")
return false
} if (mail_form.champ2.value == "") {
alert("champs obligatoire")
return false
} if (mail_form.champ3.value == "") {
alert("champs obligatoire")
return false
} if (mail_form.champ4.value == "") {
alert("champs obligatoire")
return false
} if (mail_form.zone_email.value == "") {
alert("champs obligatoire")
return false
} if (mail_form.champ5.value == "") {
alert("champs obligatoire")
return false
}

invalidChars = " /:,;'"

for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)

if (mail_form.zone_email.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
mail_form.zone_email.focus()
return false
}
}

atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

periodPos = mail_form.zone_email.value.indexOf(".",atPos)

if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}if (mail_form.zone_texte.value == "") {
alert("champs obligatoire")
return false
} } // Fin de la fonction

</script>
</head>

<body bgcolor="c5e52f">
<form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()">
<div align="center"></div>
<p align="center">
<?php
if ($message_remerciement) {
echo("<font face=Verdana size=2>");
echo(stripslashes($message_remerciement));
echo("</p></body></html>");
exit();
}
?>
<table width="560" border="0" align="center">
<tr>
<td colspan="2">
<div align="center"><img src="ies/titre-stage.gif" width="218" height="100"></div>
</td>
</tr>
<tr>
<td width="280"><img src="ies/force-tab.gif" width="280" height="1"></td>
<td width="280"><img src="ies/force-tab.gif" width="280" height="1"></td>
</tr>
<p align="center"> </p>
<tr>
<td width="280" bgcolor="#deff42"><font face="Verdana" size="2" color="#666666"><b>Nom</b></font></td>
<td bgcolor="#deff42" width="280">
<input name="champ1" type="text">
</td>
</tr>
<tr>
<td width="280" bgcolor="#deff42"><b><font face="Verdana" size="2" color="#666666">Prénom</font></b></td>
<td bgcolor="#deff42" width="280">
<input name="champ2" type="text">
</td>
</tr>
<tr>
<td width="280" bgcolor="#deff42"><b><font face="Verdana" size="2" color="#666666">Adresse</font></b></td>
<td bgcolor="#deff42" width="280">
<input name="champ3" type="text">
</td>
</tr>
<tr>
<td width="280" bgcolor="#deff42"><b><font face="Verdana" size="2" color="#666666">Ville
- CP</font></b></td>
<td bgcolor="#deff42" width="280">
<input name="champ4" type="text">
</td>
</tr>
<tr>
<td width="280" bgcolor="#deff42"><b><font face="Verdana" size="2" color="#666666">E-mail</font></b></td>
<td bgcolor="#deff42" width="280">
<input name="zone_email" type="text">
</td>
</tr>
<tr>
<td width="280" bgcolor="#deff42"><b><font face="Verdana" size="2" color="#666666">Poste
demandé </font></b></td>
<td bgcolor="#deff42" width="280">
<input name="champ5" type="text">
</td>
</tr>
<tr>
<td width="280" bgcolor="#deff42"><b></b></td>
<td bgcolor="#deff42" width="280">  </td>
</tr>
<tr>
<td valign="top" width="280" bgcolor="#deff42"><b><font face="Verdana" size="2" color="#666666">Remarques</font></b></td>
<td bgcolor="#deff42" width="280">
<textarea name="zone_texte" cols="30" rows="5"></textarea>
</td>
</tr>
<tr>
<td valign="top" width="280">
<input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="5">
<input name="nbre_zones_texte" type="hidden" value="1">
<input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_champ1" type="hidden" value="Nom">
<input name="titre_champ2" type="hidden" value="Prénom">
<input name="titre_champ3" type="hidden" value="Adresse">
<input name="titre_champ4" type="hidden" value="Ville-CP">
<input name="titre_email" type="hidden" value="E-mail">
<input name="titre_champ5" type="hidden" value="Poste demandé">
<input name="titre_zone" type="hidden" value="Remarques">
</td>
<td width="280">
<div align="center">
<input type="reset" name="Reset" value="Effacer">
<input type="submit" name="envoi" value="Envoyer">
</div>
</td>
</tr>
</table>
<div align="center"></div>
</form>
</body>
</html>

et je ne saispas comment l'intégrer, est ce que je dois rajouter d'autres paramètres? bref, je suis dans la panade, je n'y comprends rien du tout!! ce qu'il faut c que le stagiaire puisse ajouter son cv (bt parcourir et bt ajouter) et l'envoyer avec le reste du message.

Merci d'avance si tu peut m'aider.
Sev
0
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
1 févr. 2006 à 20:49
Salut,
Modifie ton form.
Tu rajoutes ENCTYPE="multipart/form-data" dans la balise form
Tu rajoute un input type="file"
Et après dans le traitement du post (en php) tu rajoutes le traitement du
fichier upload grace à move_upload_file() en ayant vérifié au préalable qu'un
fichier à bien été posté.
Le traitements des autres variables du formulaire ne change pas.
A+, crabs
1
ha oui et aussi... j'utilise le code:

if ($_POST['envoi']) {

$message_remerciement = "Merci de votre demande";

pourqu'apparaisse un petit message de remerciement une fois le formulaire validé, sauf que c juste un texte noir sur mon fond vert. y'a t il un code pour que je puisse créer une belle page et rediriger le remerciement vers cette page??

merci encore

j'abuse.... je sais mais je le fais quand meme!
Sev
0
saleh amali
28 mars 2013 à 13:26
merci a tous pour le travail
0
alors... en ce qui concerne

ENCTYPE="multipart/form-data" dans la balise form
et
input type="file"

pas de soucis, sauf que pour

move_upload_file()

ben.... je sais pas ou je dois le mettre!!
chuis perdue moi dans tout ce code!! ou je comprends rien d'ailleurs!
0
bjr
moi j'aimerai savoir comment permettre à un utilisateur de joindre un fichier en pièce jointe et comment je pourrai le recupéré
si tu veux bien maider
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,


Je suis débutant et je n'arrive pas a faire fonctionner mon formulaire newsletter. Pouvez vous me donner un coup de main sur ce problème de premier choix.

Je ne reçois pas l' Email de confirmation

Pouvez-vous adapter <?php……?> avec <form>……</form>


Le lien de ma page: http://www.cijoint.fr/cjlink.php?file=cj200910/cijyw5NMrK.txt


<head>

<?php if($_POST['action'] == "formok")
{
$e_mail = $_POST['email'];
if($e_mail == ""|| $e_mail == "e-mail")
{
$txt = " votre e-mail";
}
else
{
$destinataire= "bwba@hotmail.fr";
$objet = "Demande d'inscription";
$headers = "From: bwba@hotmail.fr \n\r";
$headers.= "Content-Type: text/html; charset=utf-8";
$headers .= "MIME-Version: 1.0 ";
$msg = "Nous vous informons d'une demande d'inscription suivant : ". $e_mail ."";
$msg = nl2br($msg);
mail($destinataire, $objet, $msg, $headers);
$msg2= "
Nous avons bien pris en compte votre demande d'inscription ? la newsletter.
Pour vous d?sinscrire, contactez nous

";
mail($e_mail, $objet, $msg2, $headers);
$txt = "Vous avez un message";
}
}
?>
</head>





<style type="text/css">
body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:60%;
margin:50px;
color:#666666;}
.fieldset {
width:300px;
border: 0px solid red;
}
.fieldset label {
text-align:right;
width:70px;
float:left;
padding:0.2em;
margin:0;
margin-top:0.3em;
}
.fieldset .nobr {display:none;} .fieldset .textfield {
margin:3px;
height:20px;
width:200px;
border:solid 1px #8caf10;
background: transparent url("http://") no-repeat;
}
.fieldset .textarea {
margin:3px;
height:165px;
width:200px;
border:solid 0 #fff;
}
.submit {
margin:3px;
height:20px;
border:solid 1px #8caf10;
width:80px;
font:1.1em Verdana, Arial, Helvetica, sans-serif;
color:#000000;
text-transform:uppercase;
background: transparent url("http://") no-repeat;
}
}
</style>




<body>

<form action="" method="post">
<fieldset class="fieldset"><br>
<span class="" style="direction: ltr; text-align: left;"><label
for="email"></label></span> <br class="nobr">
<input name="email" class="textfield" id="email"
type="text"> <span class=""
style="direction: ltr; text-align: left;"><br>
<span class="" style="direction: ltr; text-align: left;">
<br class="nobr">
<br>
<label for="submit"> </label><br
class="nobr">
<input name="submit" class="submit" id="submit"
value="envoyer" type="submit"></span></span></fieldset>
</form>

</body>
0