Comment traiter un formulaire??

Lili_754 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   -  
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour
Voici l'enoncer de mon probleme:
Lors de la première exécution de entrerNotes, un formulaire demande le numéro du groupe concerné. La soumission du formulaire se fait par la méthodes get. Ce formulaire est reproposé (avec un message d'erreur) si le numéro :

*n'a pas été saisi,
*ou est supérieur à une constante définie dans le script.

Voici mon code, mais j'arrive pas à bien placer mes if

<?php
error_reporting(E_ALL);
include "entete.php";
echo DOCTYPE_XHTML_BASIC_11."\n";
echo HTML_FR."\n";
echo "<head>";
echo META_TYPE_TEXT_HTML_UTF8."\n";
echo "<title> tableau associatif </title> \n";
echo "</head> \n";
echo "<body>";
$$$$ LA EST CITUE MON PROBLEME $$$$
if (!empty($_GET['id']))
$match="#^[1-9]{7}$#";
if (preg_match($match,$_GET['id'])
echo $_GET['id'];
else{
echo

echo "<form methode ='POST' action=".$_SERVER['PHP_SELF'].">";
?>

<fieldset> <legend> Saisir votre numero d'Etudiant </legend>
<label for="id-etu"> Identifiant </label>
<input type='text' id="id" name="id"/>
<input type='submit' value='valider' />
</fieldset>
</form>


<?php
}
echo "</body>";
echo "</html>";
?>

1 réponse

JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Salut,
Bizarre la façon comment tu écris ton code !

<?php
define('MAX_VAL', 20);
$rep = '';

if(isset($_GET['id'])) {
    if(!is_int($_GET['id'])) $rep = '<p>Veuillez insérer un nombre entier.</p>';
    elseif($_GET['id'] > MAX_VAL) $rep = '<p>Numéro de groupe invalide.</p>';
    else {
        //Numero de groupe valide
        //Traitements
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Tableau associatif</title>
</head>

<body>

<?php
if(isset($_GET['id']) AND !empty($rep)) {
    echo $rep;

    echo '<form method="get" action="#">
    <fieldset>
        <legend>Saisir votre numero d'Etudiant</legend>

        <label for="id-etu">Identifiant</label>
        <input type='text' id="id" name="id"/>
        <input type='submit' value='valider' />
    </fieldset>
</form>';
}
else {

}
?>

</body>
</html>


Mettez en résolu quand c'est résolu -.- ...
0
Lili_754 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   2
 
bizzard c'est à dire? oui je m'initie en php, mais je suis la façon que mon prof m'a enseigner, elle est pas bien??

Voici le code avec tes corrections, mais la je n'ai plus de message d'erreur mais rien n'est affiché non plus :-(
<?php
error_reporting(E_ALL);
include "entete.php";
echo DOCTYPE_XHTML_BASIC_11."\n";
echo HTML_FR."\n";
echo "<head>";
echo META_TYPE_TEXT_HTML_UTF8."\n";
echo "<title> Saisir son groupe </title> \n";
echo "</head> \n";
echo "<body>";

define('MAX_VAL', 20);
$rep = '';

if((isset($_GET['id']))&& (!empty($_POST['id']))){
if(!is_int($_GET['id'])) $rep = '<p>Veuillez insérer un nombre entier.</p>';
elseif($_GET['id'] > MAX_VAL) $rep = '<p>Numéro de groupe invalide.</p>';
else {
echo $_GET['id'];

echo "<form method ='get' action=".$_SERVER['PHP_SELF'].">";
?>

<fieldset> <legend> Saisissez votre numero de groupe </legend>
<label for="id-etu"> N°Grp: </label>
<input type='text' id="id" name="id"/>
<input type='submit' value='valider' />
</fieldset>
</form>


<?php
}
}
echo "</body>";
echo "</html>";

?>
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Ben par bizarre, je ne vois pas l'intérêt de créer des constantes pour des balises, en plus, l'entête contient quoi au juste, si c'est le haut de la page, alors il est mal placé dans ton code !

Quant au reste, et ben il est préférable de mettre ton script PHP avant tout affichage, et non pas mélangé le tout sans aucune structure !

Sinon, si j'ai bien compris, l'utilisateur arrive sur une page, il trouve le formulaire, il y mets son numéro de groupe, et il envoie le formulaire, si le numéro est correct, alors on affiche ce numéro, sinon, on ré-affiche le formulaire avec un message d'erreur.
0