> Tous les forums > Forum des Webmasters
 Formulaire
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
niko973
  Posté le 28/03/2011 @ 18:28 
Aller en bas de la page 
Petit astucien

Salut à tous,

Je me prend la tête depuis quelque jour sur comment faire un formulaire et j'ai toujours des soucis. Voici mon code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n'êtes pas certain de ce que vous faites !
$list['f_6']=array("Miel Provence 250gr","Miel Provence 500gr","Miel Quercy 250gr","Miel Quercy 500gr","Triomiel (3x250gr)","Mielinoix");
$list['f_7']=array("Sélectionnez","1","2","3","4","5","6","7","8","9","10");
if(isset($_POST['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));
$f_4=trim(eregi_replace("[^0-9+]", "", $f_4));
$f_5=trim(eregi_replace("[^0-9\ +]", "", $f_5));
$f_8=strip_tags(trim($f_8));
// Verification des champs
if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ « Prénom » est vide ou incomplet.</span>";
$errf_2=1;
}
if(strlen($f_3)<2){
$erreur.="<li><span class='txterror'>Le champ « Adresse » est vide ou incomplet.</span>";
$errf_3=1;
}
if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ « Code postal » est vide ou incomplet.</span>";
$errf_4=1;
}
if(strlen($f_5)<2){
$erreur.="<li><span class='txterror'>Le champ « Tél » est vide ou incomplet.</span>";
$errf_5=1;
}
if(!$f_6){
$erreur.="<li><span class='txterror'>Le champ « Produits souhaité » requiert au moins une sélection.</span>";
$errf_6=1;
}
if($f_7==0){
$erreur.="<li><span class='txterror'>Le champ « Quantités » n'a pas été défini.</span>";
$errf_7=1;
}
if(strlen($f_8)<2){
$erreur.="<li><span class='txterror'>Le champ « E-mail » est vide ou incomplet.</span>";
$errf_8=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_8)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_8=1;
}
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:Site@Natura-miel.com\n";
$corps.="Nom : ".$f_1."\n";
$corps.="Prénom : ".$f_2."\n";
$corps.="Adresse : ".$f_3."\n";
$corps.="Code postal : ".$f_4."\n";
$corps.="Tél : ".$f_5."\n";
for($id=0; $id<count($list['f_6']); $id++){
if($f_6[$id]==1){
$corps.="Produits souhaité : ".$list['f_6'][$id]."\n";
}
}
$corps.="Quantités : ".$list['f_7'][$f_7]."\n";
$corps.="E-mail : ".$f_8."\n";
$corps.="Commentaires : ".$f_9."\n";
if(mail("abeilledestourbieres@natura-miel.com", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css" media="screen"><!--
INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
.txterror { color: black; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
.txtform { color: black; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
--></style>
</head>
<body>
<? if($ok_mail=="true"){ ?>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>
<tr><td> </td></tr>
<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
<tr><td> </td></tr>
<tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
</table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b> ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?>
<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Nom* :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Prénom* :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Adresse* :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Code postal* :</span></td><td><input type='text' style='width:200 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' value='<?echo stripslashes($f_4);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Tél* :</span></td><td><input type='text' style='width:200 <?if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_5' value='<?echo stripslashes($f_5);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Produits souhaité* :</span></td><td>
<table border='0' cellspacing='0' cellpadding='0'>
<? for($id=0;$id<count($list['f_6']);$id++){
if($f_6[$id]==1){$ct="checked";}
print("<tr><td><input ".$ct." type='checkbox' name='f_6[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_6][$id]."</span></td></tr>");
unset($ct);
}?>
</table>
</td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Quantités* :</span></td><td><select style='width:200 <?if($errf_7==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_7' size='1'>
<? for($id=0;$id<count($list['f_7']);$id++){
if($id==$f_7){$ct="selected";}
print("<option ".$ct." value=".$id.">".$list['f_7'][$id]."</option>");
unset($ct);
}?>
</select></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>E-mail* :</span></td><td><input type='text' style='width:200 <?if($errf_8==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_8' value='<?echo stripslashes($f_8);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Commentaires :</span></td><td><textarea style='width:360 <?if($errf_9==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_9' rows='6' cols='40'><?echo$f_9?></textarea></td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>
<? } ?>
</body>
</html>

Non il n'est aps de moi c'est un générateur de formulaire. J'ai du coup quelques soucis. Quand je vais sur la page correspondante dans mon serveur local voici ce que je vois :

capture

Ou est l'erreur? Merci d'avance pour votre aide!

Niko973



Modifié par niko973 le 28/03/2011 18:32
Publicité
niko973
 Posté le 28/03/2011 à 18:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

apparement je n'arrive pas a faire apparaitre cette maudite capture d'écran voici le lien vers : http://www.hiboox.fr/go/images/informatique/capture,7e294a7a522826a20b0530d9c74db2cd.jpg.html

kalinka
 Posté le 28/03/2011 à 19:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucienne

a premiere vue ( pas le temps de trop regarder) je dirais que tu n'a pas activé la function short open tags dans le php.ini de ton serveur local du coup tes < ? sont pris pour du html

* la manip est pour wampserver mais elle doit etre a peu pres identique pour tous

lance ton serveur, clique gauche sur l'icone dans la barre des taches ( pres de l'heure) puis clique sur php,configuration php et enfin coche short open tags, attends que le serveur redémarre et verifie si cela marche.



Modifié par kalinka le 28/03/2011 19:15
niko973
 Posté le 28/03/2011 à 19:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Alors je l'ai fait et voici le probleme :

http://www.hiboox.fr/go/images/informatique/capture,76ba079ec81441157e155d2973cf57c0.jpg.html

Par contre ça marche bien quand je l'héberge en ligne!

niko973
 Posté le 28/03/2011 à 20:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Une autre question: J'aimerais calculer le total de prix de la commande voici le code envoyé automatiquement

// Création du message
$titre="Message de votre site";
$tete="From:Site@Natura-miel.com\n";
$corps.="Nom : ".$f_1."\n";
$corps.="Prénom : ".$f_2."\n";
$corps.="Adresse : ".$f_3."\n";
$corps.="Code postal : ".$f_4."\n";
$corps.="Tél : ".$f_5."\n";
$corps.="Miel Provence 250gr : ".$list['f_6'][$f_6]."\n";
$corps.="Miel Provence 500gr : ".$list['f_7'][$f_7]."\n";
$corps.="Miel Quercy 250gr : ".$list['f_8'][$f_8]."\n";
$corps.="Miel Quercy 500gr : ".$list['f_9'][$f_9]."\n";
$corps.="Mielinoix : ".$list['f_10'][$f_10]."\n";
$corps.="Triomiel (3x250gr) : ".$list['f_11'][$f_11]."\n";
$corps.="E-mail : ".$f_12."\n";
$corps.="Commentaires : ".$f_13."\n";
$corps.="Prix total : ??????????

Au niveau de la dernière ligne à la place des points d'exclamations j'aimerais mettre une formule de type (prix1*quantité1+prix2*quantité2...) Sauf que quand je tente de récupérer les variable affichées plus haut j'ai des erreurs dans le code je ne sais pas vraiment coder ça niveau nomenclature...

Merci d'avance de votre aide!

niko973
 Posté le 29/03/2011 à 13:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je n'avance vraiment pas! Un peu d'aide serait la bienvenue!

niko973
 Posté le 29/03/2011 à 14:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

J'arrive à afficher le calcul ais pas le résultat. Ce qui fait que après la ligne Prix total on a 1*6,40+3*6,80 etc... que dois-je faire?

regardez pas vous même si vous voulez http://niko973.free.fr/formapiculture/formulaire.php



Modifié par niko973 le 29/03/2011 14:57
kalinka
 Posté le 30/03/2011 à 09:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucienne

essaye avec ca ( j'ai la flemme de chercher le nom de tes variables )

 echo 'Total : '.(($nombremiel1*$prix1)+($nombremiel2*$prix2)+($nombremiel3*$prix3)+($nombremiel4*$prix4) );
niko973
 Posté le 11/04/2011 à 14:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

désolé de cette interruption! Voici l'erreur qui apparait lorsque je place la commande de kalinka à la suite de :

// Création du message
$titre="Message de votre site";
$tete="From:Site@Natura-miel.com\n";
$corps.="Nom : ".$f_1."\n";
$corps.="Prénom : ".$f_2."\n";
$corps.="Adresse : ".$f_3."\n";
$corps.="Code postal : ".$f_4."\n";
$corps.="Tél : ".$f_5."\n";
$corps.="Miel Provence 250gr : ".$list['f_6'][$f_6]."\n";
$corps.="Miel Provence 500gr : ".$list['f_7'][$f_7]."\n";
$corps.="Miel Quercy 250gr : ".$list['f_8'][$f_8]."\n";
$corps.="Miel Quercy 500gr : ".$list['f_9'][$f_9]."\n";
$corps.="Mielinoix : ".$list['f_10'][$f_10]."\n";
$corps.="Triomiel (3x250gr) : ".$list['f_11'][$f_11]."\n";
$corps.="E-mail : ".$f_12."\n";
$corps.="Commentaires : ".$f_13."\n";
$corps.="Prix total : ??????????

Sans l'inclure dans la variable $corps. j'ai : Fatal error: Unsupported operand types in /mnt/136/sdd/e/0/niko973/formapiculture/formulaire.php on line 84

Si je l'inclu dans la variable j'ai une erreur dans dreamweaver de syntax sur cette ligne: $corps.="echo 'Total : '.(($list['f_6']*6.40)+($list['f_7']*6.40))";

Merci d'avance pour votre aide :)!

Publicité
midnightblue
 Posté le 11/04/2011 à 19:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Si çà peut t'aider...

<?php

//PRIX DU MIEL
$prixdumiel250=10;

// INITIALISATION DES VARIABLES
if(empty($_POST["ok"])){$_POST["ok"]="";}
if(empty($_POST["miel250"])){$_POST["miel250"]="";}

// VALIDATION DU FORMULAIRE

if($_POST["ok"]!="") {

// Calcul du prix
$prix=$_POST["miel250"]*$prixdumiel250;

// Variable de la commande
$corps="quantité : ".$_POST["miel250"]."<>prix unitaire : ".$prixdumiel250."<>TOTAL : ".$prix;

// Affichage de la commande
echo $corps;

// Envoi par mail
mail("
adresse@courriel","sujet",$corps);

}
?>

<!-AFFICHAGE DU FORMULAIRE-->

<html>
<head>
<title>Formulaire Commande de Miel</title>
</head>
<body>
<form method="post">
<select name="miel250">
<?php
for ($i=0;$i<=10;$i++) { echo "<option>".$i."</option>";}
?>
</select>
<input type="submit" name="ok" value="VALIDER">
</form>
</body>
</html>

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
27,99 €Tensiomètre électronique Omron X2 à 27,99 €
Valable jusqu'au 20 Mai

Amazon fait une promotion sur le tensiomètre électrique Omron X2 Basic qui passe à 27,99 € livré gratuitement. On le trouve ailleurs autour de 40 €. ce tensiomètre brassard est équipé d’un indicateur d’installation correcte avec voyant à LED, d’un indicateur de détection de mouvement et possède un grand écran et des touches larges. Afin de répondre au besoin du plus grand nombre, le M2 est livré avec un brassard M/L, pour un tour de bras de 22 à 32 cm.


> Voir l'offre
67,99 €Alimentation semi modulaire Be Quiet Pure Power 11 500W, 80+ Gold à 67,99 €
Valable jusqu'au 18 Mai

Amazon propose actuellement l'alimentation semi modulaire Be Quiet Pure Power 11 d'une puissance de 500W à 67,99 € livrée gratuitement. On trouve habituellement cette alimentation à partir de 75 €. Certifiée 80+ Gold, elle propose d'excellents rendements (jusqu'à 92 %) est silencieuse et dispose d'une garantie 5 ans.


> Voir l'offre
-55%Jusqu'à 55% de réduction sur une sélection de produits Bosch
Valable jusqu'au 23 Mai

Amazon offre actuellement 55% de remise immédiate sur une sélection de produits Bosch pour le bricolage, la maison et le jardin.


> Voir l'offre

Sujets relatifs
Site de mariage - Formulaire d'inscription
Formulaire qui ne fonctionne pas avec Joomla
Formulaire d'envoi de message
Actualisation d'un sous formulaire
Installation Capcha Cryptographp sur formulaire
JS formulaire dynamique sous forme de tableau
formulaire php incomplet envoyé vers bdd
Envoi de formulaire sur Email: comment faire SVP?
Problème pour recevoir infos formulaire
Pas de mail recu avec formulaire html et php
empêcher submit formulaire via javascript
Plus de sujets relatifs à Formulaire
 > Tous les forums > Forum Forum des Webmasters