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
<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")
?>
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
[php]<form method="post" action="inscription2.php">[/php]
J'essaie de travailler avec HIDDEN avant le bouton ENVOYER
[php]<p><input type=hidden name=f_valid value="1"><input type="submit" name="boutonenregistrer" value="enregistrer" /> <input type="reset" /></p>
[/php]
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]<?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")
?>[/php]