envoi de fichier joint avec formulaire impossible

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

kid75
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 20 Juin 2004

envoi de fichier joint avec formulaire impossible

Message le Jeu Aoû 12, 2004 11:50

Bjr,
Moi j'ai vraiment besoin que mes visiteurs envoi leur photo en pièce jointe mais je n'arrive pas à activer la fonction?
Voici mon formulaire:http://membres.lycos.fr/kapitolprod/formulaire2.php

Mes 2 fichiers formulaire et envoi

Formulaire:
Code: Tout sélectionner
<html>
<head>
<script language="javascript">
<!--
function verif2(mail) {
var arobase = mail.indexOf("@")
var point = mail.lastIndexOf(".")
if((arobase < 2)||(point + 2 > mail.length)||(point < arobase+2))
{
alert("Email absent ou erroné !");
document.formulaire.mail.focus();
return false;
}
else
{
if (formulaire.nom.value=="")
{
alert("Veuillez remplir le champ Nom");
document.formulaire.nom.focus();
return false;
}
else
{
if (formulaire.prenom.value=="")
{
alert("Veuillez remplir le champ Prenom");
document.formulaire.prenom.focus();
return false;
}
else
{
return true
}
}
}
}
}

//-->
</script>

</head><body bgcolor="#99CCFF"><form name="formulaire" method="post" action="envoi.php" onSubmit="return verif2(this.mail.value)" ENCTYPE="multipart/form-data">
<td><table width="100%" height="305" border="0" bordercolor="#FF0000">
<tr>
<td height="49" colspan="4"><p align="center"></p>
<p align="center"><font color="red"><strong><em><u>ENTREZ
VOS INFORMATIONS CI-DESSOUS:</u></em></strong></font></p>
</td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Nom :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><="text" name="nom"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Prénom :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><="text" name="prenom"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Email :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><input name="mail" type="text" size="40"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Vos photos :</b> <font color="#FF0000">*</font></div></td>
<td><="file" name="photos" size="40" MAXLENGTH="80">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="30000">
</td>
<td></td>
</tr>
<tr>
<td colspan="4"><div align="center"><font color="#FF0000">* <font color="#000000" size="1" face="Arial, Helvetica, sans-serif">A
completer pour envoyer !</font></font></div></td>
</tr>
<tr>
<td width="14%"><div align="center"> </div></td>
<td colspan="2"><hr></td>
<td width="12%"></td>
</tr>
<tr valign="bottom">
<td height="37" colspan="2"><div align="right"><b>Age :</b></div></td>
<td colspan="2"><b>18-25
<="radio" name="1" 1 value="18-25"> 25-35
<="radio" name="1" 2 value="25-35"> +35
<="radio" name="1" 3 value="+35"></b></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Je suis :</b></div></td>
<td colspan="2"><b>amateur :
<="radio" name="2" 1 value="amateur">semi-professionnel
:
<="radio" name="2" 2 value="semi-professionnel"></b></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>J'accepte des scènes ( </b><A
onclick="window.open('note.html','Info','resizable=no, toolbar=no, location=no, status=no, menubar=no, width=750, height=300';return(false)"
href="note.html"><b>note</b></A><b>) :</b></div></td>
<td colspan="2"><b>solo :
<="radio" name="3" 1 value="solo">avec 1 partenaire
:
<="radio" name="3" 2 value="avec 1 partenaire"> groupe
:
<="radio" name="3" 3 value="groupe"></b></td>
</tr>
<tr>
<td width="14%"><div align="center"> </div></td>
<td colspan="2"><hr></td>
<td width="12%"></td>
</tr>
<tr valign="middle">
<td height="50" colspan="4"> <div align="center">
<="reset" name="Submit2" value="Effacer">
<="submit" name="Submit" value="Envoyer">
</div></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>


