probleme rencontrer lors de la Vérification des champs ( en php)

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu probleme rencontrer lors de la Vérification des champs ( en php)

Message par joe0703 le Jeu 21 Mai 2015 - 19:55

Détails techniques


Version du forum : Inconnue
Poste occupé : Administrateur
Navigateur(s) concerné(s) : Google Chrome
Personnes concernées par le problème : Moi uniquement
Lien du forum :

Description du problème

rebonjours, je me représente, je suis étudiant en 1er année d'informatique sur Avignon ( Vaucluse). Et je vient jusqu’à vous afin si possible d'obtenir aide et explication.
Mon problème actuel comme mon titre l'indique concerne une vérification de champs d'un formulaire a partir de php. Mon sujet etant:
2. Vérification des champs
On peut après envoi du formulaire vérifier la saisie des champs. On utilisera la fonction isset() (ou empty()) pour vérifier qu'une variable existe, et la fonction strpos() permettra de vérifier la présence d'un caractère particulier dans une chaîne de caractères.

A faire :

Dans la page verif.php précédemment créée, écrire le texte seulement si :
l'age est compris entre 0 et 150,
si le format du mail est : "xx@xx.xx",
si les deux mots de passes sont équivalents.
Dans le cas contraire afficher un message d'erreur.

Le formulaire que l'on devait cree etait celui-ci:
Code:
 <html>
<meta http-equiv="Content-Type" content="text/html;charset=utf8" />
<head>
<style TYPE="text/css">
h3 {
    text-decoration: underline;
}
textarea{ resize:none;}
</style>
</head>
<body>
BIENVENU
 <FORM action = "verif.php" method="post" OnSubmit="">
    <P>
   <table>
   <tr>
   
    <td><LABEL for="prenom" name="prenom"><h3>Prénom : </h3></LABEL></td>
            <td> <INPUT type="text" id="prenom" name="prenom"></td>
   </tr>
   <tr>
    <td><LABEL for="nom" name="nom"><h3>Nom : </h3></LABEL></td>
            <td>  <INPUT type="text" id="nom" name="nom"></td>
   </tr>
   <tr>
  <td> <LABEL for="email" name="email"><h3>e-mail : </h3></LABEL></td>
    <td>        <INPUT type="text" id="email"></td>
    </tr>
    <tr>
   <td><LABEL for="age"><h3>Age : </h3></LABEL></td>
    <td>          <INPUT type="text" id="age" name="age"></td>
   </tr>
   <tr>
   <td><LABEL for="mot-de-passe"><h3>Mot de passe : </h3></LABEL></td>
    <td>          <INPUT type="text" id="mot-de-passe" name="mot-de-passe"></td>
   </tr>
   <tr>
   <td><LABEL for="verification-mot-de-passe"><h3>Retapez votre mot de passe : </h3></LABEL></td>
    <td>          <INPUT type="text" id="verification-mot-de-passe" name="verification-mot-de-passe"></td>
   </tr>
   <tr>
    <td><LABEL for="commentaire"><h3>commentaire : </h3></LABEL></td>
        <td>    <TEXTAREA type="text" rows="3" name="commentaire" placeholder="tapez votre commentaire ici"></TEXTAREA></td>
   </tr><tr>
    <td><h3>sexe:</h3><td> <input type="radio" id="Mr" name="sexe" value="Mr"> <label for="Mr">Homme</label>
       
        <td></td>  <td><input type="radio" id="Mme" name="sexe" value="Mme"> <label for="Mme">Femme</label><BR>
      
   </tr><tr> 
    <td><h3>hobby:</h3><td>
   <td></td>
   </tr><tr>
   <td></td>   
<td><INPUT type="checkbox" name="choix[]" value="cinema"> Cinema
<INPUT type="checkbox" name="choix[]" value="Musique"> Musique</td>
</tr><tr>
<td></td>
<td><INPUT type="checkbox" name="choix[]" value="sport"> sport
<INPUT type="checkbox" name="choix[]" value="jeux-video"> jeux video</td>
</tr><tr>
<td></td>
<td><INPUT type="checkbox" name="choix[]" value="sieste"> sieste
<INPUT type="checkbox" name="choix[]" value="travail"> travail</td>
</tr><tr>

<td><h3><label for="profession">Entrez votre profession</label> </h3></td>
<td><select id="profession" name="profession" size="1">

         <option value="etudiant">etudiant</option>

         <option value="artisant">artisant</option>

         <option value="chomeur">chomeur</option>

         <option value="autre">autre</option>

      </select></td>
</tr><tr>
<td><h3><label for="transport">Entrez votre moyen de transport</label> </h3></td>
   <td>   <select name="transport" id="transport" size="3">

         <option value="train">train</option>

         <option value="bus">bus</option>

         <option value="voiture">voiture</option>

         <option value="pietton">pietton</option>

      </select></td>
</tr>
   <tr>
<td><p><INPUT type="submit" value="Envoyer"></p></td>
<td> <INPUT type="reset"></p></form></td>
   </tr>
 </P>
 </FORM>
 
 </table>
 </body>
 </html>

et le formulaire de vérification que j'ai crée jusqu’à pressent ressemble a cela:

Code:
<html>
<head>
<title>Ma page de traitement</title>
</head>
<body>
<?php
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$age = $_POST['age'];
$profession = $_POST['profession'] ;
$transport = $_POST['transport'];
$commentaire = $_POST['commentaire'];
$sexe = $_POST['sexe'] ;
$mot_de_passe = $_POST['mot-de-passe'];
$mot_de_passe = $_POST['mot-de-passe'];
$email = $_POST['email'];?>
<?php
if (empty($email))
{
echo "Pas d'email ?";
exit();
}
else
{
$point = strpos($email,".");
$aroba = strpos($email,"@");
exit();
}
if ($point=='')
{
echo " Votre email doit comporter un <b>point</b>";
exit();
}
else ($aroba=='')
{
echo "Votre email doit comporter un <b>@</b>";
exit();
}?>
<?php
if(!is_numeric($age))
 {
      echo "Ce champ ne doit contenir que des chiffres.";
      ?> <a href="tp7.php">tp7</a> <?php
      exit();
 }
else($age <0 && $age > 150)
{
echo "entrez un age correct</b>";
exit();
}?>
<?php
   
if($mot_de_passe != $verification_mot_de_passe){
      echo 'les mot de passe ne correspondent pas';
         ?> <a href="tp7.php">tp7</a> <?php
         exit();
         }
else{
 
 
echo "Bonjour ";
}
if ($sexe=="Homme"){
   echo"Mr ";}
else{
   echo "Mme ";}
   echo", $prenom $nom, vous avez $age ans et vous êtes $profession. Vous aimez ";
         foreach($_POST['choix'] as $valeur){
   echo "$valeur, ";
   }                     
   echo"et vous préférez vous déplacer en $transport. Nous avons bien noté vos commentaires : $commentaire."; }}
?>

</body>
</html>

mon soucis etant que je ne sais pas pourquoi, des que je le teste, il me dit cela
Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\tp7\verif.php on line 35

quelqu'un pourqie t'il m'expliquer pourquoi il me dit que je n'est pas le droit de mettre un "{" apres un "else" ?


Dernière édition par joe0703 le Mar 26 Mai 2015 - 12:51, édité 4 fois

joe0703
Nouveau membre

Messages : 19
Inscrit(e) le : 02/05/2015

joe0703 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par [Nihil] le Jeu 21 Mai 2015 - 21:03

Hum, je ne pense pas que le forum soit fait pour ça ><

Pense à bien vérifier ton code au dessus s'il n'y a pas des erreurs (par exemple un if ou un else mal fermé).

Par exemple ligne 18 tu as ceci :
Code:
<?hp
if (empty($email))

L'ouverture du php n'est pas correcte Mr. Green , je n'ai pas regardé plus loin, mais je te conseille de prendre le temps de bien tout vérifier Smile

[Nihil]
# Tropactif #

Messages : 1155
Inscrit(e) le : 10/12/2009

http://forum.forumactif.com
[Nihil] a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par joe0703 le Jeu 21 Mai 2015 - 21:12

en effet, y avais quelques erreur de balise, merci, cependant, le problème est malgres tout toujours présent donc il ne s'agit a priori pas de cela

joe0703
Nouveau membre

Messages : 19
Inscrit(e) le : 02/05/2015

joe0703 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par [Nihil] le Jeu 21 Mai 2015 - 21:27

Ow mais je suis bête, ce n'est pas
Code:
else ($aroba=='')

Mais
Code:
elseif ($aroba=='')

Quand il y a un test supplémentaire, il faut penser à mettre elseif et non pas else Smile

[Nihil]
# Tropactif #

Messages : 1155
Inscrit(e) le : 10/12/2009

http://forum.forumactif.com
[Nihil] a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par joe0703 le Jeu 21 Mai 2015 - 21:30

meme si apres on passe a un if ?

joe0703
Nouveau membre

Messages : 19
Inscrit(e) le : 02/05/2015

joe0703 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par joe0703 le Jeu 21 Mai 2015 - 23:19

cela ne change rien malheureusement, j ai meme essayer en transformant tous les if en elseif, mais cela ne change rien

Code:
<html>
<head>
<title>Ma page de traitement</title>
</head>
<body>
<?php
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$age = $_POST['age'];
$profession = $_POST['profession'] ;
$transport = $_POST['transport'];
$commentaire = $_POST['commentaire'];
$sexe = $_POST['sexe'] ;
$mot_de_passe = $_POST['mot-de-passe'];
$mot_de_passe = $_POST['mot-de-passe'];
$email = $_POST['email'];?>
<?php
if (empty($email))
{
echo "Pas d'email ?";
exit();
}
elseif
{
$point = strpos($email,".");
$aroba = strpos($email,"@");
exit();
}
if ($point=='')
{
echo " Votre email doit comporter un <b>point</b>";
exit();
}
elseif ($aroba=='')
{
echo "Votre email doit comporter un <b>@</b>";
exit();
}?>
<?php
if(!is_numeric($age))
 {
      echo "Ce champ ne doit contenir que des chiffres.";
      ?> <a href="tp7.php">tp7</a> <?php
      exit();
 }
elseif($age <0 && $age > 150)
{
echo "entrez un age correct</b>";
exit();
}?>
<?php
   
if($mot_de_passe != $verification_mot_de_passe){
      echo 'les mot de passe ne correspondent pas';
         ?> <a href="tp7.php">tp7</a> <?php
         exit();
         }
elseif{
 
 
echo "Bonjour ";
}
if ($sexe=="Homme"){
   echo"Mr ";}
elseif{
   echo "Mme ";}
   echo", $prenom $nom, vous avez $age ans et vous êtes $profession. Vous aimez ";
         foreach($_POST['choix'] as $valeur){
   echo "$valeur, ";
   }                     
   echo"et vous préférez vous déplacer en $transport. Nous avons bien noté vos commentaires : $commentaire."; }}
?>

</body>
</html>

Parse error: syntax error, unexpected '{', expecting '(' in C:\xampp\htdocs\tp7\verif.php on line 24

joe0703
Nouveau membre

Messages : 19
Inscrit(e) le : 02/05/2015

joe0703 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par [Nihil] le Jeu 21 Mai 2015 - 23:48

Il ne faut pas tous les modifier, il faut modifier seulement ceux avec une condition Wink

Ainsi :
Code:
else ($aroba=='')
devient
Code:
elseif ($aroba=='')

Mais un else sans condition reste un else sans condition.
Ici il fallait laisser le else car il n'y a pas de condition juste derrière Smile
Code:
if (empty($email))
{
echo "Pas d'email ?";
exit();
}
elseif
{
$point = strpos($email,".");
$aroba = strpos($email,"@");
exit();
}


Eh bien, je t'invite à lire un petit cours sur le fonctionnement du if / else if / else pour mieux comprendre :p

Le cours : http://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/les-conditions-41
Une discussion entre la différence entre else et else if : http://openclassrooms.com/forum/sujet/else-et-elseif-50288

[Nihil]
# Tropactif #

Messages : 1155
Inscrit(e) le : 10/12/2009

http://forum.forumactif.com
[Nihil] a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par joe0703 le Ven 22 Mai 2015 - 0:10

ok, oui j'ai fait ce tuto deja ^^
mais avec cette erreur, je suis perdu donc je demande au cas ou ^^".
donc si quelqu 'un pouvais me l'expliquer :/ je lui en serais tres reconnaisant hahahaha ^^

Code:
<html>
<head>
<title>Ma page de traitement</title>
</head>
<body>
<?php
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$age = $_POST['age'];
$profession = $_POST['profession'] ;
$transport = $_POST['transport'];
$commentaire = $_POST['commentaire'];
$sexe = $_POST['sexe'] ;
$mot_de_passe = $_POST['mot-de-passe'];
$mot_de_passe = $_POST['mot-de-passe'];
$email = $_POST['email'];?>
<?php
if (empty($email))
{
echo "Pas d'email ?";
exit();
}
elseif
{
$point = strpos($email,".");
$aroba = strpos($email,"@");
exit();
}
elseif($point=='')
{
echo " Votre email doit comporter un <b>point</b>";
exit();
}
elseif ($aroba=='')
{
echo "Votre email doit comporter un <b>@</b>";
exit();
}?>
<?php
elseif(!is_numeric($age))
 {
      echo "Ce champ ne doit contenir que des chiffres.";
      ?> <a href="tp7.php">tp7</a> <?php
      exit();
 }
elseif($age <0 && $age > 150)
{
echo "entrez un age correct</b>";
exit();
}?>
<?php
   
elseif($mot_de_passe != $verification_mot_de_passe){
      echo 'les mot de passe ne correspondent pas';
         ?> <a href="tp7.php">tp7</a> <?php
         exit();
         }
else{
 
 
echo "Bonjour ";
}
elseif ($sexe=="Homme"){
   echo"Mr ";}
else{
   echo "Mme ";}
   echo", $prenom $nom, vous avez $age ans et vous êtes $profession. Vous aimez ";
         foreach($_POST['choix'] as $valeur){
   echo "$valeur, ";
   }                     
   echo"et vous préférez vous déplacer en $transport. Nous avons bien noté vos commentaires : $commentaire."; }}
?>

</body>
</html>

joe0703
Nouveau membre

Messages : 19
Inscrit(e) le : 02/05/2015

joe0703 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par joe0703 le Ven 22 Mai 2015 - 14:56

j'ai reussi a corriger un premier probleme, c etait du a mon
Code:
$point = strpos($email,".");
$aroba = strpos($email,"@");


joe0703
Nouveau membre

Messages : 19
Inscrit(e) le : 02/05/2015

joe0703 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par joe0703 le Ven 22 Mai 2015 - 15:25

merci a toi nihil Smile tu ma bien orienter vers la source du soucis Smile

joe0703
Nouveau membre

Messages : 19
Inscrit(e) le : 02/05/2015

joe0703 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par Chacha le Ven 22 Mai 2015 - 15:40

Message par joe0703 Aujourd'hui à 0:10
Message par joe0703 Aujourd'hui à 14:56
Message par joe0703 Aujourd'hui à 15:25


Bonjour,

Warning Merci d'éviter les doubles posts, pensez à cliquer sur le bouton :editer: dans votre dernier message pour y ajouter une information. Wink

Je vous invite à lire :

Cordialement.


Règles Générales du Forum - Le Staff de ForumActif
Questions & Réponses Fréquentes - Trucs & Astuces
Outils Fondateurs - Perte de Mot de Passe

Chacha
Modéractif
Modéractif

Masculin
Messages : 50925
Inscrit(e) le : 21/08/2010

http://forum.forumactif.com/
Chacha a été remercié(e) par l'auteur de ce sujet.

Résolu validation d'un formulaire en php sur une seule page, en gardant les champs corect en memoire

Message par joe0703 le Lun 25 Mai 2015 - 14:01

Détails techniques


Version du forum : Inconnue
Poste occupé : Administrateur
Navigateur(s) concerné(s) : Google Chrome
Personnes concernées par le problème : Moi uniquement
Lien du forum :

Description du problème

rebonjours, je me représente, je suis étudiant en 1er année d'informatique sur Avignon ( Vaucluse). Et je vient jusqu’à vous afin si possible d'obtenir aide et explication.
J'ai recement poster un message pour la validation d'une formulaire grace a php:

http://forum.forumactif.com/t378589-probleme-rencontrer-lors-de-la-verification-des-champs-en-php

Et je revient vers vous aujourd'hui car j'ai tenter de modifier ce code afin de tout traiter sur une seule page de cette facon :

Code:



<?php

 if (!isset($_POST["send"])){
    // Si le formulaire n'a pas été envoyé, on l'affiche
    ?>


 <html>
<meta http-equiv='Content-Type' content='text/html;charset=utf8' />
<head>
<style TYPE='text/css'>
h3 {
    text-decoration: underline;
}
textarea{ resize:none;}
</style>
</head>

<body>
BIENVENU
 <FORM action = '' method='POST'  >
    <P>
   <table>
   <tr>
   
    <td><LABEL for='prenom' name='prenom'><h3>Prénom : </h3></LABEL></td>
            <td> <INPUT type='text' id='prenom' name='prenom' <?PHPif (isset($_POST['prenom']))
      { ?>value="<?PHP$prenom?>"<?php;}?>
         ></td>
   </tr>
   <tr>
    <td><LABEL for='nom' name='nom'><h3>Nom : </h3></LABEL></td>
            <td>  <INPUT type='text' id='nom' name='nom' <?PHPif (isset($_POST['nom']))
      { ?>value="<?PHP$nom?>"<?php;}?>></td>
   </tr>
   <tr>
  <td> <LABEL for='email' name='email'><h3>e-mail : </h3></LABEL></td>
    <td>        <INPUT type='email' id='email' name='email' <?PHPif (isset($_POST['email']))
      { ?>value="<?PHP$email?>"<?php;}?>></td>
    </tr>
    <tr>
   <td><LABEL for='age'><h3>Age : </h3></LABEL></td>
    <td>          <INPUT type='text' id='age' name='age' <?PHPif (isset($_POST['age']))
      { ?>value="<?PHP$age?>"<?php;}?>></td>
   </tr>
   <tr>
   <td><LABEL for='mot-de-passe'><h3>Mot de passe : </h3></LABEL></td>
    <td>          <INPUT type='text' id='mot_de_passe' name='mot_de_passe' <?PHPif (isset($_POST['mot_de_passe']))
      { ?>value="<?PHP$mot_de_passe?>"<?php;}?>></td>
   </tr>
   <tr>
   <td><LABEL for='verification-mot-de-passe'><h3>Retapez votre mot de passe : </h3></LABEL></td>
    <td>          <INPUT type='text' id='verification_mot_de_passe' name='verification_mot_de_passe' <?PHPif (isset($_POST['verification_mot_de_passe']))
      { ?>value="<?php$verification_mot_de_passe?>"<?php;}?>></td>
   </tr>
   <tr>
    <td><LABEL for='commentaire'><h3>commentaire : </h3></LABEL></td>
        <td>    <TEXTAREA type='text' rows='3' name='commentaire' placeholder='tapez votre commentaire ici'><?PHPif (isset($_POST['commentaire']))
      { ?>value="<?php$commentaire?>"<?php;}?></TEXTAREA></td>
   </tr><tr>
    <td><h3>sexe:</h3><td> <input type='radio' id='Mr' name='sexe' value='Mr'> <label for='Mr'>Homme</label>
       
        <td></td>  <td><input type='radio' id='Mme' name='sexe' value='Mme'> <label for='Mme'>Femme</label><BR>
      
   </tr><tr> 
    <td><h3>hobby:</h3><td>
   <td></td>
   </tr><tr>
   <td></td>   
<td><INPUT type='checkbox' name='choix[]' value='cinema'> Cinema
<INPUT type='checkbox' name='choix[]' value='Musique'> Musique</td>
</tr><tr>
<td></td>
<td><INPUT type='checkbox' name='choix[]' value='sport'> sport
<INPUT type='checkbox' name='choix[]' value='jeux-video'> jeux video</td>
</tr><tr>
<td></td>
<td><INPUT type='checkbox' name='choix[]' value='sieste'> sieste
<INPUT type='checkbox' name='choix[]' value='travail'> travail</td>
</tr><tr>

<td><h3><label for='profession'>Entrez votre profession</label> </h3></td>
<td><select id='profession' name='profession' size='1'>

         <option value='etudiant'>etudiant</option>

         <option value='artisant'>artisant</option>

         <option value='chomeur'>chomeur</option>

         <option value='autre'>autre</option>

      </select></td>
</tr><tr>
<td><h3><label for='transport'>Entrez votre moyen de transport</label> </h3></td>
   <td>   <select name='transport' id='transport' size='3'>

         <option value='train'>train</option>

         <option value='bus'>bus</option>

         <option value='voiture'>voiture</option>

         <option value='pietton'>pietton</option>

      </select></td>
</tr>
   <tr>
<td><p><INPUT type='submit' name="send"value='Envoyer'></p></td>
<td> <INPUT type='reset'></p></form></td>
   </tr>
 </P>
 </FORM>
 
 </table>
 </body>
 </html>
<?PhP
  }
else
{      // On verifie l'envoie du prenom
      if (isset($_POST['prenom']))
      {
         $prenom = $_POST['prenom'];
         
         
         if (empty($prenom))
            // si le prenom est vide on ouvre une petite fenetre et on arrete la verification
            {
               $message='veuiller entrez un prenom ';
               echo '<script type="text/javascript">window.alert("'.$message.'");</script>';exit;
            }
      }
       // On verifie la l'envoie du nom
      if (isset($_POST['nom']))
      {
         $nom = $_POST['nom'];
            if (empty($nom))
            {
               // si le nom est vide on ouvre une petite fenetre et on arrete la verification
               $message2='veuiller entrez un nom ';
               echo '<script type="text/javascript">window.alert("'.$message2.'");</script>';
               exit;
            }
      }
       // On verifie la l'envoie de l'age
      if (isset($_POST['age']))
      {
         $age = $_POST['age'];
            if (empty($age))
            // si l'age est vide on ouvre une petite fenetre et on arrete la verification
            {
               $message='veuiller entrez un age ';
               echo '<script type="text/javascript">window.alert("'.$message.'");</script>';exit;
            }
         
            if(!is_numeric($age))
            {
               // si se n'est pas un chiffre on envoye un message et arretons la verification
               $message3='Ce champ ne doit contenir que des chiffres';
               echo '<script type="text/javascript">window.alert("'.$message3.'");</script>';exit;
               exit;   
            }
            if($age <0 && $age > 150)
            {
               // si l'age est inferieur a 0 ou 150 ans on envoye un message et arretons le scrypte
            $message2='veuiller entrez un age valide ';
            echo '<script type="text/javascript">window.alert("'.$message2.'");</script>';
            exit;
            }
      }
       // On verifie la l'envoie d'une profession
      if (isset($_POST['profession']))
      {
         $profession = $_POST['profession'] ;
            if (empty($profession))
            {
               // si le prenom est vide on ouvre une petite fenetre et on arrete la verification
               
               $message2='veuiller choisir une profession';
               echo '<script type="text/javascript">window.alert("'.$message2.'");</script>';
               exit;
            }
      }

  // On verifie la l'envoie d'un moyen de transport
      if (isset($_POST['transport']))
      {
         $transport = $_POST['transport'];
            if (empty($transport))
            {// si le prenom est vide on ouvre une petite fenetre et on arrete la verification
               
               $message2='veuiller choisir un moyen de transport';
               echo '<script type="text/javascript">window.alert("'.$message2.'");</script>';
               exit;
            }
      }

 // On verifie la l'envoie d'un commentaire
      if (isset($_POST['commentaire']))
      {
         $commentaire = $_POST['commentaire'];

      }

  // On verifie la l'envoie d'un genre
      if (isset($_POST['sexe']))
      {
         $sexe = $_POST['sexe'] ;
            if (empty($sexe))
            {
               // si le genre n'est pas selectionner on ouvre une petite fenetre et on arrete la verification
               $message='veuiller entrez un genre ';
               echo '<script type="text/javascript">window.alert("'.$message.'");</script>';exit;
               exit;
            }
      }

 // On verifie la l'envoie d'un mot de passe
      if (isset($_POST['mot_de_passe']))
      {
         $mot_de_passe = $_POST['mot_de_passe'];
            if (empty($mot_de_passe))
            {
               // si le mot de passe est vide on ouvre une petite fenetre et on arrete la verification
               $message='veuiller entrez un mot de passe ';
               echo '<script type="text/javascript">window.alert("'.$message.'");</script>';exit;
               exit;
            }
      }

 // On verifie la l'envoie d'une confirmation de mot de passe
      if (isset($_POST['verification_mot_de_passe']))
      {
         $verification_mot_de_passe = $_POST['verification_mot_de_passe'];
            if (empty($verification_mot_de_passe))
            {
               // si la verification est vide on ouvre une petite fenetre et on arrete la verification
               $message='veuiller entrez un mot de passe a nouveau ';
               echo '<script type="text/javascript">window.alert("'.$message.'");</script>';exit;
               exit;
            }
            if($mot_de_passe != $verification_mot_de_passe)
            {
         // si le mot de passe est different de la verification on envoye un message d'erreur et on arrete le scrypte
               echo 'les mot de passe ne correspondent pas';
               exit;
            }
      }
         
         
          // On verifie la l'envoie d'un email
      if (isset($_POST['email']))
      {
         $email = $_POST['email'];
         $point = strpos($email,".");
         $aroba = strpos($email,"@");
         if (empty($email))
         {
            // si l'email est vide on ouvre une petite fenetre et on arrete la verification
         $message='veuiller entrez un email ';
               echo '<script type="text/javascript">window.alert("'.$message.'");</script>';exit;
         exit;
         }
         if($point=='')
         {
            // si 'email ne comporte pas de point on envoie un message d'erreur et on arrete le scrypt
            echo " Votre email doit comporter un <b>point</b>";

            exit;
         }
         if ($aroba=='')
         {
            // si 'email ne comporte pas d'@ on envoie un message d'erreur et on arrete le scrypt
         echo "Votre email doit comporter un <b>@</b>";

         exit;
         }
      }

 // On verifie la l'envoie d'un hobby
      if (isset($POST['choix']))
      {
         $choix=$_POST[$choix];   
            if (empty($choix))
            {
               // si le prenom est vide on ouvre une petite fenetre et on arrete la verification
               $message='veuiller entrez un hobby ';
               echo '<script type="text/javascript">window.alert("'.$message.'");</script>';exit;
               exit;
            }
      }
      

      else{
         // si la verification est corecte on envoye un message
         $message='bonjours if ($sexe=="Mr")
            {
               echo"Mr ";
            }
            else
            {
               echo "Mme ";}
               , $prenom $nom, votre inscription a etait prise en compte';
               echo '<script type="text/javascript">window.alert("'.$message.'");</script>';exit;
 
         }
}

         ?>

Le soucis de mon code étant que si la vérification se fait belle et bien, une fois mon pop up afficher, la page devient toute blanche au lieu de re-afficher le formulaire comprenant les champs valide. quelqu'un pourait il m'indiquer la voie a suivre afin de corriger mon erreur ? merci d'avance

joe0703
Nouveau membre

Messages : 19
Inscrit(e) le : 02/05/2015

joe0703 a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par demeter1 le Lun 25 Mai 2015 - 14:47

Bonjour,
Il aurait été plus simple de compléter votre sujet précédent plutôt que d'ouvrir un nouveau sujet pour contrecarrer le message de modération.

Techniquement, le forum de support est dédié aux forums hébergés par Fa ; pas pour une aide aux devoirs.

demeter1
+ Hyperactif +

Masculin
Messages : 8224
Inscrit(e) le : 23/01/2009

http://altitudetropicale.forums-actifs.com/index.forum
demeter1 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par joe0703 le Lun 25 Mai 2015 - 15:22

c était pas pour contrecarrer la modération , mais au contraire pour la respecter, vu que sur le règlement, il est indiquer qu'un sujet ne doit n’être dédier qu'a une seule question. si j'ai crée ce nouveau sujet c 'était justement dans le but de respecter le poste de modération que l on ma envoyer sur le topic précédent. Je vous pris de bien vouloir m’excuser, si mon action passe pour vouloir outrepasser la modération

joe0703
Nouveau membre

Messages : 19
Inscrit(e) le : 02/05/2015

joe0703 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par Chacha le Lun 25 Mai 2015 - 15:29

@joe0703 a écrit:c était pas pour contrecarrer la modération , mais au contraire pour la respecter, vu que sur le règlement, il est indiquer qu'un sujet ne doit n’être dédier qu'a une seule question. si j'ai crée ce nouveau sujet c 'était justement dans le but de respecter le poste de modération que l on ma envoyer sur le topic précédent. Je vous pris de bien vouloir m’excuser, si mon action passe pour vouloir outrepasser la modération
Bonjour,

La remarque d'éditer votre dernier message pour y ajouter une information, est dans le cas où il n'y a pas 24 h d'écart depuis votre dernier message. Wink

Ce sujet est fusionné avec celui déjà en cours. Smile


Cordialement.


Règles Générales du Forum - Le Staff de ForumActif
Questions & Réponses Fréquentes - Trucs & Astuces
Outils Fondateurs - Perte de Mot de Passe

Chacha
Modéractif
Modéractif

Masculin
Messages : 50925
Inscrit(e) le : 21/08/2010

http://forum.forumactif.com/
Chacha a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par no_way le Lun 25 Mai 2015 - 16:54

Bonjour,
le fait est que ce forum n'est pas destiné à fournir une telle aide en principe (PHP).

Quelques petits conseils et réflexions malgré tout:
-Pas de doctype, pour html5 choisissez:
Code:
<!DOCTYPE html>
-Un document HTML a une structure que vous devez respecter, les balises "meta" devraient être dans "head".
-Vous générez du javascript en dehors du document, de plus, inutile de le générer à l'envoi à moins que le visiteur ait une DeLorean sous la main Very Happy (le p'tit veinard).
-Javascript est-il une obligation ?
-Etes-vous limité aux tests via if ?
-préférez trim+empty à isset dans votre cas pour preuve:
Code:
$espace_tabulation="    ";
/*trim+isset renverra true car $espace_tabulation est définie même si elle vaut "" ou null*/
var_dump(isset(trim($espace_tabulation)));
/*trim+empty renverra true  car $espace_tabulation est vide*/
var_dump(empty(trim($espace_tabulation)));
/*pour vérifier la validité de $espace_tabulation, renvoie true si contient autre chose que des espaces, tabulations etc...*/
var_dump(!empty(trim($espace_tabulation)));
-Vous pouvez aisément ajouter une classe CSS aux champs qui n'ont pas été correctement remplis:
Code:
echo !empty(trim($_POST['nom']))?'champ_valide':'champ_non_valide';
-Idéalement vous devriez ajouter un attribut nommé "required" à vos champs, inutile d'agacer le visiteur en l'obligeant à tout retaper par la suite.
-Avez-vous déjà vu l'utilisation de la fonction "header" ?
-Concernant le fonctionnement, le formulaire fait auparavant doit voir le formulaire pointer sur le script "verif.php" selon la consigne de votre devoir en tout cas, vous dites vouloir tout faire sur la même page, il vous faut donc cibler cette même page:
Code:
...action="<?php echo $_SERVER['PHP_SELF'];?>"...

-Purement visuel mais préférez l'emploi des minuscules à moins d'une signification particulière dans votre code et corrigez les fautes d'orthographe, on en fait tous, mais là ça pique les yeux.


no_way
Aidactif
Aidactif

Messages : 1773
Inscrit(e) le : 26/03/2010

no_way a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par joe0703 le Lun 25 Mai 2015 - 18:43

2. Vérification des champs
On peut après envoi du formulaire vérifier la saisie des champs. On utilisera la fonction isset() (ou empty()) pour vérifier qu'une variable existe, et la fonction strpos() permettra de vérifier la présence d'un caractère particulier dans une chaîne de caractères.

A faire :

Dans la page verif.php précédemment créée, écrire le texte seulement si :
l'age est compris entre 0 et 150,
si le format du mail est : "xx@xx.xx",
si les deux mots de passes sont équivalents.
Dans le cas contraire afficher un message d'erreur.
3. Prise en compte des corrections
Une page PHP peut tout à fait se rappeler elle même, et ainsi prendre en compte les corrections éventuelles effectuées par un utilisateur. On peut alors transmettre les variables non corrigées en champs cachés.

Les variables peuvent être retransmises à l'aide de champs cachés.

A faire :

Reprendre la page verif.php et l'adapter en re-proposant un formulaire pour saisir à nouveau les champs qui ne convenaient pas, si il y en avait. Ce formulaire rappellera la même page, en lui passant toutes les variables de sa connaissance.
L'utilisateur pourra corriger autant de fois qu'il le souhaite jusqu'à voir enfin le texte de validation apparaître.

j'ai penser que le plus simple pour répondre a votre question est de vous montrer le sujet ^^"

-Pour ce qui est de vos conseil,
en effet, j'oublie tous le temps de spécifier "doctype"

-pour le javascrypte en effet cela n'est pas ideal, j'ai corriger cela ( ou dumoin j'ai essayer) dans le nouveau codage que je vient d'effectuer( transmis plus bas.

-pour ce qui est des variable, non je ne suis pas limité au if, il s'agit simplement que c'est la seul méthode que je connaisse, car nos enseignant nous laisse nous débrouiller seul sans réel suivie et conseil.

-pour le inset, le soucis, est que si je ne définie pas inset, mon code php s'affiche quand j'ouvre ma page php..... J'ai néanmoins tenter une approche avec trim dans mon nouveau codage, meme si je ne connais pas réellement ce code, que je vient de découvrir grâce a vous. pour le fait de retaper, justement comme vous avais du le lire dans mon sujet, cela doit se faire a partir de php et là et justement mon soucis, car je n’arrive pas a renvoyer mes champs correct.
- Non malheureusement nous n'avons pas vu le header, mais je vient également de le rechercher après lecture de votre message et j'ai essayer de l'utiliser dans mon nouveau code meme si je ne suis pas sur d'avoir réellement compris son utilité.

pour mon nouveau code, je suis parti de ce code trouver sur une tuto internet

Code:
<?php
$nom = '';
$erreur = '';
if( isset( $_POST['nom'] ) ) {
    $nom = trim( $_POST['nom'] );
    if( preg_match('`^[- a-zàâäéèêëïîôöùûü\']{2,}$`i', $nom ) ) {
        insèreEnBase( $nom );
        header('location: merci.php' );
        exit;
    } else {
        $erreur = 'Votre nom ne peut pas contenir de caractères spéciaux !';
    }
}
?><html>
<head>
    <title>Formulaire</title>
</head>
<body>
<form action="Formulaire.php" method="post">
    <p>Entrez votre nom : <input type="text" name="nom" value="<?php echo htmlspecialchars( $nom ) ?>"/></p>
    <?php if( ! empty( $erreur ) ) echo '    <p>', $erreur, '</p>' ?>
    <p><input type="submit" value=" OK " /></p>
</form>

</body>
</html>

et j'ai essayer de l'adapter a mon code, ce qui me donne si ma logique est bonne

Code:


<?php

 if (!isset($_POST["send"])){
    // Si le formulaire n'a pas été envoyé, on l'affiche
    ?>

<!DOCTYPE html>
 <html>
<meta http-equiv='Content-Type' content='text/html;charset=utf8' />
<head>
<style TYPE='text/css'>
h3 {
    text-decoration: underline;
}
textarea{ resize:none;}
</style>
</head>

<body>
BIENVENU
 <FORM action = '<?php echo $_SERVER['PHP_SELF'];?>' method='POST'  >
    <P>
   <table>
   <tr>
   
    <td><LABEL for='prenom' name='prenom'><h3>Prénom : </h3></LABEL></td>
            <td> <INPUT type='text' id='prenom' name='prenom' value="<?php echo htmlspecialchars( $prenom ) ?>"/></td>
          <?php if( ! empty( $erreur ) ) echo '    <p>', $erreur, '</p>' ?>
   </tr>
   <tr>
    <td><LABEL for='nom' name='nom'><h3>Nom : </h3></LABEL></td>
            <td>  <INPUT type='text' id='nom' name='nom' value="<?php echo htmlspecialchars( $nom ) ?>" ></td>
         <?php if( ! empty( $erreur ) ) echo '    <p>', $erreur, '</p>' ?>
   </tr>
   <tr>
  <td> <LABEL for='email' name='email'><h3>e-mail : </h3></LABEL></td>
    <td>        <INPUT type='email' id='email' name='email' value="<?php echo htmlspecialchars( $email ) ?>"/></td>
          <?php if( ! empty( $erreur ) ) echo '    <p>', $erreur, '</p>' ?>  ></td>
    </tr>
    <tr>
   <td><LABEL for='age'><h3>Age : </h3></LABEL></td>
    <td>          <INPUT type='text' id='age' name='age' ></td>
   </tr>
   <tr>
   <td><LABEL for='mot-de-passe'><h3>Mot de passe : </h3></LABEL></td>
    <td>          <INPUT type='text' id='mot_de_passe' name='mot_de_passe' value="<?php echo htmlspecialchars( $mot_de_passe ) ?>"/></td>
          <?php if( ! empty( $erreur ) ) echo '    <p>', $erreur, '</p>' ?>  ></td>
   </tr>
   <tr>
   <td><LABEL for='verification-mot-de-passe'><h3>Retapez votre mot de passe : </h3></LABEL></td>
    <td>          <INPUT type='text' id='verification_mot_de_passe' name='verification_mot_de_passe' value="<?php echo htmlspecialchars( $verification-mot-de-passe ) ?>"/></td>
          <?php if( ! empty( $erreur ) ) echo '    <p>', $erreur, '</p>' ?> ></td>
   </tr>
   <tr>
    <td><LABEL for='commentaire'><h3>commentaire : </h3></LABEL></td>
        <td>    <TEXTAREA type='text' rows='3' name='commentaire' placeholder='tapez votre commentaire ici'></TEXTAREA></td>
   </tr><tr>
    <td><h3>sexe:</h3><td> <input type='radio' id='Mr' name='sexe' value='Mr'> <label for='Mr'>Homme</label>
       
        <td></td>  <td><input type='radio' id='Mme' name='sexe' value='Mme'> <label for='Mme'>Femme</label><BR>
      
   </tr><tr> 
    <td><h3>hobby:</h3><td>
   <td></td>
   </tr><tr>
   <td></td>   
<td><INPUT type='checkbox' name='choix[]' value='cinema'> Cinema
<INPUT type='checkbox' name='choix[]' value='Musique'> Musique</td>
</tr><tr>
<td></td>
<td><INPUT type='checkbox' name='choix[]' value='sport'> sport
<INPUT type='checkbox' name='choix[]' value='jeux-video'> jeux video</td>
</tr><tr>
<td></td>
<td><INPUT type='checkbox' name='choix[]' value='sieste'> sieste
<INPUT type='checkbox' name='choix[]' value='travail'> travail</td>
</tr><tr>

<td><h3><label for='profession'>Entrez votre profession</label> </h3></td>
<td><select id='profession' name='profession' size='1'>

         <option value='etudiant'>etudiant</option>

         <option value='artisant'>artisant</option>

         <option value='chomeur'>chomeur</option>

         <option value='autre'>autre</option>

      </select></td>
</tr><tr>
<td><h3><label for='transport'>Entrez votre moyen de transport</label> </h3></td>
   <td>   <select name='transport' id='transport' size='3'>

         <option value='train'>train</option>

         <option value='bus'>bus</option>

         <option value='voiture'>voiture</option>

         <option value='pietton'>pietton</option>

      </select></td>
</tr>
   <tr>
<td><p><INPUT type='submit' name="send"value='Envoyer'></p></td>
<td> <INPUT type='reset'></p></td>
   </tr>
 </P>
 </FORM>
 
 </table>
 </body>
 </html>
<?PhP
  }
else
{     
         $prenom = '';
         $nom = '';
         $age = '';   
         $profession= '';
         $choix = '';
         $email = '';
         $mot_de_passe = '';
         $verification_mot_de_passe = '';
         $commentaire='';
         $transport='';
         $sexe='';
         $erreur = '';
         
      // On verifie la l'envoie du prenom   
      if (isset($_POST['prenom']))
      {
         $prenom = trim( $_POST['prenom'] );
      
         if(empty ($prenom))
            {
               $erreur = 'entrez un prenom!';
               exit;
            }
            
            elseif( preg_match('`^[- a-zàâäéèêëïîôöùûü\']{2,}$`i', $prenom ) )
            {
               insèreEnBase( $prenom );
               header('location: merci.php' );
               exit;
            } else
            {
               $erreur = 'Votre prenom ne peut pas contenir de caractères spéciaux !';
            }
            
      }
      
            
            
      // On verifie la l'envoie du nom
      if( isset( $_POST['nom'] ) )
      {
         $nom = trim( $_POST['nom'] );
            if(empty ($nom))
            {
               $erreur = 'entrez un nom!';
               exit;
            }
            
            elseif( preg_match('`^[- a-zàâäéèêëïîôöùûü\']{2,}$`i', $nom ) )
            {
               insèreEnBase( $nom );
               header('location: merci.php' );
               exit;
            } else
            {
               $erreur = 'Votre nom ne peut pas contenir de caractères spéciaux !';
            }
            
            
      }
       // On verifie la l'envoie de l'age
      if (isset($_POST['age']))
      {
         $age = trim( $_POST['age'] );
            if (empty($age))
            // si l'age est vide on defini l'erreur et on arrete la verification
            {
               $erreur ='veuiller entrez un age ';         
               exit;
            }
            
            elseif(!is_numeric($age))
            {
               // si se n'est pas un chiffre on envoye un erreur et arretons la verification
               $erreur3='Ce champ ne doit contenir que des chiffres';
               
               exit;   
            }
            elseif($age <0 && $age > 150)
            {
               // si l'age est inferieur a 0 ou 150 ans on envoye un erreur et arretons le scrypte
            $erreur2='veuiller entrez un age valide ';
            
            exit;
            }
      }
       // On verifie la l'envoie d'une profession
      if (isset($_POST['profession']))
      {
         
         $profession = trim( $_POST['profession'] );
            if (empty($profession))
            {
               
               $erreur='veuiller choisir une profession';
               
               exit;
            }
      }

  // On verifie la l'envoie d'un moyen de transport
      if (isset($_POST['transport']))
      {
         $transport = trim ($_POST['transport']);
            if (empty($transport))
            {// si le prenom est vide on defini l'erreur et on arrete la verification
               
               $erreur='veuiller choisir un moyen de transport';
               exit;
            }
      }

 // On verifie la l'envoie d'un commentaire
      if (isset($_POST['commentaire']))
      {
         $commentaire = trim($_POST['commentaire']);

      }

  // On verifie la l'envoie d'un genre
      if (isset($_POST['sexe']))
      {
         $sexe = $_POST['sexe'] ;
            if (empty($sexe))
            {
               // si le genre n'est pas selectionner on defini l'erreur et on arrete la verification
               $erreur='veuiller entrez un genre ';
               
               exit;
            }
      }

 // On verifie la l'envoie d'un mot de passe
      if (isset($_POST['mot_de_passe']))
      {
         $mot_de_passe = $_POST['mot_de_passe'];
            if (empty($mot_de_passe))
            {
               // si le mot de passe est vide on ouvre defini l'erreur et on arrete la verification
               $erreur='veuiller entrez un mot de passe ';
               
               exit;
            }
      }

 // On verifie la l'envoie d'une confirmation de mot de passe
      if (isset($_POST['verification_mot_de_passe']))
      {
         $verification_mot_de_passe = $_POST['verification_mot_de_passe'];
            if (empty($verification_mot_de_passe))
            {
               // si la verification est vide on defini l'erreur et on arrete la verification
               $erreur='veuiller entrez un mot de passe a nouveau ';
               
               exit;
            }
            if($mot_de_passe != $verification_mot_de_passe)
            {
         // si le mot de passe est different de la verification on envoye un erreur d'erreur et on arrete le scrypte
               $erreur= 'les mot de passe ne correspondent pas';
               
               exit;
            }
      }
         
         
          // On verifie la l'envoie d'un email
      if (isset($_POST['email']))
      {
         $email = $_POST['email'];
         $point = strpos($email,".");
         $aroba = strpos($email,"@");
         if (empty($email))
         {
            // si l'email est vide on defini l'erreur et on arrete la verification
         $erreur='veuiller entrez un email ';
               
         exit;
         }
         if($point=='')
         {
            // si 'email ne comporte pas de point on envoie un message d'erreur et on arrete le scrypt
            $erreur= " Votre email doit comporter un <b>point</b>";
            
            exit;
         }
         if ($aroba=='')
         {
            // si 'email ne comporte pas d'@ on envoie un message d'erreur et on arrete le scrypt
            $erreur="Votre email doit comporter un <b>@</b>";
         
         exit;
         }
      }

 // On verifie la l'envoie d'un hobby
      if (isset($POST['choix']))
      {
         $choix=$_POST[$choix];   
            if (empty($choix))
            {
               // si le prenom est vide on defini l'erreur et on arrete la verification
               $erreur='veuiller entrez un hobby ';
               
               exit;
            }
      }
      


         ?>

Mais malgres cela, je me retrouve encor avec le meme soucis, lors de la 1er ouverture de ma page, mes imput ne sont pas vierge, une erreur disans que mes variable $ initialiser n'on pas de chemin, et une fois l'envoye du formulaire, ma page devient vierge :/ .

joe0703
Nouveau membre

Messages : 19
Inscrit(e) le : 02/05/2015

joe0703 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: probleme rencontrer lors de la Vérification des champs ( en php)

Message par no_way le Lun 25 Mai 2015 - 20:58

Je vois, je vous contacterai par MP pour vous montrer ce que j'ai fait et voir si j'ai bien cerné ce qui est demandé Smile
Si oui je vous fournirai le code source.
@ bientôt.

no_way
Aidactif
Aidactif

Messages : 1773
Inscrit(e) le : 26/03/2010

no_way a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum