> Tous les forums > Forum des Webmasters
 petit probleme de formulaire ???Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
tom2
  Posté le 27/07/2007 @ 13:34 
Aller en bas de la page 
Petit astucien

Bonjour,

j'ai crée un petit formulaire avec une zone ou l'on peut m'envoyer des photos cependant lorsque l'on remplit celui-ci, à la reception du mail je n'ai aucun fichier dans le message sauf l'intitulé de la photo !

URL de la page : http://fgr7.free.fr/formulaire2.html

Publicité
tom2
 Posté le 27/07/2007 à 14:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

je voudrais aussi que le formulaire ne passe pas par une messagerie avant d' arriver sur ma boite : je vous laisse le code !

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<script src="parametre.js"></script>
<SCRIPT LANGUAGE="JavaScript">
function Envoyer(f) {
f.submit();
}
</SCRIPT>
<style type="text/css">
<!--
@import url("feuille titre.css");
-->
</style>
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\ ';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\ ';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\ ';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\ '; }
} if (errors) alert('The following error(s) occurred:\ '+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>

<body bgcolor="#000000">
<form action="mailto:johann.mare@free.fr?subject=ptitquestionnaire" method="post" enctype="text/plain" name="ptit questionnaire" id="ptit questionnaire" onsubmit="MM_validateForm('quelsport','','R');return document.MM_returnValue">
<p>&nbsp;</p>
<table width="65%" height="377" border="0" align="center" cellspacing="0" background="images/fond-formulaire.png">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="50%"><div align="right"><span class="lesquestions"><font color="#666666"><b>Pratiquez-vous un sport de glisse ?</b> </font></span></div></td>
<td width="44%"><label>
<input type="radio" name="oui" value="radiobutton" />
<b><span class="lesquestions"><font color="#666666">oui</font></span></b><span class="lesquestions"><font color="#666666"></font></span> <span class="lesquestions">
<input type="radio" name="non" value="radiobutton" />
<b><font color="#666666">non</font></b></span></label></td>
<td width="6%">&nbsp;</td>
</tr>
<tr>
<td class="lesquestions"><div align="right"><font color="#999999"><b>Si oui lequel(s) ? </b></font></div></td>
<td><label>
<textarea name="quelsport" id="quelsport"></textarea>
</label></td>
<td>&nbsp;</td>
</tr>
<tr>
<td height="165" class="lesquestions"><div align="right"><font color="#CCCCCC"><b>Peut-&ecirc;tre une petite anecdote :</b></font> </div></td>
<td><label>
<textarea name="anecdote" cols="30" rows="10" id="anecdote"></textarea>
</label></td>
<td>&nbsp;</td>
</tr>
<tr>
<td height="26" class="lesquestions"><div align="right"><font color="#FFFFFF"><b>Vos photos : </b></font></div></td>
<td><label>
<input name="parcourir" type="file" id="parcourir" />
</label></td>
<td>&nbsp;</td>
</tr>
<tr>
<td height="21">&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td height="21">&nbsp;</td>
<td><label>
<input name="envoie" type="submit" id="envoie" value="envoyer" />
</label>
<label>
<input name="r&eacute;init" type="reset" id="r&eacute;init" value="R&eacute;initialiser" />
</label></td>
<td>&nbsp;</td>
</tr>
<tr>
<td height="21">&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</body>
</html>

fennec.
 Posté le 27/07/2007 à 16:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
bonjour, voila le problème. ENCTYPE spécifie l'encodage utilisé pour la forme que prendra le contenu du formulaire. Ce paramètre ne peut être utilisé qu'accompagné par la méthode POST. ENCTYPE peut prendre plusieurs valeurs: * ENCTYPE="application/x-www-form-urlencoded" valeur par défaut; encode le contenu du formulaire selon une forme URL qui est difficilement lisible par le destinataire; http://Votre.Serveur.com/cgi-bin/VotreScript?ObjetDeFormulaire1=valeur1&... * ENCTYPE="text/plain" le contenu du formulaire sera retourné en format texte lisible par le destinataire; option accompagnée le plus souvent de ACTION=mailto: * ENCTYPE="multipart/form-data" permet d'expédier un fichier attaché au message. faire attention avec ce genre de formulaire apparament on peur t'envoyé n'importe quelle type de fichier change ton en et lors du clic sur le bouton la personne ne pourra ajouté que des .gif et .jpg voila
fennec.
 Posté le 27/07/2007 à 16:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
sorry, j'aurrai du metre des crochets change ton [input name="parcourir" id="parcourir" type="file" /] en [ input name="parcourir" id="parcourir" accept="image/jpeg" type="file" /] voila
tom2
 Posté le 27/07/2007 à 17:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
fennec. a écrit :

sorry, j'aurrai du metre des crochets

change ton

[input name="parcourir" id="parcourir" type="file" /]

en

[ input name="parcourir" id="parcourir" accept="image/jpeg" type="file" /]


voila

Tout d'abord merci d'avoir répondu, et puis sinon ben au niveau de l'envoie de fichiers, enfin de JPEG cela ne fonctionne toujours pas !

Malcolm
 Posté le 27/07/2007 à 17:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

je viens de répondre à ton MP tom2, si ça marche, on partage.
tom2
 Posté le 27/07/2007 à 19:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Malcolm a écrit :

je viens de répondre à ton MP tom2, si ça marche, on partage.

merci Malcolm mais j'ai encore un souci, je t' ai envoyé 1 MP !

fennec.
 Posté le 27/07/2007 à 22:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

slt,

tu as bien mit ENCTYPE="multipart/form-data" dans ton tag form

et pour l'input j'ai mit accept="image/gif"

mais sur firefox il laisse selectionner tout les fichiers et sur ie7 on a la choix entre selectionner tous les fichiers et les gif / jpg

pas core au point les browser pour l'attribut accept

si ca ne marche pas comme ca plutot que de faire mailto: ds ton form => fait mail.php

récupère ton image avec ton script php, si tu veux tu peux faire des tests

-si c'est bien un gif ou un jpg

-la taille du fichier

-si ton fichier passe bien par le web server

-si ton fichier est complet

-ect...

ensuite il ne reste plus qu'a l'envoyer par mail toujours avec php

tom2
 Posté le 28/07/2007 à 17:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

j'ai essayé de régler le probleme sous vos conseils mais une erreur demeure dans la partie PHP : (Parse error: syntax error, unexpected '}' in /mnt/155/sda/d/7/fgr7/questionnaire.php on line 95)

Mon fichier PHP :

<?php

$destination = "johan.mare@free.fr";

$sujet = "remplissage d'un questionnaire";

$pratique_sport_glisse = (isset($_POST['pratique_sport_glisse'])) ? $_POST['pratique_sport_glisse'] : ''; // pareil pour chaque "name", $_POST parce que la méthode est "post"

//pour le fichier uploadé, c'est un poil plus complexe, il faut l'écrire dans un dossier

$name_fichier = $_FILES['parcourir']['name'];
$source=$_FILES['
parcourir']['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;
}

$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";




$msg = "Bonjour, un formulaire a été soumis :\r\n";

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

$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= "Pratique-t-il des sports de glisse ? : $pratique_sport_glisse\n";

// [...] mettre avec .= toutes les variables précédemment récupérées

$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['to'];
$expediteur = $_POST['from'];


// envoi du mail
mail($destinataire, $sujet, $msg, "Reply-to: $destinataire\r\nFrom: Mail de formulaire \r\n".$header);

}

?>


Publicité
fennec.
 Posté le 29/07/2007 à 13:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

slt,

a première vue il me semble que ton acollade fermant avat ?> ne sert a rien

pour éviter ce genre d'ereur voila quelque conseil

avant tout lorsqu'une condition ou une boucle n'a qu'une seul instruction ne met pas les acolades. attention pour les fonctions elle sont obligatoire

example :

if (i<2)

j=5;

lorsque tu as des crochets, des parenthèse ou des accolades commence par les mètre toutes les deux

example :

étape 1 : if ()

étape 2 : if (i<2)

étape 3 : if (i<2) {}

ensuite tu tappe ton code dans les accolades

il est difficile de si retrouvé la dedans

if ((())()(()()))

certain programme lorsque tu passe sur une acolades, une parenthese ou un crochet, te met l'ouvrant et le fermant en couleur 'est plus facil de s'y retrouvé

tom2
 Posté le 29/07/2007 à 13:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut,

j' ai viré l' acolade qui se trouve à la fin c'est a dire avant: ?>

mais rien n'a changé maintenant l'erreur se situe ligne 93 et comme je n'ai aucune notion en php c'est assez difficile, pour moi de déchiffrer quoi que se soit... C'est un peu tordu tout ça, lol !

Malcolm
 Posté le 29/07/2007 à 14:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

fennec : les accolades ne sont effectivement pas obligatoires, mais par souci de clarté je les ai mises. Et mon exemple est largement différent de ce que tu expliquais au début.

tom2 : c'est gentil de dire "j'ai une erreur", mais comme je viens de te le dire par MP, si onn'a pas la ligne, on ne peut pas la deviner.

tom2
 Posté le 29/07/2007 à 15:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
excusez moi la voila : mail($destinataire, $sujet, $msg, "Reply-to: $destinataire\r\nFrom: Mail de formulaire \r\n".$header);
Malcolm
 Posté le 29/07/2007 à 19:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

la ligne est bonne, c'est ss doute une parenthèse mal fermée avant ou une accolade mal fermée.
tom2
 Posté le 29/07/2007 à 19:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je voudrais pas paraitre chiant mais ya bon nombre de parenthèses dans tout ça et tout ne me semble pas rationnnellement français ou meme mathematique à mon niveau, alors Malcolm je te fais de nouveau parvenir le script :

<?php

$destination = "johan.mare@free.fr";

$sujet = "remplissage d'un questionnaire";

$pratique_sport_glisse = (isset($_POST['pratique_sport_glisse'])) ? $_POST['pratique_sport_glisse'] : ''; // pareil pour chaque "name", $_POST parce que la méthode est "post"

//pour le fichier uploadé, c'est un poil plus complexe, il faut l'écrire dans un dossier

$name_fichier = $_FILES['parcourir']['name'];
$source=$_FILES['
parcourir']['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;
}

$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";




$msg = "Bonjour, un formulaire a été soumis :\r\n";

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

$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= "Pratique-t-il des sports de glisse ? : $pratique_sport_glisse\n";

// [...] mettre avec .= toutes les variables précédemment récupérées

$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['to'];
$expediteur = $_POST['from'];


// envoi du mail
mail($destinataire, $sujet, $msg, "Reply-to: $destinataire\r\nFrom: Mail de formulaire \r\n".$header);

}

?>

tom2
 Posté le 29/07/2007 à 19:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
L'erreur ne serait pas ici par hasard : $boundary = "-----=".md5(uniqid(rand()));
Malcolm
 Posté le 29/07/2007 à 23:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

non mais la dernière accolade me semble être en trop, je vais revoir de mon coté dès que j'aurai un peu de temps.
Publicité
tom2
 Posté le 30/07/2007 à 08:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Ok merci c' est sympa !
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
1 €Audible (livres audio) à 1 € par mois pendant 6 mois [Amazon Prime]
Valable jusqu'au 25 Juin

L'abonnement Audible, qui permet d'écouter des livres audio est en ce moment à 1 € par mois pendant 6 mois pour les membres Amazon Prime au lieu de 9,95 €. Notez que l'offre est résiliable à tout moment et facilement. L'abonnement Audible vous permet de bénéficier un crédit audio par mois,  échangeable contre n'importe quel livre audio parmi une large sélection de 500 000 titres, peu importe sa durée ou son prix. Vous pourrez télécharger et d'écouter (même hors connexion) vos livres via l'application Audible ou directivement via le site.

Vous n'avez pas le temps de lire ? Avec Audible, écoutez vos livres en voiture, en marchant, en faisant du sport, ...

L'offre est réservée aux membres Amazon Prime. Si vous n'êtes pas encore membre, vous pouvez essayer le service Amazon Prime gratuitement et sans engagement pendant 30 jours (livraison gratuite en 1 jour ouvré, streaming Amazon Prime Vidéo, musique en streaming illimité, stockage de manière sécurisée et illimitée vos photos, emprunt gratuit d'ebook, ...). A la fin de ces 30 jours gratuits, vous pourrez continuer à utiliser ce service pour 49 € / an ou bien le stopper sans frais.


> Voir l'offre
17,99 €Micro clé USB 3.1 Sandisk Ultra Fit 128 Go à 17,99 €
Valable jusqu'au 25 Juin

Amazon fait une promotion sur la micro clé USB Sandisk Ultra Fit d'une capacité de 128 Go qui passe à 17,99 €. La minuscule taille de cette clé USB va vous permettre de la laisser brancher en permanence sur votre portable, votre TV ou votre autoradio sans qu'elle dépasse de manière disgracieuse. Sa compatibilité USB 3.1 lui permet d'atteindre des débits jusqu'à 130 Mo/s. 


> Voir l'offre
199,99 €Casque sans fil à réduction de bruit Sony WH-1000XM3 (Hi-Res Audio, Bluetooth/NFC) à 199,99 €
Valable jusqu'au 24 Juin

Darty propose actuellement l'excellent casque sans fil à réduction de bruit et Hi-Res Audio Sony WH-1000XM3 à 199,99 € grâce au code promo SON30. On le trouve ailleurs à partir de 300 €. Jusqu'à 30h d'autonomie avec la fonction de réduction de bruit activée et fonction Quick Attention pour réduire instantanément le volume de votre musique et pouvoir suivre une conversation. 


> Voir l'offre

Sujets relatifs
Formulaire Flash qui a un tout petit problème
Problème pour recevoir infos formulaire
petit probleme!!
probleme formulaire php
comment créer et recevoir un petit formulaire tout
Petit problème
Problème de formulaire html (Orange)
Petit problème script PHP
Problème formulaire PHP
petit probleme d'hebergement
Plus de sujets relatifs à petit probleme de formulaire ???
 > Tous les forums > Forum Forum des Webmasters