envoi:
Code: Tout sélectionner
<body bgcolor="#99CCFF">
<p align="center"></p>
<p align="center"></p>
<p align="center"></p>
<p align="center"> </p>
<p align="center"> </p>
<p align="center"> </p>
<div align="center">
<table width="41%" height="140" border="1">
<tr>
<td><div align="center">
<p><b>VOS INFORMATIONS <br>
<br>
ONT BIEN ETE ENVOYEES.</b> </p>
<p><b>Merci.</b></p>
</div></td>
</tr>
</table>
</div>

<p></p>
<p></p>
<p>                                                                                       <INPUT TYPE=button NAME=Bouton VALUE=" Retour "
onclick="document.location.href='http://kapitolprod.maisonx.com/page1.html'"></p>
<div align="center">

<?php
if ($_FILES['vos photos']['size'] > 30000){
// Traitement de l'erreur
}
mail("kapitolprod@netcourrier.com","Formulaire de reponse",
"Formulaire de reponse:\n
Nom : ".$_POST['nom']."
Prenom : ".$_POST['prenom']."
Mail : ".$_POST['mail']."
Age : ".$_POST['1']."
Je suis : ".$_POST['2']."
J'accepte des scenes : ".$_POST['3']."
");
?>
</div>


Merci de me filer un petit coup de pouce :wink:

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2461
Inscription: 30 Aoû 2002

Message le Jeu Aoû 12, 2004 13:02

Désolé, je fais pas dans le X.

Neptune
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 486
Inscription: 28 Avr 2004

Message le Jeu Aoû 12, 2004 17:56

la pub lycos c est une honte je comprend meme pas qu'il y ais encore des gens chez eux

kid75
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 20 Juin 2004

Message le Jeu Aoû 12, 2004 20:05

Non mais je vous demande pas de me juger,j'ai juste besoin d'aide (x ou pas d'ailleur),
j'ai modifié mes fichiers mais toujours pas d'envoi avec pièce jointe,je vous remets mes fichiers:

Formulaire


."
Code: Tout sélectionner
<script language="javascript">
<!--
function verif(mail)
{
var arobase = mail.indexOf("@")
var point = mail.lastIndexOf(".")
if((arobase < 2)||(point + 2 > mail.length)||(point < arobase+2))
{
alert("Email absent ou erroné !");
document.formulaire.mail.focus();
return false;
}
else
{
if (formulaire.nom.value=="")
{
alert("Veuillez remplir le champ Nom");
document.formulaire.nom.focus();
return false;
}
else
{
if (formulaire.prenom.value=="")
{
alert("Veuillez remplir le champ Prenom");
document.formulaire.prenom.focus();
return false;
}
else
{
if (formulaire.photos.value=="")
{
alert("Veuillez sélectionner votre fichier");
return false;
}
else
{
return true
}
}
}
}
}

//-->
</script>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head><body bgcolor="#99CCFF">
<form action="envoi.php" method="POST" enctype="multipart/form-data" name="formulaire" onSubmit="return verif(this.mail.value)">
<='hidden' name='dest' value='logicmaison@hotmail.com'>
<='hidden' name='formulaire' value='Formulaire envoye avec un fichier à Kapitolprod'>
<='hidden' name='titre' value="Formulaire de Kapitolprod">
<='hidden' name='sujet' value="Envoi de coordonnées">
<td><table width="100%" height="305" border="0" bordercolor="#FF0000">
<tr>
<td height="49" colspan="4"><p align="center"></p>
<p align="center"><font color="red"><strong><em><u>ENTREZ
VOS INFORMATIONS CI-DESSOUS:</u></em></strong></font></p>
</td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Nom :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><="text" name="nom"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Prénom :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><="text" name="prenom"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Email :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><input name="mail" type="text" size="40"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Vos photos :</b> <font color="#FF0000">*</font></div></td>
<td><=file name="photos" size="40" MAXLENGTH="80">
</td>
<td></td>
</tr>
<tr>
<td colspan="4"><div align="center"><font color="#FF0000">* <font color="#000000" size="1" face="Arial, Helvetica, sans-serif">A
completer pour envoyer !</font></font></div></td>
</tr>
<tr>
<td width="14%"><div align="center"> </div></td>
<td colspan="2"><hr></td>
<td width="12%"></td>
</tr>
<tr valign="bottom">
<td height="37" colspan="2"><div align="right"><b>Age :</b></div></td>
<td colspan="2"><b>18-25
<="radio" name="1" 1 value="18-25"> 25-35
<="radio" name="1" 2 value="25-35"> +35
<="radio" name="1" 3 value="+35"></b></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Je suis :</b></div></td>
<td colspan="2"><b>amateur :
<="radio" name="2" 1 value="amateur">semi-professionnel :
<="radio" name="2" 2 value="semi-professionnel"></b></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>
J'accepte des scènes </b>( <A onclick="window.open('note.html','Info','resizable=no, toolbar=no, location=no, status=no, menubar=no, width=750, height=300');return(false)"
href="note.html"><b>note</b></A><b> ) :</b></div></td>
<td colspan="2"><b>solo :
<="radio" name="3" 1 value="solo">avec 1 partenaire :
<="radio" name="3" 2 value="avec 1 partenaire"> groupe :
<="radio" name="3" 3 value="groupe"></b></td>
</tr>
<tr>
<td width="14%"><div align="center"> </div></td>
<td colspan="2"><hr></td>
<td width="12%"></td>
</tr>
<tr valign="middle">
<td height="50" colspan="4"> <div align="center">
<="reset" name="Submit2" value="Effacer">
<="submit" name="Submit" value="Envoyer">
</div></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>




et mon fichier envoi.php



Code: Tout sélectionner
<body bgcolor="#99CCFF">
<div align="center">
<p> </p>
<p> </p>
<table width="41%" height="140" border="1">
<tr>
<td><div align="center">
<p><b>VOS INFORMATIONS <br>
<br>
ONT BIEN ETE ENVOYEES.</b> </p>
<p><b>Merci.</b></p>
</div></td>
</tr>
</table>
</div>
<div align= center>
<p><INPUT TYPE=button NAME=Bouton VALUE=" Retour "
onclick="document.location.href='http://kapitolprod.maisonx.com/page1html'">
</p></div>
<?

$name_file = $_FILES['photos']['name'];
$source=$_FILES['photos']['tmp_name'];

move_uploaded_file($source, "./".$name_file);

$extension=get_extension($name_file);

$type="text/plain";
if($type=="doc")
{
$type="text/vnd.ms-word";
}
else if($type=="xls")
{
$type="text/vnd.ms-excel";
}

$type2="image/png";

if($extension=="gif")
{
$type2="image/gif";
}
else if($extension=="bmp")
{
$type2="image/bmp";
}

function get_extension($filename)
{
$parts = explode('.',$filename);
$last = count($parts) - 1;
$ext = $parts[$last];
return $ext;
}

if($_POST['dest']!="")
{
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";

$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";

$msg .= "--$boundary\r\n";

$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= $_POST['formulaire'];
$msg .= "\r\n";
$msg .= "\r\n";
$msg .= Nom__.$_POST['nom'];
$msg .= "\r\n";
$msg .= Prenom__.$_POST['prenom'];
$msg .= "\r\n";
$msg .= Mail__.$_POST['mail'];
$msg .= "\r\n";
$msg .= Age__.$_POST['1'];
$msg .= "\r\n";
$msg .= Je_suis__.$_POST['2'];
$msg .= "\r\n";
$msg .= Accepte_les_scènes__.$_POST['3'];
$msg .= "\r\n";

if($name_file!="")
{
$file = $name_file;
$fp = fopen($file, "rb");
$attachment = fread($fp, filesize($file));
fclose($fp);

$attachment = chunk_split(base64_encode($attachment));

$msg .= "--$boundary\r\n";
$msg .= "Content-Type: $type2; name=\"$file\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
$msg .= "\r\n";
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$boundary--\r\n";
}

$destinataire = $_POST['dest'];
$expediteur = $_POST['titre'];

mail($destinataire, $_POST['sujet'], $msg,
"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);

}

if($name_file!="")
{
unlink($name_file);
}

?>.



et mon formulaire http://membres.lycos.fr/kapitolprod/formulaire2.php

Simplement un message après l'envoi:
"nullmailer-inject: Invalid header line: Reply-To: Unable to parse the addresses."


herveG
Modérateur
Modérateur
 
Messages: 9919
Inscription: 5 Mar 2003

Message le Jeu Aoû 12, 2004 21:55

Ils ne jugent pas. Ils se posent juste des questions concernant ce passage des règles du forum :

si votre site est un site adulte, raciste, portant atteinte aux droits des tiers ou ne correspondant pas à nos valeurs, nous vous demandons de ne pas mettre son URL dans votre profil, et de ne pas discuter de votre site dans les discussions...

kid75
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 20 Juin 2004

Message le Jeu Aoû 12, 2004 22:07

herveG a écrit:si votre site est un site adulte, raciste, portant atteinte aux droits des tiers ou ne correspondant pas à nos valeurs, nous vous demandons de ne pas mettre son URL dans votre profil, et de ne pas discuter de votre site dans les discussions...


Il me semble que je n'ai pas donner l'url de mon site et que j'expose uniquement un problème?Si vous ne souhaitez pas m'aider mais polémiquer alors c'est différent on peux en faire 63 des posts pour rien résoudre?


WebRankInfo
Administrateur du site
Administrateur du site
 
Messages: 19415
Inscription: 19 Avr 2002

Message le Jeu Aoû 12, 2004 22:29

parenthèse : c'est génial sur Lycos avec Firefox, la pub envahissante ne part pas, même en attendant la fin de l'animation...
quelle drôle d'idée de rester sur un hébergement de ce type...

sinon kid75, ne dis pas "j'ai juste besoin d'aide (x ou pas d'ailleur)" car ce forum n'est pas fait pour discuter de sites X. Tant qu'on reste sur la technique des formulaires, y'a pas de pb.

pour ma part je ne m'investis que très rarement à répondre à un nouveau qui pour son premier message poste de très nombreuses lignes de code, sans autre explication. Tout simplement parce que cela ne se fait pas... On demande un peu plus de tact SVP ;-)

Oncle Tom
WRInaute impliqué
WRInaute impliqué
 
Messages: 812
Inscription: 31 Mar 2003

Message le Ven Aoû 13, 2004 7:46

Et en fait qu'est ce qui ne marche pas ? Parce qu'à vue d'oeil ça m'a pas l'air foireux.

kid75
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 20 Juin 2004

Message le Ven Aoû 13, 2004 8:26

The Jedi a écrit:Et en fait qu'est ce qui ne marche pas ? Parce qu'à vue d'oeil ça m'a pas l'air foireux.


Merci de t'intéresser à mon cas,toi au moins tu ne cherches pas à me juger,en fait après remplissage du formulaire j'obtiens bien ma pas réponse:"VOS INFORMATIONS ONT BIEN ETE ENVOYEES.Merci."
Mais avec en plus cette ligne qui s'incrit sur ma page:"nullmailer-inject: Invalid header line: Reply-To: Unable to parse the addresses."
Et surtout toujours pas de mail ni de photo sur mon mail?


niceunef
WRInaute passionné
WRInaute passionné
 
Messages: 1811
Inscription: 19 Jan 2004

Message le Ven Aoû 13, 2004 23:03

parenthèse : c'est génial sur Lycos avec Firefox, la pub envahissante ne part pas, même en attendant la fin de l'animation...
quelle drôle d'idée de rester sur un hébergement de ce type...

Ah d'accord... ca me le fait aussi... [troll]Sinon, quelle drôle d'idée de payer pour de l'hébergement :wink:, surtout pour des newbies comme il y en a sur des services de pages perso. Et meme pour les pros, ca permet de tester un site... Ayant connu les débuts, les termes "internet" et "payer" me semblent toujours contradictoires (un peu moins).[/troll]
Pour le formulaire, essaie peut-etre de voir s'il marche sur un serveur pro sans la pub Lycos pour le faire foirer... Et sur le fond, un peu pareil que ci-dessus: 'pas une marchandise...

Oncle Tom
WRInaute impliqué
WRInaute impliqué
 
Messages: 812
Inscription: 31 Mar 2003

Message le Lun Aoû 16, 2004 7:59

Ce message, c'est normal que tu le vois car tu l'affiches avant d'avoir exécuté le script ;)

Pour l'erreur du mail, visiblement ça cloche au Reply-to. Quand tu fais tes tests, la variable $reponse vaut quoi ? Il me semble que c'est la seule que t'aies pas récupéré depuis $_POST['reponse']. Puis vu que tu fais rien de particulier avec les autres, tu peux même faire directement :

Code: Tout sélectionner
mail($_POST['destinataire'], $_POST['sujet'], $msg, "Reply-to: {$_POST['reponse']}\r\nFrom: {$_POST['expediteur']}\r\n".$header);

kid75
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 20 Juin 2004

Message le Mer Aoû 18, 2004 18:07

The Jedi a écrit:Ce message, c'est normal que tu le vois car tu l'affiches avant d'avoir exécuté le script ;)


Que dois-je faire alors,pour ne plus avoir ce message?
@+ :?


herveG
Modérateur
Modérateur
 
Messages: 9919
Inscription: 5 Mar 2003

Message le Mer Aoû 18, 2004 20:57

kid75 a écrit:
herveG a écrit:si votre site est un site adulte, raciste, portant atteinte aux droits des tiers ou ne correspondant pas à nos valeurs, nous vous demandons de ne pas mettre son URL dans votre profil, et de ne pas discuter de votre site dans les discussions...


Il me semble que je n'ai pas donner l'url de mon site et que j'expose uniquement un problème?Si vous ne souhaitez pas m'aider mais polémiquer alors c'est différent on peux en faire 63 des posts pour rien résoudre?


J'ai du mal à croire que

h**p://kapitolprod.maisonx.com/page1.html


ne soit pas une URL X... mais je peux me tromper après tout....

Oncle Tom
WRInaute impliqué
WRInaute impliqué
 
Messages: 812
Inscription: 31 Mar 2003

Message le Jeu Aoû 19, 2004 9:24

kid75 a écrit:
The Jedi a écrit:Ce message, c'est normal que tu le vois car tu l'affiches avant d'avoir exécuté le script ;)


Que dois-je faire alors,pour ne plus avoir ce message?
@+ :?


Je t'ai déjà donné la marche à suivre dans le même message ;) essaie et dis moi.

Mais pour expliquer en détail, regarde.
1) tu envoies ton formulaire à envoi.php
2) logiquement la page envoi.php est affichée ligne par ligne (au fur et à mesure quoi) donc, tout le texte apparait, DONT le message comme quoi c'est envoyé (normal c'est écrit en "dur")
3) vers la fin de ta page c'est ton script PHP qui s'enclanche

Conclusion : t'auras ton messages quoiqu'il arrive, même si t'as pas PHP sur ton ordi ^^ elle est pas belle la vie ?

Le mieux c'est de ne pas afficher ce message en haut de page mais d'y mettre ton code PHP. En changeant comme ça :

Code: Tout sélectionner
$envoi = @mail (......);

//mail correctement envoyé
if( $envoi )
{ echo "Mail bien envoyé et tout le blabla que tu veux"; }
//là maintenant si ce n'est pas bon, il y a une erreur quelque part
//pense à enlever le @ pour voir le message d'erreur s'afficher
else{ echo "Problème lors de l'envoi"; }


Tu peux faire le if() n'importe où APRES avoir envoyé le mail ce qui te faciliteras la tâche.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité