Formulaire: passer et tester une variable avec $_POST?
Posté : 13 janv. 2008, 19:36
Sans doute un pb de débutant... j'ai cherché sur les post et rien trouvé....
Je valide un formulaire qui envoie le résultat sur le même fichier
Faut il mettre un entete qui déclare l'utilisation de HTML???
Ci-dessous mon code complet placé dans le fichier inscription2.php ; merci pour votre aide...
Je valide un formulaire qui envoie le résultat sur le même fichier
<form method="post" action="inscription2.php">
J'essaie de travailler avec HIDDEN avant le bouton ENVOYER
<p><input type=hidden name=f_valid value="1"><input type="submit" name="boutonenregistrer" value="enregistrer" /> <input type="reset" /></p>
Le problème est que la variable f_valid du bouton Hidden n'est jamais mise à 1.Faut il mettre un entete qui déclare l'utilisation de HTML???
Ci-dessous mon code complet placé dans le fichier inscription2.php ; merci pour votre aide...
<?php
//on inclue la page de base
include("page de base HAUT.php")
?>
<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="css/designformulaire.css" />
<form method="post" action="inscription2.php">
<fieldset>
<?php
/// paramètres de connection à la base de données
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("membres");
///traitement des variables du tableau, vérification validité
echo ("essai:");echo($f_valid);
if($f_valid=="1")
{
$error=array(); // initialisation du tableau des erreurs éventuelles
// si l'item n'est pas valide, on insère une entrée supplémentaire
// à la fin du tableau $error avec la fontion array_push()
//Champ nom rempli ?
if (strlen($pseudo)<3) {array_push($error, "votre pseudo doit comporter 3 caractères minimum<br>");}
// Champ prénom rempli ?
if (strlen($motdepasse)<5){array_push($error,"Indiquez votre prénom<br>");}
// champ email rempli ?
if (!$email){array_push($error,"Merci d'indiquer une adresse Email.<BR>");}
else if(!ereg ("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $email)){
array_push($error,"Attention, l'adresse e-mail saisie n'est pas valide<br>");}
// permet de vérifier avec les expressions régulières (ereg)
//qu'il n'y a pas de caractères interdits mais ne vérifie pas
//que cette adresse aboutit bien chez quelqu'un
// si le tableau $error n'est pas vide, affichage des différentes erreurs :
if(count($error)) { // = si la variable a été initialisée
echo "<font color='#993366'><b>";
while($error){echo array_shift($error)."<br>";}
echo "</b></font>"; } //fin du if count error}
else { // s'il n'y a pas d'erreurs, on effectue le traitement des données et
//on les envoie sur la table
$nom=$pseudo;
$nom=strtolower($nom); // met les noms en minuscule
$nom=ucfirst($nom); //met la première lettre en majuscule
$nom=addslashes($nom); // Ajoute un antislash devant les caratères à échapper comme '\ "
$mail=$email;
// envoi à la base de données
// on commence par se connecter :
// on utilise l'instruction insert into pour ajouter les nouvelles données
$nveau="insert into membres values ('', '$nom', '$motdepasse', '$mail')";
$insert = mysql_query($nveau) or die ("Impossible d'insérer ".mysql_error());
mysql_close($connexion); // Pour fermer l'accès
$msg1= "Merci d'avoir ajouté votre nom sur nos listes !<br>";
echo $msg1;
//envoi d'un mail au webmaster
$sujet ="un nouveau lecteur s'est inscrit";
$d= date ( "d/m/Y" );
$msg="le $d, $nom, $mail, a ajouté son nom sur la table tutoriel";
if (!email("webmaster", "[email protected]", $sujet, $msg))
{$msg2="Le mail n'a pas été envoyé suite à une erreur.<br>";
echo $msg2;}
else{
$msg2="Un mail a été envoyé au webmaster pour le prévenir de votre proposition.<br>";
echo $msg2;}
//réinitialisation pour nouvelle saisie
unset($pseudo, $motdepasse, $email, $f_valid, $msg1, $msg2, $sujet, $d, $msg);
} // fin du if il n'y a pas d'erreur
}//fin de if f_valid==1
?>
<legend>Inscription</legend>
<h4>Choisissez un pseudonyme de 10 caractères maximum</h4>
<p><input type="text" name="pseudo" size="12" maxlength="10"/> </p>
<h4>Choisissez un mot de passe de 8 caractères maximum</h4>
<p><input type="text" name="motdepasse" size="8" maxlength="8"/> </p>
<h4>entrez votre adresse Email</h4>
<p><input type="text" name="email" size="25" /> </p>
<?php
$N1=100;
$N2=rand(1000,80000);
echo "voilà votre première question de QCM! lol!<br />";
echo "indiquez ci-dessous le résultat de la multiplication :<br />";
echo "Exemple : 100 x 4815 ==> 481500<br />";
echo "le but est d'éviter les robots qui viennent faire de fausses inscriptions.<br />";
echo "<h2> $N1 x $N2 = . . .</h2>";
$resultat=$N1*$N2;
?>
<h4>Résultat</h4>
<p><input type="text" name="reponse" /> </p>
<p><input type=hidden name=f_valid value="1"><input type="submit" name="boutonenregistrer" value="enregistrer" /> <input type="reset" /></p>
</fieldset>
</form>
<?php
//on inclue la page de base BAS
include("page de base BAS.php")
?>