IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Éviter une nouvelle validation du formulaire


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut Éviter une nouvelle validation du formulaire
    Bonjour,

    Comment je peux éviter que chaque clic sur le bouton de validation déclenche un nouvel enregistrement?

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par philippef Voir le message
    Bonjour,
    Comment je peux éviter que chaque clic sur le bouton de validation déclenche un nouvel enregistrement?
    Bonjour, désolé je ne comprends pas ta question,

    1) quand tu clic sur ton bouton qui controle ?
    Un JavaScript
    Le PHP appelé par ton FORM qui lit les $_POST

    2) controles tu si OUI NON tout est vide ou rempli

    Bref précises merci

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Désolé si j'ai pas été clair

    Quand je clique mon bouton "valider" de mon formulaire, tous les données sont bien enrgistrées dans ma bdd.
    Voilà comment se présente ma page (je ne mets qu'un controle pour simplifier)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <?php
    if (isset($_POST['nom']))	$nom = $_POST['nom'];
    else $nom = "";
    if (isset($_POST['valid'])){
    	if (empty($message)){
    		if (!empty($nom) && !empty($prenom) && !empty($user) && !empty($pass) && !empty($cp) && !empty($ville) && !empty($mail) && !empty($nom_loc) && !empty($cp_res) && !empty($ville_res) && !empty($date_bail)){
    			//véfifie si le nom utilisateur est déjà utilisé
    			$sql = mysql_query("SELECT * FROM logging WHERE user LIKE '%$user%'");
    			if (mysql_num_rows($sql) > 0){
    				$res = mysql_fetch_array($sql);
    				$userbdd = $res['user'];
    				if ($userbdd == $user){
    					$message = "Le nom utilisateur est déjà pris. Veuillez en choisir un autre";
    				}
    			}
    			//enregistrement du membre			
    			$user_type = 1; // défini pour les membres indépendants
    			enregistrer_user($user_type, $user, $pass);
    			$id_membre = mysql_insert_id();
    			$_SESSION['user_type'] = $user_type;			
    			$_SESSION['user'] = $user;
    			$_SESSION['id_membre'] = $id_membre;
    ?>
     
    <form name="identité" method="POST" action="index.php?page=inscription_independant">
    <table border = 0 style="background-color:white; font-size:11px"> 
    <tr>
    <td valign="top">
    	<table border =0 style="background-color:white">
    		<colgroup width=175px>
    		<tr height=30px>
    			<td colspan=2 align="center"><u>Vos coordonnées</u></td>
    		</tr>
    		<tr>
    			<td align="right">nom* : </td><td>&nbsp;<input type="text" name="nom" value="<?php echo strtoupper($nom); ?>"></td>
    		</tr>
    <tr height=40px>
    <td colspan=3 align="center"><input type="submit" name="valid" value="valider votre saisie"></td>
    </tr>
    </table>
    </form>
    Si je clique une nouvelle fois, les données s'enregistrent une nouvelle fois.
    Je ne vois pas comment éviter ça.

    Merci d'avance

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Oui Ok je vois mieux, alors regardes cette trame,
    a toi de compléter et finaliser
    (j'expliques plus bas ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php
    if (isset($_GET['page'])) $page = $_GET['page'];
    else $page = "";
    if (isset($_POST['voir'])) $voir = $_POST['voir'];
    else $voir = "";
    if (isset($_POST['valid'])) $valid = $_POST['valid'];
    else $valid = "";
    if (isset($_POST['nom']))	$nom = $_POST['nom'];
    else $nom = "";
    if (isset($_POST['user'])) $user = $_POST['user'];
    else $user = "";
    if (isset($_POST['prenom'])) $prenom = $_POST['prenom'];
    else $prenom = "";
    if (isset($_POST['pass'])) $pass = $_POST['pass'];
    else $pass = "";
    if (isset($_POST['prenom'])) $prenom = $_POST['prenom'];
    else $prenom = "";
    //====ETC...............
    $message="";
    $Flag="";
    //======= premier barage il faut que page=inscription_independant ======
    if ($page=="inscription_independant" && $voir!="OK")
     {
       //======= deuxieme barage saisies OK ======
        if ($nom!="" && $prenom!="" && $user!="" && $pass!="" && $cp!="" )
        {
         //véfifie si le nom utilisateur est déjà utilisé
         $sql = mysql_query("SELECT * FROM logging WHERE user LIKE '%$user%'");
         if (mysql_num_rows($sql) > 0)
          {
           $res = mysql_fetch_array($sql);
           $userbdd = $res['user'];
           if ($userbdd == $user) { $message = "Le nom utilisateur est déjà pris. Veuillez en choisir un autre";}
          }
          if ($message=="")
           {
            //enregistrement du membre
            $user_type = 1; // défini pour les membres indépendants
            enregistrer_user($user_type, $user, $pass);
            $id_membre = mysql_insert_id();
            $_SESSION['user_type'] = $user_type;   
            $_SESSION['user'] = $user;
            $_SESSION['id_membre'] = $id_membre;
            //========= comme tout est OK on bloque====
            $flag="O";
           }
         } // fin 2em barage
          else {$message = "Saisie incomplete";}
     
     } // fin 1er barage
    ?>
     
    <form name="identité" method="POST" action="index.php?page=inscription_independant">
    <table border = 0 style="background-color:white; font-size:11px"> 
    <tr>
    <td valign="top">
    	<table border =0 style="background-color:white">
    		<colgroup width=175px>
    		<tr height=30px>
    			<td colspan=2 align="center"><u>Vos coordonnées</u></td>
    		</tr>
    		<tr>
    			<td align="right">
    <?PHP
    if ($message!="") echo (" attention: ".$message."<br /> ");
    if ($flag=="O") echo ("<input type="hidden" name="voir" value="OK">
    if ($flag!="O") echo ("<input type="hidden" name="voir" value="">
    ?>
       nom* : </td><td>&nbsp;<input type="text" name="nom" value="<?php echo strtoupper($nom); ?>"></td>
    		</tr>
    <tr height=40px>
    <td colspan=3 align="center"><input type="submit" name="valid" value="valider votre saisie"></td>
    </tr>
    </table>
    </form>
    En premier il y a le GET qui repére le FORM il s'appel "page" dans ton exemple
    donc je ne laisses entrer dans la suite de l'enregistrement que si
    page="inscription_independant" mais en plus il faut que ma variable "voir"
    ait pour valeur "" car si elle est a "OK" alors on ne fait pas non plus car l'enregistrement est déjas fait

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci FoxLeRenard.

    Je vais mettre tout ça en oeuvre

    Comme je ne vais pas faire ça maintenant, j'attends pour le "résolu"

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    plus simple encore, vu que tu réaffiches ton formulaire à la fin et qu'en plus tu fais un mysql_insert_id(), tu peux tres bien rajouter un <input type="hidden" ..> avec l'ID et check soit si l'id existe dans la DB ou carrément dire que vu que ce champ existe, on ne fait rien

    (d'un autre côté, tu lances une $_SESSION direct apres envoie du formulaire, pourquoi ne pas dire "la session existe ? oui => j'envoie pas le form)

  7. #7
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci pour votre aide.

    En fait si tout se passe bien je fais un header('location:index.php?page=accueil'); c'est plus simple et j'affiche directement l'utilisateur.

    Merci encore.

    Maintenant je dois régler la gestion des mots de passe perdus ou oubliés.
    Si vous avez une idée, elle est la bienvenue, mais je vais quand voir comment gérer ça

  8. #8
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Ouais header("Location :") FTW ! en fait je le fais toujours apres mes formulaire maintenant, ça m'est meme pas venu à l'idée d'en parler vu que c'est automatique mtn

    De plus, ça te permet de pouvoir utiliser tes cookies directement

    Citation Envoyé par philippef Voir le message
    Maintenant je dois régler la gestion des mots de passe perdus ou oubliés.
    Si vous avez une idée, elle est la bienvenue, mais je vais quand voir comment gérer ça
    been si tu les crypte pas c'est simple : tu les renvoies par e-mail

    Sinon, tu envoies un mot de passe généré aléatoirement et tu le stock dans un champ "generated_password" (ouais, il vaut mieux pas changer le champ du password courant au cas où des gens mal attentions fairaient des requests à la place d'utilisateurs de ton site)

  9. #9
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci à toi darkstar
    Citation Envoyé par darkstar123456 Voir le message
    De plus, ça te permet de pouvoir utiliser tes cookies directement

    been si tu les crypte pas c'est simple : tu les renvoies par e-mail

    Sinon, tu envoies un mot de passe généré aléatoirement et tu le stock dans un champ "generated_password" (ouais, il vaut mieux pas changer le champ du password courant au cas où des gens mal attentions fairaient des requests à la place d'utilisateurs de ton site)
    Ben les cookies j'ai jamais utilisé donc ça je verrai après.
    Je crois que je ne peux pas envoyer le mot de passe par email, mon champ password est codé.
    Ce que je pense faire c'est effectivement envoyer par mail un mot de passe généré de façon aléatoire.
    Est ce que tu peux me dire où je peux trouver un tuto sur la génération aléatoire ?

  10. #10
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Il existe bien des façons de le faire mais voici une des méthodes les plus courtes
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    /**
     * The letter l (lowercase L) and the number 1
     * have been removed, as they can be mistaken
     * for each other.
     */
     
    function createRandomPassword() {
        $chars = "abcdefghijkmnopqrstuvwxyz023456789";
        srand((double)microtime()*1000000);
        $pass = '' ;
     
        for($i = 0; $i <= 7; $i++) {
            $num = rand() % 33;
            $tmp = substr($chars, $num, 1);
            $pass = $pass . $tmp;
        }
        return $pass;
    }
     
     
     
    // Usage
    $password = createRandomPassword();
    echo "Your random password is: $password";
    ?>

    source


    Si t'as du mal à comprendre, hésite pas à demander des explications

  11. #11
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    Il existe bien des façons de le faire mais voici une des méthodes les plus courtes
    J'aimes bien ça aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $key="";
     $taille = 5;
     $chiffre = "123456789";
     srand(time());
     for ($i=0;$i<$taille;$i++)
      {
       $key.=substr($chiffre,(rand()%(strlen($chiffre))),1);
      }
    echo $key;
    Et pour toi darkstar cette sitation
    On peut apprendre à un ordinateur à dire : "Je t'aime", mais on ne peut pas lui apprendre à aimer.
    Albert Jacquard - Technologie

  12. #12
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Citation Envoyé par FoxLeRenard Voir le message
    Et pour toi darkstar cette sitation
    On peut apprendre à un ordinateur à dire : "Je t'aime", mais on ne peut pas lui apprendre à aimer.
    Albert Jacquard - Technologie
    haha aurais-tu fait tes études au même endroit que moi ? ^^

  13. #13
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    haha aurais-tu fait tes études au même endroit que moi ? ^^
    Non non , c'était juste un clin d'oeil, A l'informatique c'est un virus !

  14. #14
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci à vous deux.
    Il me reste à monter le mail, mais j'ai encore une question :
    L'adresse mail suffit ou conseillez-vous de demander aussi le nom utilisateur ?

  15. #15
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    En général, l'adresse mail suffit (et parfois on fait des requests pcq on a oublié son pseudo ^^)

  16. #16
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci darkstar123456,

    Je suis entrain de traiter le changement de mot de passe.
    Sur la même page je traite l'identification, le changement de mot de passe et le mot de passe oublié.
    Chaque option est traitée par un div avec un id.
    <div id="div1" class="visible"> qui contient le formulaire d'identification et 2 liens : 1 pour le changement de mot de passe et un pour le mot de passe oublié
    <div id="div2" class="hidden"> qui contient le formulaire pour changer le mot de passe
    <div id="div3" class="hidden"> qui contient le formulaire pour le mot de passe oublié.

    Mon problème est avec le traitement du div2. Si tout est ok, pas deproblème, mais si les mots de passe ne correspondent pas je voudrais réafficher le div2 et là je ne vois pas coment faire (je suppose qu'il faut passer par javascript)

    le code du div2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    //******************** BLOC DE CHANGEMENT DE MOT DE PASSE ******************
     
    if (isset($_POST['old_pass']))		$old_pass = $_POST['old_pass'];
    else $old_pass="";
    if (isset($_POST['new_pass']))		$new_pass = $_POST['new_pass'];
    else $new_pass="";
    if (isset($_POST['new_pass_bis']))	$new_pass_bis = $_POST['new_pass_bis'];
    else $new_pass_bis="";
    if (isset($_POST['change_password'])){
    	if ((!empty($old_pass)) && (!empty($new_pass)) && (!empty($new_pass_bis))){
    		if ($new_pass <> $new_pass_bis){
    			$message = "Les mots de passe ne correspondent pas !";
    		}
    		else {
    			//enregistrer le nouveau mot de passe
    			$message ="Le mot de passe a été modifié.";
    		}
    	}
    }
    ?>
    <div id="div2" style="background-color:#00FFFF;" class="hidden">
    <p align="center" style="margin-top:35px; margin-left:300px;  width:400px; font-family:verdana; font-size:12px"> 
    <form name="idendite" method="POST" action="index.php?page=identite">
    <table border=0 style="font-family:verdana; font-size:11px">
    	<tr height="50px">
    		<td align="center" colspan="2" style="font-size:12px">Changer le mot de passe</td>
    	</tr>
    	<?php 
    		if (empty($user)){
    	echo "<tr height='30px' valign='top'>
    		<td align='center' colspan='2' style='font-size:12px; color:red'>Vous devez être connecté pour changer le mot de passe.</td>
    	</tr>";
    	}?>
    	<tr>
    		<td align="right">Mot de passe actuel : </td><td>&nbsp;<input type="password" name="old_pass" value="<?php echo "$old_pass";?>"></td>
    	</tr>
    	<tr>
    		<td align="right">Nouveau mot de passe : </td><td>&nbsp;<input type="password" name="new_pass" value="<?php echo "$new_pass";?>"></td>
    	</tr>
    	<tr>
    		<td align="right">Confirmer le mot de passe : </td><td>&nbsp;<input type="password" name="new_pass_bis" value="<?php echo "$new_pass_bis";?>"></td>
    	</tr>
    	<tr height="50px" valign="bottom">
    		<td colspan=2 align="center">
    		<input type="hidden"  name="change_password">
    		<input type="image" src="images/change_password.png" alt="" style="cursor:pointer" />&nbsp;&nbsp;
    		<img src="images/nul_change_pass.png" alt="" style="cursor:pointer" onclick="javascript:hide('div2','div1', 'div3')" /></td>
    	</tr>
    </table>
    </form>
    </p>
    </div>
    Merci d'avance

  17. #17
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    si tu veux vérifier avant l'envoi, oui il te faut du JS.

    Sinon, tu n'as qu'à stocker une variable du genre "$confirm_pwd = false" et tu met une condition que si $confirm_pwd est false, alors tu affiche le div2

  18. #18
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    si tu veux vérifier avant l'envoi, oui il te faut du JS.
    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if (isset($_POST['change_password'])){
    	if ((!empty($old_pass)) && (!empty($new_pass)) && (!empty($new_pass_bis))){
    		if ($new_pass <> $new_pass_bis){
    			?> <script type='text/javascript'>hide('div1','div2','div3')</script><?php
    			$message = "Les mots de passe ne correspondent pas !";
     
    		}
    		else {
    			//enregistrer le nouveau mot de passe
    			$message ="Le mot de passe a été modifié.";
    		}
    	}
    }
    Mais ça marche pas
    Citation Envoyé par darkstar123456 Voir le message
    Sinon, tu n'as qu'à stocker une variable du genre "$confirm_pwd = false" et tu met une condition que si $confirm_pwd est false, alors tu affiche le div2
    Ok mais je dois quand même passer par js non ?

  19. #19
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    non non, et même ton JS est faux ^^

    Pour vérifier par JS il te faut créer une fonction de vérification qui sera appelée au click sur le bouton submit (ou qd on quitte le field de confirmation du password)

    // SINON

    ben t'envoie ton formulaire, tu fais tes vérifications...

    Si le form a été envoyé ET que la confirmation est différente du 1er pwd, alors ton div2 doit etre affiché...

  20. #20
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    non non, et même ton JS est faux ^^
    ben t'envoie ton formulaire, tu fais tes vérifications...

    Si le form a été envoyé ET que la confirmation est différente du 1er pwd, alors ton div2 doit etre affiché...
    OK pour les vérif, mais je ne vois pas comment afficher le div avec php

    J'avais essayé avec js , mon div rest bien visible si les mots ne crrespondent pas mais je peux pas afficher de message et je ne veux pas faire de alert() avec js
    voilà ce que j'ai fait. Que la partie concernée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    **la fonction js***
    function valider(id,id1,id2){
    var1 = document.change_pass.new_pass.value;
    var2 = document.change_pass.new_pass_bis.value;
    if (var1 != var2){
    	document.getElementById(id).className = "hidden";
    	document.getElementById(id1).className = "visible";
    	document.getElementById(id2).className = "hidden";
    	document.change_pass.texte.value="non";
    }
    else {
    	document.change_pass.texte.value="ok";
    	document.change_pass.submit();
    }
    }
    **puis le traitement du formulaire***
    if ((!empty($old_pass)) && (!empty($new_pass)) && (!empty($new_pass_bis))){
    	if ($texte == 'non'){
    		$message = "<span style='color:red'>Les mots de passe ne correspondent pas !</span>";
    	}
    }
    if ($texte == 'ok'){
    	//enregistrer le nouveau mot de passe
    	$message= "<span style='color:blue'>Le mot de passe a été modifié.</span>";
    }
    ?>
    	<tr height="50px" valign="bottom">
    		<td colspan=2 align="center">
    		<input type="button"  name="bouton" value="change" onclick="javascript:valider('div1','div2','div3')">
    		<input type="hidden" name="texte" value="">
    	</tr>
    Donc si je peux afficher le div avec php je préfère.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Ajout d'une nouvelle partie de formulaire
    Par chido dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/02/2012, 06h41
  2. [JavaScript] [SRC] Une autre validation de formulaire
    Par franculo_caoulene dans le forum Contribuez
    Réponses: 0
    Dernier message: 07/07/2009, 15h00
  3. Réponses: 1
    Dernier message: 26/08/2008, 14h43
  4. Réponses: 17
    Dernier message: 31/08/2006, 14h50
  5. Réponses: 6
    Dernier message: 11/04/2006, 10h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo