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

PHP & Base de données Discussion :

Chargement de ma page inscription


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Chargement de ma page inscription
    Bonjour,

    j'ai en première partie mon script php, si aucun insert n'est fait dans la base sql se fait, le formulaire est affiché.

    Mon soucis est simple, a chaque fois que je charge ma page les erreurs apparaissent, et je cherche donc comment faire pour que mon code php ne s’exécute seulement si mon formulaire d'inscription est validé?

    vous remerciant pas avance.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Voici mon code:

    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    <?php
        // connexion à la base de donnée
            try
                {
            $bdd = new PDO('mysql:host=ftpfree.perso.fr;dbname=ma_base', 'mon_login', 'mon_password');
            }
            catch(Exception $e)
                {
            die('Erreur : '.$e->getMessage());
            }
     
        // Vérification de la validité du pseudo       
            if ($_POST['pseudo'] == '') {
                $erreur_pseudo = "- Erreur: Le pseudo n'est pas renseign&eacute;.";
            }
        // Vérification de la longueur du pseudo / Mini 3 caractères
            elseif (strlen($_POST['pseudo']) < 3) {
                $erreur_pseudo = '- Erreur: Le pseudo doit contenir minimum 3 caract&egrave;res.';
            }
        // Vérification de la longueur du pseudo / Maxi 25 caractères
            elseif (strlen($_POST['pseudo']) > 25) {
                $erreur_pseudo = '- Erreur: Le pseudo doit contenir maximum 25 caract&egrave;res.';
            }
        // Vérification de la disponibilité du pseudo (si déjà pris ou pas)
            $query = $bdd->prepare("SELECT COUNT(*) AS verif_pseudo FROM membres WHERE membre_pseudo=:pseudo");
            $query->execute(array("pseudo" => $_POST['pseudo']));
            $count = $query->fetch();
            if ($count['verif_pseudo'] > 0) {
                $erreur_pseudo = "- Erreur: Ce pseudo est déjà utilis&eacute;, merci de bien vouloir en donner un autre.";  
            }
    //vérification de la validité du mot de passe
        // Vérification de la présence d'un mot de passe
            if (($_POST['mdp'] == '') && ($_POST['mdp_verif'] == '')) {
                $erreur_mdp = "- Erreur: Au moins un des champs mot de passe ne sont pas renseign&eacute;.";
            }
        // Vérification des deux mots de passe ($mdp et $mdp_verif)
            elseif ($_POST['mdp'] != $_POST['mdp_verif']){
                $erreur_mdp = '- Erreur: Les mots de passe ne sont pas identique.';
            }
        // Vérification de la longueur du mot de passe / Mini 8 caractères
            elseif (strlen($_POST['mdp']) < 8) {
                $erreur_mdp = '- Erreur: Pour votre s&eacute;curité, les mots de passe doit avoir un minimum de 8 caract&egrave;res.';
            }
        // Vérification de la longueur du mot de passe / Max 20 caractères
            elseif (strlen($_POST['mdp']) > 20) {
                $erreur_mdp = '- Erreur: Les mots de passe doit avoir un maximum de 20 caract&eagrave;res.';
            }
        // Vérification de la présence d'un chiffre dans le mot de passe
            elseif (!preg_match('#[0-9]#', (trim($_POST['mdp'])))) {
                $erreur_mdp = '- Erreur: Le mot de passe doit contenir au moins un chiffre.';
            }
        // Vérification de la présence d'un majuscule dans le mot de passe
            elseif (!preg_match('#[A-Z]#', (trim($_POST['mdp'])))) {
                $erreur_mdp = '- Erreur: Le mot de passe doit contenir au moins un lettre majuscule.';
            }
    // Vérification de l'adresse mail
        // Vérification de la présence de l'adresse mail
            if (($_POST['mail'] == '') && ($_POST['mail_verif'] == '')) {
                $erreur_mail = '- Erreur: les adresse mail ne sont pas renseign&eacute;es.';
            }
        // Vérification des deux adresses mail ($mail et $mail_verif)
            elseif ($_POST['mail'] != $_POST['mail_verif']) {
                $erreur_mail = '- Erreur: Les adresses mail sont differente.';
            }
        // Verification de la conformité du format de l'adresse mail.
            elseif (!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#is', (trim($_POST['mail'])))) {
                $erreur_mail = '- Erreur: Votre adresse mail est incorrect.';
            }
        // Vérification de l'adresse mail dans la base de données (déjà utilisée ou pas)
            $mquery = $bdd->prepare("SELECT COUNT(*) AS verif_mail FROM membres WHERE membre_mail=:mail");
            $mquery->execute(array("mail" => $_POST['mail']));
            $count = $mquery->fetch();
            if ($count['verif_mail'] > 0) {
                $erreur_mail = '- Erreur: Cette adresse mail est déjà utilisée';
            }
        // Insére des données dans la tables si $erreur_pseudo / $erreur_mdp / $erreur_mail n'éxistent pas
            if ((!isset($erreur_pseudo)) && (!isset($erreur_mdp)) && (!isset($erreur_mail))) {
            $pseudo = $_POST['pseudo'];
            $mdp =  $_POST['mdp'];
            $email = $_POST['mail'];
            $req = $bdd->prepare('INSERT INTO membres(membre_pseudo, membre_mdp, membre_mail, date_inscription) VALUE(:pseudo, :pass, :email, CURDATE())');
            $req->execute(array(
                'pseudo' => $pseudo,
                'pass' => sha1($mdp),
                'email' => $email));
            $erreur_insert = '';
            }
            else {
            $erreur_insert = "<hr /><p>La cr&eacute;ation de votre compte ne s'est pas faite pour les raisons suivantes:</p>";
            }
    ?>
    <!DOCTYPE html>
    <html>
        <header>
            <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
            <link rel="stylesheet" href="../css/style.css"/>
            <script type="text/javascript">
            <!--
                function open_charte() {
                    width = 750;
                    height = 600;
                if(window.innerWidth) {
                var left = (window.innerWidth-width)/2;
                var top = (window.innerHeight-height)/2;
            }
                else {
                var left = (document.body.clientWidth-width)/2;
                var top = (document.body.clientHeight-height)/2;
            }
                window.open('inc-charte-popup.php','Notre charte','menubar=no, scrollbars=1, top='+top+', left='+left+', width='+width+', height='+height+'');
            }
            -->
            </script>
            <script type="text/javascript">
                            <!--
                function open_robot() {
                    width = 550;
                    height = 450;
                if(window.innerWidth) {
                var left = (window.innerWidth-width)/2;
                var top = (window.innerHeight-height)/2;
            }
                else {
                var left = (document.body.clientWidth-width)/2;
                var top = (document.body.clientHeight-height)/2;
            }
                window.open('inc-anti-robot-popup.php','Anti-robot','menubar=no, scrollbars=no, top='+top+', left='+left+', width='+width+', height='+height+'');
            }
            -->
            </script>
            <title>samsjarril.free.fr</title>
                    <?php include("../banner/inc-baner.php"); ?>     
        </header>
        <body>
                <nav>
                    <?php include("../incs/nav-principal.php");  ?>
                </nav>
            <section id="section1">
                <article id="article1">
                    <p>
                        <h2>Formulaire d'inscription:</h2>
                    </p>
                </article>
            </section>
            <section>
                <article id="article2">
    <?php       
                if ((!isset($erreur_pseudo)) && (!isset($erreur_mdp)) && (!isset($erreur_mail))) {
    ?>
                <p>Bienvenue <?php echo $pseudo ; ?></p>
                <p>Le compte a bien &eacute;t&eacute; cr&eacute;e.</p>
                <p>votre login: <?php echo htmlspecialchars($_POST['pseudo']) ?> <br />
                Votre mot de passe: <?php echo htmlspecialchars($_POST['mdp']) ?><br />
                Votre adresse mail: <?php echo htmlspecialchars($_POST['mail']) ?></p>
                <p>
                Gardez les pr&eacute;cieusement car il vous permettrons de vous connecter au syst&egrave;me VIP du site.
                </p>
    <?php
                }
                else {
    ?>
                <!-- Formulaire mis à jour : -->
                <form action="../inscription/inscription.php" method="post" name="inscription">
                    <fieldset>
                        <br />
                        <label for="pseudo" class="float">Pseudo <strong class="important">*</strong>:</label>
                        <input type="text" name="pseudo" id="pseudo" size="30" /> <em class="police-petite">(compris entre 3 et 25 caract&egrave;res)</em><br />
                        <label for="mdp" class="float">Mot de passe <strong class="important">*</strong>:</label>
                        <input type="password" name="mdp" id="mdp" size="30" /> <em class="police-petite">(compris entre 8 et 20 caract&egrave;res, compos&eacute; de lettres majuscules et miniscules et de chiffres)</em><br />
                        <label for="mdp_verif" class="float">Mot de passe <strong class="important">*</strong> (v&eacute;rification) :</label>
                        <input type="password" name="mdp_verif" id="mdp_verif" size="30" /><br />
                        <label for="mail" class="float">Mail <strong class="important">*</strong> :</label>
                        <input type="text" name="mail" id="mail" size="30" /> <br />
                        <label for="mail_verif" class="float">Mail <strong class="important">*</strong> (v&eacute;rification) :</label>
                        <input type="text" name="mail_verif" id="mail_verif" size="30" /><br />
                        <p class="important">* Remplir ces champs est obligatoire pour vous inscrire.</p>
                        <p class="important">
    <?php                if (isset($erreur_insert)) { echo $erreur_insert; } ?>
                        <p class="important">
    <?php                if (isset($erreur_pseudo)) { echo $erreur_pseudo; } ?><br />
    <?php                if (isset($erreur_mdp)) { echo $erreur_mdp; } ?><br />
    <?php                if (isset($erreur_mail)) { echo $erreur_mail; } ?><br />
                        </p>
                </fieldset>
                    <fieldset>
                       <h1>Syst&egrave;me anti-robot :</h1>
                       <p><a href="#null" onclick="javascript:open_robot();">Qu'es ce qu'un anti-robot?</a></p>
                        <p>Une solution anti-robot est &agrave; l'&eacute;tude...<br />
                        Le captcha est devenu presque inutile car de plus en plus illisible pour les internautes, les robots arrivent &agrave; les d&eacute;chiffrer.<br />
                        Reste le petit quizz de quelques questions logiques, mais certains robots sont capable d'enregistrer questions et r&eacute;ponses.</p>
                    </fieldset>
                        <p class="important">Information: Cliquer sur le bouton "Inscription" signifie que vous acceptez tout les termes de <a href="#null" onclick="javascript:open_charte();">notre charte</a>.</p>
                    <div class="center"><input type="submit" value="inscription" /></div><br />
                </form>
    <?php
                }
    ?>
                </article>
            </section>   
        </body>  
        <footer>
                    <?php include("../incs/pied-page.php"); ?>
        </footer>
    </html>
    Il m'affiche les erreur ($erreur_pseudo, $erreur_mdp, $erreur_mail) a chaque chargement de ma page inscription.php


    Ce que je veux c'est étape par étape:

    étape 1 : afficher le formulaire pour que l'utilisateur puisse s'inscrire.
    étape 2: contrôler les données entrées dans le formulaire, si elle sont correct donc les données s'insert dans ma table sinon ça m'affiche de nouveau le formulaire avec les $erreur_....
    étape 3: si l'inscription est faite afficher les messages:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <p>Bienvenue <?php echo $pseudo ; ?></p>
                <p>Le compte a bien &eacute;t&eacute; cr&eacute;e.</p>
                <p>votre login: <?php echo htmlspecialchars($_POST['pseudo']) ?> <br />
                Votre mot de passe: <?php echo htmlspecialchars($_POST['mdp']) ?><br />
                Votre adresse mail: <?php echo htmlspecialchars($_POST['mail']) ?></p>
                <p>
                Gardez les pr&eacute;cieusement car il vous permettrons de vous connecter au syst&egrave;me VIP du site.
                </p>
    s'affichent.

    Je suis encore débutant donc je veux juste faire fonctionner mon code avant d'approfondir la sécurité et l'optimisation du code.

  3. #3
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonsoir !

    Si vous avez écrit tout cela, vous avez progressé trop vite !... (mais sans vouloir vous offenser, n'avez vous pas "pompé" ?...)

    J'ai survolé votre code : il s'agit d'une connexion avec PSEUDO et PASSWORD, qu'il faut ensuite vérifier dans la BDD.

    Il me semble que vous auriez dû construire 2 pages : la 1ère qui est le formulaire de connexion, la 2nde qui vérifie les données saisies et affiche si c'est OK, ou tout autre problème détecté...

    Dans un premier temps, il faut tester le bon fonctionnement de l'enchainement des 2 pages, et seulement après (qd l'enchainement fonctionne) enrichir progressivement votre code (avec toutes les vérifications concernant le Pseudo et le Psswrd).

    P.S : J'avoue avoir été dérouté par votre code. Par exemple ligne 147
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    :<?php
    if ((!isset($erreur_pseudo)) && (!isset($erreur_mdp)) && (!isset($erreur_mail))) {
    ?>
    Par ailleurs une partie des contrôles de syntaxe peut être effectué côté client via javascript (et ce pour des raisons de performance !)

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    if ((!isset($erreur_pseudo)) && (!isset($erreur_mdp)) && (!isset($erreur_mail))) {
    ?>
    Je test les variables, si y a pas d'erreur, elle ne devrait pas exister ( je me base la dessus ) et si elle n'éxiste pas c'est que le formulaire est bon donc le compte se crée et les infos du compte s'affiche.

    J'avoue qu'après avoir tourné le code dans tout les sens, je suis complètement embrouillé, par quel bout reprendre le code et comment penser pour pouvoir réfléchir correctement?

    Javascript pour le moment je vais le laisser de côté, je patauge déjà avec php et pour faire ce que j'ai fais en javascript c'est pas violant.

    ps: je ne l'ai pas pompé, j'ai fais l'assemblage de ce que j'ai appris sur plusieurs tutos. Pour la simple raison que je compte en faire avec le temps une site pro; si je copie, je risque pas de savoir améliorer mon site à faire et mesure.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    avec les deux pages je sèche à partir de là:

    Page "inscrition.php"

    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <!DOCTYPE html>
    <html>
    	<header>
    		<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
    		<link rel="stylesheet" href="../css/style.css"/>
    		<script type="text/javascript">
    		<!--
    			function open_charte() {
    				width = 750;
    				height = 600;
    			if(window.innerWidth) {
    			var left = (window.innerWidth-width)/2;
    			var top = (window.innerHeight-height)/2;
    		}
    			else {
    			var left = (document.body.clientWidth-width)/2;
    			var top = (document.body.clientHeight-height)/2;
    		}
    			window.open('inc-charte-popup.php','Notre charte','menubar=no, scrollbars=1, top='+top+', left='+left+', width='+width+', height='+height+'');
    		}
    		-->
    		</script>
    		<script type="text/javascript">
    						<!--
    			function open_robot() {
    				width = 550;
    				height = 450;
    			if(window.innerWidth) {
    			var left = (window.innerWidth-width)/2;
    			var top = (window.innerHeight-height)/2;
    		}
    			else {
    			var left = (document.body.clientWidth-width)/2;
    			var top = (document.body.clientHeight-height)/2;
    		}
    			window.open('inc-anti-robot-popup.php','Anti-robot','menubar=no, scrollbars=no, top='+top+', left='+left+', width='+width+', height='+height+'');
    		}
    		-->
    		</script>
    		<title>samsjarril.free.fr</title>
    				<?php include("../banner/inc-baner.php"); ?>      
    	</header> 
    	<body>
                <nav>
    				<?php include("../incs/nav-principal.php");  ?>
                </nav>
    		<section id="section1">
    			<article id="article1">
    				<p>
    					<h2>Formulaire d'inscription:</h2>
    				</p>
    			</article>
    		</section>
    		<section>
    			<article id="article2">
    			<!-- Formulaire d'inscription : -->
                <form action="../inscription/trait_inscription.php" method="post" name="inscription">
                    <fieldset>
    					<br />
                        <label for="pseudo" class="float">Pseudo <strong class="important">*</strong>:</label> 
    					<input type="text" name="pseudo" id="pseudo" size="30" /> <em class="police-petite">(compris entre 3 et 25 caract&egrave;res)</em><br />
                        <label for="mdp" class="float">Mot de passe <strong class="important">*</strong>:</label> 
    					<input type="password" name="mdp" id="mdp" size="30" /> <em class="police-petite">(compris entre 8 et 20 caract&egrave;res, compos&eacute; de lettres majuscules et miniscules et de chiffres)</em><br />
                        <label for="mdp_verif" class="float">Mot de passe <strong class="important">*</strong> (v&eacute;rification) :</label> 
    					<input type="password" name="mdp_verif" id="mdp_verif" size="30" /><br />
                        <label for="mail" class="float">Mail <strong class="important">*</strong> :</label> 
    					<input type="text" name="mail" id="mail" size="30" /> <br />
                        <label for="mail_verif" class="float">Mail <strong class="important">*</strong> (v&eacute;rification) :</label> 
    					<input type="text" name="mail_verif" id="mail_verif" size="30" /><br />
    					<p class="important">* Remplir ces champs est obligatoire pour vous inscrire.</p>
    			</fieldset>
                    <fieldset>
                       <h1>Syst&egrave;me anti-robot :</h1> 
    				   <p><a href="#null" onclick="javascript:open_robot();">Qu'es ce qu'un anti-robot?</a></p>
    					<p>Une solution anti-robot est &agrave; l'&eacute;tude...<br />
    					Le captcha est devenu presque inutile car de plus en plus illisible pour les internautes, les robots arrivent &agrave; les d&eacute;chiffrer.<br />
    					Reste le petit quizz de quelques questions logiques, mais certains robots sont capable d'enregistrer questions et r&eacute;ponses.</p>
                    </fieldset>
    					<p class="important">Information: Cliquer sur le bouton "Inscription" signifie que vous acceptez tout les termes de <a href="#null" onclick="javascript:open_charte();">notre charte</a>.</p>
                    <div class="center"><input type="submit" value="inscription" /></div><br />
                </form>
    			</article>
    		</section>	
    	</body>	
    	<footer>
    				<?php include("../incs/pied-page.php"); ?>
    	</footer>
    </html>
    Page "trait-inscription.php"

    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    <?php
    	session_start();
    	// connexion à la base de donnée
    		try
    			{
    		$bdd = new PDO('mysql:host=ftpperso.free.fr;dbname=ma_base', 'login', 'password');
    		}
    		catch(Exception $e)
    			{
    		die('Erreur : '.$e->getMessage());
    		}
     
    	// Vérification de la validité du pseudo		
    		if ($_POST['pseudo'] == '') {
    			$erreur_pseudo = 'Erreur: le pseudo est manquant';
    		}
    		elseif (strlen($_POST['pseudo']) < 3) {
    			$erreur_pseudo = 'Erreur: Le pseudo doit contenir minimum 3 caracteres';
    		}
    		elseif (strlen($_POST['pseudo']) > 25) {
    			$erreur_pseudo = 'Erreur: Le pseudo doit contenir maximum 25 caracteres';
    		}
    		else {
    			$erreur_pseudo = '';			
    		}
    		$query = $bdd->prepare("SELECT COUNT(*) AS verif_pseudo FROM membres WHERE membre_pseudo=:pseudo");
    		$query->execute(array("pseudo" => $_POST['pseudo']));
    		$count = $query->fetch();
    		if ($count['verif_pseudo'] > 0) {
    			$erreur_pseudo = 'Ce pseudo est déjà utilisé';	
    		}
    	//vérification de la validité du mot de passe
    		// Vérification de la présence d'un mot de passe
    		if (($_POST['mdp'] == '') && ($_POST['mdp_verif'] == '')) {
    			$erreur_mdp = 'Erreur :Les champs mot de passe sont vide';
    		}
    		// Vérification des deux mots de passe ($mdp et $mdp_verif)
    		elseif ($_POST['mdp'] != $_POST['mdp_verif']){
    			$erreur_mdp = 'Erreur: Les mots de passe ne sont pas identique';
    		}
    		// Vérification de la longueur du mot de passe / Mini 8 caractères
    		elseif (strlen($_POST['mdp']) < 8) {
    			$erreur_mdp = 'Erreur: Pour votre sécurité, les mots de passe doit avoir un minimum de 8 caractères';
    		}
    		// Vérification de la longueur du mot de passe / Max 20 caractères
    		elseif (strlen($_POST['mdp']) > 20) {
    			$erreur_mdp = 'Erreur: Les mots de passe doit avoir un maximum de 20 caractères';
    		}
    		// Vérification de la présence d'un chiffre dans le mot de passe
    		elseif (!preg_match('#[0-9]#', (trim($_POST['mdp'])))) {
    			$erreur_mdp = 'Erreur: Le mot de passe doit contenir au moins un chiffre';
    		}
    		// Vérification de la présence d'un majuscule dans le mot de passe
    		elseif (!preg_match('#[A-Z]#', (trim($_POST['mdp'])))) {
    			$erreur_mdp = 'Erreur: Le mot de passe doit contenir au moins un lettre majuscule';
    		}
    		else {
    			$erreur_mdp = '';
    		}
    	// Vérification de l'adresse mail
    		// Vérification de la présent de l'adresse mail
    		if (($_POST['mail'] == '') && ($_POST['mail_verif'] == '')) {
    			$erreur_mail = 'Erreur: les adresse mail ne sont pas renseignées';
    		}
    		elseif ($_POST['mail'] != $_POST['mail_verif']) {
    			$erreur_mail = 'Erreur: Les adresses mail sont differente';
    		}
    		elseif (!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#is', (trim($_POST['mail'])))) {
    			$erreur_mail = 'Erreur: Votre adresse mail est incorrect.';
    		}
    		else {
    			$erreur_mail = '';
    		}
    		$mquery = $bdd->prepare("SELECT COUNT(*) AS verif_mail FROM membres WHERE membre_mail=:mail");
    		$mquery->execute(array("mail" => $_POST['mail']));
    		$count = $mquery->fetch();
    		if ($count['verif_mail'] > 0) {
    			$erreur_mail = 'Cette email est déjà utilisé';
    		}
    		if (($erreur_pseudo == '')&& ($erreur_mdp == '') && ($erreur_mail == '')) {
    		$pseudo = $_POST['pseudo'];
    		$mdp =  sha1($_POST['mdp']);
    		$email = $_POST['mail'];
    		$req = $bdd->prepare('INSERT INTO membres(membre_pseudo, membre_mdp, membre_mail, date_inscription) VALUE(:pseudo, :pass, :email, CURDATE())');
    		$req->execute(array(
    			'pseudo' => $pseudo,
    			'pass' => $mdp,
    			'email' => $email));
    		header('Location: ../inscription.php');
    		}
    		else {
    		$returne = 'erreur, ça marche pas';
    		}
    ?>	
    <html>
    <head>
    </head>
    <body>
    <p>
    Erreur pseudo<br />
    <?php echo $erreur_pseudo ; ?>
    </p>
    <p>
    Erreur Mdp<br />
    <?php echo $erreur_mdp ; ?>
    </p>
    <p>
    Erreur Mail<br />
    <?php echo $erreur_mail ; ?>
    </p>
    <p>
    retour test<br />
    <?php echo $returne ; ?>
    </p>
    </body>
    </html>
    Et là, je n'ai pas de retour vers le formulaire si celui-ci est mal rempli.
    Mon affichage des information reste très sommaire.

    comment je peux retourner les infos du compte sur la page inscription si le compte est crée?
    Dans le cas où le formulaire est mal rempli comment retourner les erreur une par une comme je le met dans mes variables?

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonsoir.

    Pardonnez mon 'franc-parler', mais j'ai vu tellement de choses dans votre code...

    En ce qui concerne Javascript, OK ! : Effectuez les contrôles côté serveur, de toute façon il faudra bien y aller !... Ce sera plus long en temps de réponse (quand il y a des erreurs de saisie successives) mais bon, au moins vous saurez faire...

    En revanche ce que je vous ai indiqué précédemment reste valable !

    Je vous conseille de faire 2 pages :

    1ère page:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html>
    <head></head>
    <body>
         <FORM method="POST"></FORM>
    </body>
    </html>
    2ème page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
     
    ?>
    <html>
     
    </html>
    Or votre code tente de faire les deux choses dans une même page ! C'est réalisable, mais pour des programmeurs chevronnés !

    Qui plus est, votre code est trop riche (source potentielle d'erreurs).

    Vous voulez aller trop vite : Faites un petit enchainement de 2 pages avec un minimum de code ! Quand ces 2 pages fonctionneront vous enrichirez votre code au fur et à mesure.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    je comprend bien que tout sur une seul page n'est pas facile, donc je vais suivre votre conseil.

    Sur mon post juste au-dessus de votre dernier post, je vous ai mis les deux pages que j'ai de base.

  8. #8
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonjour.

    j'ai 'bricolé' 2 petites pages très courtes qui devraient vous aider !

    La 1ère page1.html est un FORM, la 2ème page2.php traite le formulaire. Les deux pages communiquent.

    Si vous avez WAMP : Dans le dossier "www" créez un sous-dossier dans lequel vous placer ces deux fichiers. Vous pourrez ainsi tester !

    C'est en qqsorte une maquette, à vous de l'améliorer...
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <html>
    <head></head>
    <body onload="document.getElementById('pseudo').focus()"> 
         <FORM method="POST" action="page2.php">
         <br> 
              PSEUDO : <input id="pseudo" name="pseudo" type="text" maxlength=8> ( 1 Majuscule suivie par au moins 3 minuscules )
         <br><br>          
              PASSWORD : <input name="password" type="text" maxlength=8>  ( Longueur 8 - Majuscule, minuscule ou chiffre ) 
         <br><br>
              <input type="submit">
         </FORM>
    </body></html>
    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
    <?php
         $log = ' ' ;
         $pseudo = $_POST['pseudo'] ;
         if ( ! preg_match("~^[A-Z][a-z]{3,}$~", $pseudo) )
              {
              $log = "<br>Le pseudo \"$pseudo\" n'est pas valide !" ;
              }
         $password = $_POST['password'] ;
         if ( ! preg_match("~^[\w]{8}~", $password) )
              {
              $log .= "<br>Le mot de passe \"$password\" n'est pas valide !" ;
              }
    ?>
    <html>
    <head></head>
    <body>
         <p><?php echo $log ; ?></p>
    Click <a href='page1.html' target='_self'>THERE</a> to return to the form (or use the backward arrow)...
    </body></html>

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    j'ai mon home serveur.

    Je suis novice en php mais pas en réseau et serveur.

    par contre je comprend pas tout sur ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         if ( ! preg_match("~^[\w]{8}~", $password) )
    ("~^[\w]{8}~", $password) , ça veux dire quoi ? parce que le regex que j'ai fais je le comprenais mais celui la ...

  10. #10
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonjour.

    J'ai mis cette regex, histoire de vérifier qqchose quant à la syntaxe !
    C'est juste un exemple... (cela vérifie la présence de huit caractères alphanumériques)

    Cdlt

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    d'accord merci à toi, je vais réfléchir dessus.

Discussions similaires

  1. [iframe]pb de chargement d'une page
    Par Destampy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/05/2005, 11h19
  2. Chargement d'une page
    Par krfa1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/05/2005, 09h53
  3. [JSP] pbl chargement d'une page JSP
    Par Shiryu44 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 30/03/2005, 10h49
  4. Réponses: 4
    Dernier message: 08/06/2004, 09h01
  5. Attendre la fin du chargement de la page dans un WebBrowser
    Par core1 dans le forum Web & réseau
    Réponses: 5
    Dernier message: 15/06/2003, 04h12

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