Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP/Créer un espace membres

    1 décembre 2020 à 1:39:35

    Bonjour,

    Depuis des semaines j'essaie de créer un espace membres en suivant le cours "CREER UN ESPACE MEMBRES" de Mathieu Nebra. J'ai juste

    réussi à inscrire une personne qui apparaît dans ma bdd, mais lorsque je veux inscrire une deuxième personne, je reste bloquée le message:"Le pseudo est déjà utilisé", alors que c'est un différent pseudo. Je ne vois pas l'erreur. 

    Quelqu'un peut m'aider? Merci

    Voici le code:

    inscription1.php :

    <!DOCTYPE html>
    <html>
    	<head>
    		<title>INSCRIPTION</title>
    		<meta charset="rtf-8" />
    		<link href="style.css" rel="stylesheet" />
    	</head>
    	<body>
    		<div align="center">
    		<h1>Bienvenue dans mon Site !</h1>
    		<h2>Inscription</h2>
    		<form method="post" action="inscription1_post.php">
    			<table>
    				<tr>
    					<td><label for="text">Votre Pseudo :</label> </td>
    					<td><input type="text" id ="pseudo" name="pseudo" /></td>
    				</tr>
    				<tr>
    					<td><label for="password">Votre Mot de passe :</label> </td>
    					<td><input type="password" id ="pass" name="pass" /></td>
    				</tr>
    				<tr>
    					<td><label for="password">Reconfirmer votre mot de passe :</label> </td>
    					<td><input type="password" id ="verif_pass" name="verif_pass" /></td>
    				</tr>
    				<tr>
    					<td><label for="email">Votre Mail :</label> </td>
    					<td><input type="email" id ="mail" name="mail" /></td>
    				</tr>
    				<tr>
    					<td></td>
    					<td><input type="submit" value="Je m'inscris" /></td>
    				</tr>
    
    			</table>
    		</form>
    		</div>
    	</body>
    </html>

    inscription1_post.php :

    <?php
    //on ouvre la Base de Données
    	try 
    	{
    		$bdd = new PDO ('mysql:host=localhost;dbname=test;charset=utf8', 'root' ,'', array(PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION));
    	}//si on ne la troue pas on envoie un message d'erreur et on arrete le script
    	
    	catch(Exception $e)
    	{
    		die('Erreur:'. $e->getMessage());
    	}
    	
    	// on recherche une variable qui nous dira si pseudo est libre
    	$libre = true;
    	// si tous les variables existent...
    	if(isset($_POST['pseudo']) AND isset($_POST['pass']) AND isset($_POST['mail']))
    	{
    		//on recherche dans la BDD tous les pseudos de la table membres..
    		$req = $bdd ->query('SELECT pseudo FROM membres');
    
    	// on stock les donnees dans une variable dont que la variable n'est pas lu en entier
    
    		while($donnees = $req-> fetch())
    		{
    		//si le pseudo recupere est different des membre dans la bdd
    			if ($_POST['pseudo'] = !$donnees)
    			{
    				//alors on entre le nouveau pseudo dans la bdd
    				$libre=true;
    
    				//si le password est le meme que le confirme..
    				if($_POST['pass'] == $_POST['verif_pass'])
    				{
    					//...et que l'adresse mail est valide..
    					if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))
    					{
    						//alors on code le mot de pass, on le securise..
    						$pass_hache = password_hash($_POST['pass'], PASSWORD_DEFAULT);
    						//je libere le cursor..
    						$req->closeCursor();
    
    						//..et on cree un nouveau membre, dont la date de la creation se situe maintenant
    						$req = $bdd->prepare('INSERT INTO membres(pseudo, pass, mail, date_inscription)VALUES(:pseudo, :pass, :mail, NOW())');
    						//dont le pseudo et le email sont ceux qui ont ete envoyé et le mot de passe hache
    						$req->execute (array('pseudo'=>$_POST['pseudo'], 'pass'=>$pass_hache, 'mail'=>$_POST['mail']));
    						
    						//avant de nous rediriger vers la page de connexion
    						header ("location: connexion1.php");
    					}
    					else
    					{
    						echo 'Erreur: L\'adresse mail n\'est pas valide !';
    					}
    				}
    				else
    				{
    					echo 'Erreur :les mots de passes ne sont pas identiques !';
    				}
    
    			}
    			else
    			{
    				//sinon le pseudo n'est pas libre
    				$libre=false;
    				//..et on affiche 'pseudo deja utilise'
    				echo 'le pseudo est déjà utilisé !';
    				//puis on arrete de comparer les donnees
    				break;
    
    			}
    		}
    		
    	}	
    	
    	else
    	{
    		echo 'un des champs n\'est pas rempli !';
    	}
    
    	// j'arrete le curseur de recherche
    		$req->closeCursor();
    ?>
    

    connexion1.php :

    <!DOCTYPE html>
    <html>
    	<head>
    		<title>CONNEXION</title>
    		<meta charset="utf-8" />
    		<link href="style.css" rel="stylesheet" />
    	</head>
    	<body>
    		<diV align="center">
    		<h1>CONNEXION</h1>
    		<br/>
    		<form method="post" action="connexion1_post.php">
    			<table>
    				<tr>
    					<td><label for="text">Votre Pseudo :</label></td>
    					<td><input type="text" id="pseudo" name="pseudo" value="<?php if(isset($_COOKIE['pseudo'])){echo $_COOKIE['pseudo'];}?>" /></td>
    				</tr>
    				<tr>
    					<td><label for="password">Votre mot de pass :</label></td>
    					<td><input type="password" id="pass" name="pass" value="<?php if(isset($_COOKIE['pass_hache'])){echo $_COOKIE['pass_hache'];}?>" /></td>
    				</tr>
    				<tr>
    					<td><label for="auto_connect">connexion automatique</label></td>
    					<td><input type="checkbox" name="auto_connect" id="auto_connect" checked="checked" /></td>
    				</tr>
    				<tr>
    					<td></td>
    					<td><input type="submit" value="envoyer" /></td>
    				</tr>
    			</table>
    		</form>
    		</diV>
    	</body>
    </html>

    connexion1_post.php :

    <?php
    try
    {
    	$bdd= new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE=> PDO::ERRMODE_EXCEPTION));
    }
    catch(Exception $e)
    {
    	die('Erreur :'. $e->getMessage());
    }
    //si les variables pseudo et pass existe..
    if (isset($_POST['pseudo']) AND isset($_POST['pass']))
    {	//on recherche dans la bdd le id pseudo pass, dont le pseudo...
    	$req=$bdd->prepare('SELECT id, pseudo, pass FROM membres WHERE pseudo= :pseudo');
    	//...correspond à celui envoyé par la variable $_POST['pseudo']
    	$req->execute (array('pseudo'=>$pseudo));
    	//on stocke le resultat dans une variable
    	$resultat=$req->fetch();
    	//on verifie si le mdp correspond à celui dans trouve dans la bdd
    	$SiPasswordCorrect=password_verify($_POST['pass'], $resultat['pass']);
    	//si on ne trouve pas des resultat dans la recherche..
    	if(!$resultat)
    	{
    		echo 'Mauvais identifiant ou mot de passe !';
    	}
    
    	else
    	{
    		if($isPasswordCorrect) 
    		{
    			session_start();
    
    			//si le bouton 'auto-connect' a été coché pendant la connexion..
           		if(isset($_POST['auto_connect']))
           		{
           			setcookie('pseudo', $_SESSION['pseudo'], time()+ 30*24*3600,null,null,false,true);
           			setcookie('pass_hache', $_SESSION['pass_hache'], time()+ 30*24*3600,null,null,false,true);
           			 include("test_cookie1.php");
           		}
           		else
    			{
    				$_SESSION['pseudo'] = $pseudo;
    				$_SESSION['id'] = 	$_resultat['id'];
    
    			}
    
    			echo 'Vous êtes connecté !';
    
    			header("location:blog1.php");
    
    			
    		}
    		// sinon mdp ne correspond pas
    		else
    		{
    			echo 'Mauvais Identifiant ou mot de passe !';
    		}
    	}
    }
    ?>

    test_cookie1.php :

    <?php
    // si il existe des cookies de connexion auto ..
    if(isset($_COOKIE['pseudo']) AND isset($_COOKIE['pass_hache']))
    {
        // on ouvre la base de donnée..
        try
        {
            $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
        }
        // ou, si on ne la trouve pas, on affiche un message d'erreur et on arrete le script.
        catch(Exception $e)
        {
            die('Erreur' .$e->getMessage());
        }
        // on enregistre l'id des membres dont le pseudo et le mot de passe..
        $req = $bdd->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass');
       
        // ..est le même que celui récupéré dans les cookies
       
        $req->execute(array('pseudo' => $_COOKIE['pseudo'], 'pass' => $_COOKIE['pass_hache']));
        
        //on stock dans une variable le resultat de la recherche (TRUE ou FALSE)
        $reponse = $req->fetch();
        // si on trouve un resultat qui correspond ..
        if($reponse == TRUE)
        {
            // ..on creer un pseudo et un mot de passe à la session grace au info des cookies recupérés.
            $_SESSION['pseudo'] = $_COOKIE['pseudo'];
            $_SESSION['pass_hache'] = $_COOKIE['pass_hache'];
        }
        $req->closeCursor();
    }
    // sinon on ne fait rien
     
     
    ?>

    blog1.php :

    <?php
    session_start();
    include('connexion1_post.php');
    ?>
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title>LE BLOG</title>
    		<link href="style.css" rel="stylesheet" />
    	</head>
    	<body>
    		<h1>Bonjour <?php $_SESSION['pseudo']; ?></h1>
    		<p><a href="deconnexion1.php">Déconnexion</a></p>
    	</body>
    </html>

    deconnexion1.php :

    <?php
    session_start();
    
    //suppresion des variables de la session
    
    $_SESSION = array();
    session_destroy();
    
    //Suppression des cookies..
    setcookie('pseudo', '');
    setcookie('pass_hache', '');
    ?>




    • Partager sur Facebook
    • Partager sur Twitter
      1 décembre 2020 à 6:40:47

      Bonjour.

      Ton test ligne 26 sur le traitement est faux car un espace entre le = et ! qui devrait d'ailleurs être !=

      Sinon tu peux aussi préparé ta requête avec la condition sur le pseudo dans la requête. Cela évite de parcourir un certain nombre de membre avant de trouver le bon

      • Partager sur Facebook
      • Partager sur Twitter
        1 décembre 2020 à 16:00:02

        Merci beaucoup! ça y est ! ça marche!.. 

        PS:...je n'ai pas compris préparer la requête avec la condition sur le pseudo dans la requête?

        ...en code ça se représente comment?

        • Partager sur Facebook
        • Partager sur Twitter
          1 décembre 2020 à 18:56:40

          Avec un WHERE pseudo = :pseudo par exemple ou email
          • Partager sur Facebook
          • Partager sur Twitter
            6 décembre 2020 à 23:40:08

            Merci beaucoup,..là j'ai essayé avec un WHERE pseudo dans la requête,..je rencontre 2 soucis:

            1. Si je m'inscris avec un pseudo qui existe déjà, je ne reçois pas le message: "le pseudo est déjà utilisé!",..résultat: le même speudo apparaît en double dans ma bdd.

            2. Quand je me connecte je reçois une fenêtre d'erreur: 

            Bonjour

            ( ! ) Notice: Undefined index: pseudo in C:\wamp64\www\tests\espacemembre1\blog1.php on line 13
            Call Stack
            #TimeMemoryFunctionLocation
            1 0.0004 407464 {main}( ) ...\blog1.php:0

            Déconnexion

            voici mon code: (inscription1_post.php):

            <?php
            //on ouvre la Base de Données
            	try 
            	{
            		$bdd = new PDO ('mysql:host=localhost;dbname=test;charset=utf8', 'root' ,'', array(PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION));
            	}//si on ne la troue pas on envoie un message d'erreur et on arrete le script
            	
            	catch(Exception $e)
            	{
            		die('Erreur:'. $e->getMessage());
            	}
            	
            	// on recherche une variable qui nous dira si pseudo est libre
            	$libre = true;
            	// si tous les variables existent...
            	if(isset($_POST['pseudo']) AND isset($_POST['pass']) AND isset($_POST['mail']))
            	{
            		//on recherche dans la BDD tous les pseudos de la table membres..
            		$req = $bdd ->prepare('SELECT id, pass FROM membres WHERE pseudo = :pseudo');
            
            	// on stock les donnees dans une variable dont que la variable n'est pas lu en entier
            
            		$donnees = $req->fetch();
            		
            		//si le pseudo recupere est different des membre dans la bdd
            			if ($_POST['pseudo']  !=$donnees)
            			{
            				//alors on entre le nouveau pseudo dans la bdd
            				$libre=true;
            
            				//si le password est le meme que le confirme..
            				if($_POST['pass'] == $_POST['verif_pass'])
            				{
            					//...et que l'adresse mail est valide..
            					if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))
            					{
            						//alors on code le mot de pass, on le securise..
            						$pass_hache = password_hash($_POST['pass'], PASSWORD_DEFAULT);
            						//je libere le cursor..
            						$req->closeCursor();
            
            						//..et on cree un nouveau membre, dont la date de la creation se situe maintenant
            						$req = $bdd->prepare('INSERT INTO membres(pseudo, pass, mail, date_inscription)VALUES(:pseudo, :pass, :mail, NOW())');
            						//dont le pseudo et le email sont ceux qui ont ete envoyé et le mot de passe hache
            						$req->execute (array('pseudo'=>$_POST['pseudo'], 'pass'=>$pass_hache, 'mail'=>$_POST['mail']));
            						
            						//avant de nous rediriger vers la page de connexion
            						header ("location: connexion1.php");
            					}
            					else
            					{
            						echo 'Erreur: L\'adresse mail n\'est pas valide !';
            					}
            				}
            				else
            				{
            					echo 'Erreur :les mots de passes ne sont pas identiques !';
            				}
            
            			}
            			else
            			{
            				//sinon le pseudo n'est pas libre
            				$libre=false;
            				//..et on affiche 'pseudo deja utilise'
            				echo 'le pseudo est déjà utilisé !';
            				//puis on arrete de comparer les donnees
            			
            			}
            		
            		
            	}	
            	
            	else
            	{
            		echo 'un des champs n\'est pas rempli !';
            	}
            
            	// j'arrete le curseur de recherche
            		$req->closeCursor();
            ?>

            connexion1.php:

            <!DOCTYPE html>
            <html>
            	<head>
            		<title>CONNEXION</title>
            		<meta charset="utf-8" />
            		<link href="style.css" rel="stylesheet" />
            	</head>
            	<body>
            		<diV align="center">
            		<h1>CONNEXION</h1>
            		<br/>
            		<form method="post" action="connexion1_post.php">
            			<table>
            				<tr>
            					<td><label for="text">Votre Pseudo :</label></td>
            					<td><input type="text" id="pseudo" name="pseudo" value="<?php if(isset($_COOKIE['pseudo'])){echo $_COOKIE['pseudo'];}?>" /></td>
            				</tr>
            				<tr>
            					<td><label for="password">Votre mot de pass :</label></td>
            					<td><input type="password" id="pass" name="pass" value="<?php if(isset($_COOKIE['pass_hache'])){echo $_COOKIE['pass_hache'];}?>" /></td>
            				</tr>
            				<tr>
            					<td><label for="auto_connect">connexion automatique</label></td>
            					<td><input type="checkbox" name="auto_connect" id="auto_connect" checked="checked" /></td>
            				</tr>
            				<tr>
            					<td></td>
            					<td><input type="submit" value="envoyer" /></td>
            				</tr>
            			</table>
            		</form>
            		</diV>
            	</body>
            </html>

            connexion1_post.php:

            <?php
            try
            {
            	$bdd= new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE=> PDO::ERRMODE_EXCEPTION));
            }
            catch(Exception $e)
            {
            	die('Erreur :'. $e->getMessage());
            }
            //si les variables pseudo et pass existe..
            if (isset($_POST['pseudo']) AND isset($_POST['pass']))
            {	//on recherche dans la bdd le id pseudo pass, dont le pseudo...
            	$req=$bdd->prepare('SELECT id, pseudo, pass FROM membres WHERE pseudo= :pseudo');
            	//...correspond à celui envoyé par la variable $_POST['pseudo']
            	$req->execute (array('pseudo'=>$_POST['pseudo']));
            	//on stocke le resultat dans une variable
            	$resultat=$req->fetch();
            	//on verifie si le mdp correspond à celui dans trouve dans la bdd
            	$isPasswordCorrect=password_verify($_POST['pass'], $resultat['pass']);
            	//si on ne trouve pas des resultat dans la recherche..
            	if(!$resultat)
            	{
            		echo 'Mauvais identifiant ou mot de passe !';
            	}
            
            	else
            	{
            		if($isPasswordCorrect) 
            		{
            			session_start();
            
            			//si le bouton 'auto-connect' a été coché pendant la connexion..
                   		if(isset($_POST['auto_connect']))
                   		{
                   			setcookie('pseudo', $_SESSION['pseudo'], time()+ 30*24*3600,null,null,false,true);
                   			setcookie('pass_hache', $_SESSION['pass_hache'], time()+ 30*24*3600,null,null,false,true);
                   			 include("test_cookie1.php");
                   		}
                   		else
            			{
            				$_SESSION['pseudo'] = $resultat['pseudo'];
            				$_SESSION['id'] = 	$resultat['id'];
            
            			}
            
            			echo 'Vous êtes connecté !';
            
            			header("location:blog1.php");
            
            			
            		}
            		// sinon mdp ne correspond pas
            		else
            		{
            			echo 'Mauvais Identifiant ou mot de passe !';
            		}
            	}
            }
            ?>

            test_cookie1.php :

            <?php
            // si il existe des cookies de connexion auto ..
            if(isset($_COOKIE['pseudo']) AND isset($_COOKIE['pass_hache']))
            {
                // on ouvre la base de donnée..
                try
                {
                    $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                }
                // ou, si on ne la trouve pas, on affiche un message d'erreur et on arrete le script.
                catch(Exception $e)
                {
                    die('Erreur' .$e->getMessage());
                }
                // on enregistre l'id des membres dont le pseudo et le mot de passe..
                $req = $bdd->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass');
               
                // ..est le même que celui récupéré dans les cookies
               
                $req->execute(array('pseudo' => $_COOKIE['pseudo'], 'pass' => $_COOKIE['pass_hache']));
                
                //on stock dans une variable le resultat de la recherche (TRUE ou FALSE)
                $reponse = $req->fetch();
                // si on trouve un resultat qui correspond ..
                if($reponse == TRUE)
                {
                    // ..on creer un pseudo et un mot de passe à la session grace au info des cookies recupérés.
                    $_SESSION['pseudo'] = $_COOKIE['pseudo'];
                    $_SESSION['pass_hache'] = $_COOKIE['pass_hache'];
                }
                $req->closeCursor();
            }
            // sinon on ne fait rien
            ?>

            blog1.php:

            <?php
            session_start();
            include('connexion1_post.php');
            ?>
            <!DOCTYPE html>
            <html>
            	<head>
            		<meta charset="utf-8" />
            		<title>LE BLOG</title>
            		<link href="style.css" rel="stylesheet" />
            	</head>
            	<body>
            		<h1>Bonjour <?php $_SESSION['pseudo']; ?></h1>
            		<p><a href="deconnexion1.php">Déconnexion</a></p>
            	</body>
            </html>








            • Partager sur Facebook
            • Partager sur Twitter
              6 décembre 2020 à 23:56:23

              sur le fichier d'inscription, il manque le execute du select (si tu veux un pseudo unique pense également à mettre ce champ en clé unique sur ta bdd)

              ensuite sur connexion1 il faut vérifier le password que si tu un résultat sinon tu auras une erreur (donc tu une ligne à déplacer après le if(!$resultat)

              enfin pour le undefined c'est que le $_SESSION['pseudo'] n'existe pas donc soit il n'est pas rempli soit tu accède à la page blog sans être logé et alors il faut géré ce cas

              • Partager sur Facebook
              • Partager sur Twitter
                11 décembre 2020 à 13:42:37

                Merci j'ai réussi une étape: en me connectant plus de message d'erreur et j'ai corrigé la page de blog.

                Malheureusement: je ne réussi pas à bloquer les pseudos déjà existants dans la BDD si j'inscris un membre;

                donc si j'utilise un pseudo déjà existant pour une inscription, je ne reçois pas le message: le pseudo est déjà utilisé !" et ça me renvoit directement à la page de connexion.

                J'ai pourtant, fait la correction dans "inscription1_post.php" en rajoutant le execute dans SELECT, et dans SELECT j'ai mis pseudo en clé unique,..si

                j'ai bien compris..

                voici mon code:

                <?php
                //on ouvre la Base de Données
                	try 
                	{
                		$bdd = new PDO ('mysql:host=localhost;dbname=test;charset=utf8', 'root' ,'', array(PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION));
                	}//si on ne la troue pas on envoie un message d'erreur et on arrete le script
                	
                	catch(Exception $e)
                	{
                		die('Erreur:'. $e->getMessage());
                	}
                	
                	// on recherche une variable qui nous dira si pseudo est libre
                	$libre = true;
                	// si tous les variables existent...
                	if(isset($_POST['pseudo']) AND isset($_POST['pass']) AND isset($_POST['mail']))
                	{
                		//on recherche dans la BDD tous les pseudos de la table membres..
                		$req = $bdd ->prepare('SELECT pseudo FROM membres WHERE pseudo = :pseudo');
                		$req->execute(array('pseudo'=>$_POST['pseudo']));
                	// on stock les donnees dans une variable dont que la variable n'est pas lu en entier
                
                		$donnees = $req->fetch();
                		
                		//si le pseudo recupere est different des membre dans la bdd
                			if ($_POST['pseudo']  !=$donnees)
                			{
                				//alors on entre le nouveau pseudo dans la bdd
                				$libre=true;
                			
                		
                			
                				//si le password est le meme que le confirme..
                				if($_POST['pass'] == $_POST['verif_pass'])
                				{
                					//...et que l'adresse mail est valide..
                					if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))
                					{
                						//alors on code le mot de pass, on le securise..
                						$pass_hache = password_hash($_POST['pass'], PASSWORD_DEFAULT);
                						//je libere le cursor..
                						$req->closeCursor();
                
                						//..et on cree un nouveau membre, dont la date de la creation se situe maintenant
                						$req = $bdd->prepare('INSERT INTO membres(pseudo, pass, mail, date_inscription)VALUES(:pseudo, :pass, :mail, NOW())');
                						//dont le pseudo et le email sont ceux qui ont ete envoyé et le mot de passe hache
                						$req->execute (array('pseudo'=>$_POST['pseudo'], 'pass'=>$pass_hache, 'mail'=>$_POST['mail']));
                
                						
                						//avant de nous rediriger vers la page de connexion
                						header ("location: connexion1.php");
                					}
                					else
                					{
                						echo 'Erreur: L\'adresse mail n\'est pas valide !';
                					}
                				}
                				else
                				{
                					echo 'Erreur :les mots de passes ne sont pas identiques !';
                				}
                			
                			}
                			else
                			{
                			//sinon le pseudo n'est pas libre
                			$libre=false;
                			//..et on affiche 'pseudo deja utilise'
                			echo 'le pseudo est déjà utilisé !';
                			//puis on arrete de comparer les donnees
                								
                			}
                		
                	}	
                	
                	else
                	{
                		echo 'un des champs n\'est pas rempli !';
                	}
                
                	// j'arrete le curseur de recherche
                		$req->closeCursor();
                ?>
                



                • Partager sur Facebook
                • Partager sur Twitter
                  11 décembre 2020 à 13:43:35

                  > if ($_POST['pseudo'] !=$donnees)

                  C'est plutôt if (!$donnees) parce que là tu compares une chaîne à un tableau ou FALSE.

                  • $libre n'est pas utile si tu ne l'exploites pas ensuite
                  • perso, je n'aurais pas mis de try/catch : en production, si ça plante vraiment, tu vas donner l'erreur à l'utilisateur alors qu'il s'en fout un peu (et ça ne le regarde pas vraiment non plus)
                  • pour la validité de l'adresse mail, je réutiliserais ce que PHP me propose : filter_var plutôt que créer ma propre regexp au risque de refuser des adresses pourtant valides
                  • avec ton imbrication de if, l'utilisateur doit corriger les erreurs de validation l'une après l'autre au lieu de toute en même temps :/

                  -
                  Edité par julp 11 décembre 2020 à 13:50:10

                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 décembre 2020 à 0:51:55

                    Merci beaucoup! ça marche avec la correction if (!donnees),

                    ...je ne comprends pas pourquoi je ne dois pas mettre try/catch? en production? je l'ai mis sur la page inscription1_post.php. Je dois ouvrir la base de données pour entrer les nouvelles entrées pourtant.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 décembre 2020 à 1:49:58

                      Je voulais dire que du try/catch, tu ne gardais que le contenu (la connexion) du try et tu supprimais le reste.

                      • Partager sur Facebook
                      • Partager sur Twitter

                      TP/Créer un espace membres

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown