Contrôler valeur liste formulaire php

Résolu
access974 Messages postés 3 Date d'inscription samedi 28 juillet 2007 Statut Membre Dernière intervention 30 janvier 2011 - 24 déc. 2007 à 10:27
Khzulu Messages postés 28 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 3 février 2008 - 26 déc. 2007 à 03:20
Bonjour à toute la communautée,

J'ai récupéré sur la toile le script php d'un formulaire avec traitement des valeurs saisies dans les zones de texte.

========== formulaire.php ============




if($ref1 or $ref2 or $ref3)
{
if($ref1){
$ref1=$NOM1;
}
if($ref2){
$ref2=$PRENOM1;
}
if($ref3){
$ref3=$EMAIL1;
}
echo"onload="alert('$MERCI1 $remplir$ref$ref1$ref2$ref3$ref4$correct')"";
}
?>>
<form name="contactform" action="validform.php" method="post" enctype="multipart/form-data" onSubmit="doValidate(this);return false">

       Nom :,
        " size="50" maxlength="50">
    <? if($ref1){ echo' '.$NOMA.'';}?>,
   
    ----

    Pr&eacute;nom :,
        " size="50" maxlength="50">
    <? if($ref2){ echo' '.$PRENOMA.'';}?>
   ,
   
    ----

    E-mail :,
        " size="60" maxlength="60">
    <? if($ref3){ echo' '.$EMAILA.'';}?>
   ,
   
    ----

  

    ">
   
   

</form>

========== formulaire.php ============



Je voudrais rajouter dans mon formulaire (ci-dessus), une liste déroulante et m'assurer qu'une valeur a bien été sélectionnée lors de l'envoi de mon formulaire.
Le code ci-dessous contrôle et valide les valeurs.



========== validform.php ============
<?
$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$email = $_POST["email"];



if($cookie=="1"){
if(isset($cookie)){
setcookie("name",$nom,time()+3600*24*365);
setcookie("prename",$prenom,time()+3600*24*365);



setcookie("email",$email,time()+3600*24*365);
}
else{}
}
else{
}
$alpha="abcdefghijklmnopqrstuvwyzABCDEFGHIJKLMNO
PQRSTUVWYZ";
$num="0123465789";



if(strlen($nom)<2 or ereg("([$num]){1,20}",$nom)){
$champs1="nom";
}
if(strlen($prenom)<2 or ereg("([$num]){1,20}",$prenom)){
$champs2="prenom";
}
if( strlen($email)>2 && ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.



    [mailto:'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.' '@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'].
    '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email) )
    {}
    else{
    $champs3="email";
    }



if( isset($champs1)&& $controle=="1" || isset($champs2)&& $controle=="1" || isset($champs3)&& $controle=="1"){
header("location:formulaire.php?ref1=$champs1&am
p;ref2=$champs2&ref3=$champs3");
}
else{
function file2go2($url1){ print "<html>\n<head>\n<meta http-equiv="refresh" content="0;URL=$url1">\n<link rel="stylesheet" href="style.css" type="text/css">
</head>\n</html>"; exit; }
...
?>
========== validform.php ============



Je ne sais pas comment exprimer la syntaxe dans validform.php pour contruire ma liste et vérifier qu'une valeur a bien été sélectionnée au moment de l'envoi des données.
Ne maîtrisant pas le php, si quelqu'un pouvait apporter la solution.
Merci d'avance.
Bonnes fêtes

4 réponses

Khzulu Messages postés 28 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 3 février 2008
25 déc. 2007 à 13:43
Que veux tu faire exactement ??
Pour info ce script permet de vérifier que les champs ne contiennent poas de caractères non voulu comme du numérique pour le nom et le prénom et les rentres dans les variables $champ. Il ne traite dons pas les listes.
3
access974 Messages postés 3 Date d'inscription samedi 28 juillet 2007 Statut Membre Dernière intervention 30 janvier 2011
25 déc. 2007 à 15:00
Bonsoir Khzulu,

Justement, je voudrais pouvoir intégrer une liste déroulante.
Et je ne sais pas comment faire, je ne maîtrise pas du tout le PHP.
Ce n'est pas faute d'avoir cherché sur le net une solution.

Merci.
0
Khzulu Messages postés 28 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 3 février 2008
26 déc. 2007 à 03:17
Voilà un bout de code pris sur "le site du Zér0":
<hr size="2" width="100%" /><?php

//***************************** Création de la fonction ******************************
function choixParDefaut($couleur)
{

// On crée une variable (vide par défaut) que l'on retournera à la fin
$par_defaut = '';
// Si le visiteur a choisi une couleur
if (isset($_POST['couleur']))
{
// Si cette couleur correspond à la couleur que l'on est en train de traiter
if ($_POST['couleur'] == $couleur)
{
// Alors on modifie la variable que l'on retournera et on lui met selected
$par_defaut='selected="selected"';
}
}
//On ne retourne rien si ce n'était pas la couleur choisie, selected si c'était la bonne couleur
return $par_defaut;
}
//******************************** Fin de la fonction *******************************

?>

Quelle est votre couleur préférée ?

<!-- Formulaire simple avec une liste déroulante à 5 choix et un choix par défaut -->
<!-- La valeur 'value' de l'Option représente la valeur passé par le $_POST -->
<form method="post">

<select name="couleur">
<option value="0" <?php echo choixParDefaut('0'); ?>>- Choissez une couleur -</option>
<option value="Bleu" <?php echo choixParDefaut('Bleu'); ?>>Le Bleu</option>
<option value="Marron" <?php echo choixParDefaut('Marron'); ?>>Le Marron</option>
<option value="Vert" <?php echo choixParDefaut('Vert'); ?>>Le Vert</option>
<option value="Rose" <?php echo choixParDefaut('Rose'); ?>>Le Rose</option>
<option value="Jaune" <?php echo choixParDefaut('Jaune'); ?>>Le Jaune</option>
</select>



</form>

<!-- On vérifie si le visiteur a choisi une couleur -->
<?php
if (isset($_POST['couleur']) and $_POST['couleur']!='0')
{
echo 'Votre couleur préférée est le : ' . htmlspecialchars($_POST['couleur']) . '

';
echo 'Ici $_POST[\'couleur\'] retourne donc la valeur de l\'attribut VALUE de l\'élément OPTION

';
}
else
{
echo 'Veuillez séléctionner une valeur, siouplait, cimer bien.';
}
?>

Voilà si tu ne comprends pas, cliques sur le lien en haut de la page et regardes la section PHP/MySQL, très instrucive.
En éspérant t'avoir aider.

Joyeux Noël et Bonne Année.
0
Khzulu Messages postés 28 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 3 février 2008
26 déc. 2007 à 03:20
Ha et pardon pour le double poste, mais si tu n'es pas satisfait par les réponses ne cliques pas sur
"réponse accéptée" sinon tu auras beaucoup moins de lecteur et donc beaucoup de réponse logique....

Voili, Voilou.
0
Rejoignez-nous