Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP espace membres

Aide page inscription

    19 mai 2019 à 16:20:36

    Bonjour, je suis débutant en PHP et je bloque au niveau de la page d'inscription.

    Le test pour les champs du formulaire fonctionne bien mais rien ne s'enregistre dans ma base de donnée?

    Est-ce que quelqu'un peut m'aider?? 

    <?php
    
    try{
    	$bdd = new PDO('mysql:host=localhost; dbname=tp_espace_membres;charset=utf8','root','root');
    }
    catch(Exception $e)
    {
    	die('Erreur : ' .$e->getMessage());
    }
    
    
    //test formulaire remplie
    if (isset($_POST['sumit'])) 
    {
    	//test mail
    	if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))
        {
    		//test pseudo libre
    		$reponse = $bdd->query('SELECT pseudo FROM espace_membres WHERE pseudo="'.$_POST['pseudo']. '"');
    		$login = $reponse->fetch();
    		if (strtolower($_POST['pseudo']) != strtolower($login['pseudo'])) 
    		{
    
    			//tes mp idem
    			if ($_POST['pass'] == $_POST['re_pass']) 
    			{
    			
    			// insertion bdd
    			$req = $bdd->prepare('INSERT INTO espace_membres (pseudo, pass, mail, date_inscription) VALUES (?,?,?, NOW())');
    			$ins = $req->execute(array($_POST['pseudo'], $_POST['pass'], $_POST['mail']));
    			}
    			else{
    				echo "les mots de passes ne sont pas identiques";
    			}
    		}
    		else{
    			echo "pseudo déja pris";
    		}
    	}
    	else{
    		echo "mail invalide";
    	}
    }			
    else {
    	echo "Tous les champs ne sont pas remplis !";
    }
    
    ?>
    <?php
    • Partager sur Facebook
    • Partager sur Twitter
      19 mai 2019 à 17:09:08

      Activer les erreurs PDO/SQL

      • évite strtolower avec de l'UTF-8, elle n'est pas compatible. De toute façon, un tel test est inutile si l'interclassement associé à la colonne pseudo est insensible à la casse. En plus c'est plutôt le fait que $login ne vaut pas FALSE qu'il faut tester (et ça suffira).
      • il y a une injection SQL sur ton SELECT

      -
      Edité par julp 19 mai 2019 à 17:11:32

      • Partager sur Facebook
      • Partager sur Twitter
        19 mai 2019 à 18:44:17

        Bonjour,

        En plus de ce qui est dit, je pense que tu as une erreur ligne 13. est-ce bien "sumit" ?

        • Partager sur Facebook
        • Partager sur Twitter
          19 mai 2019 à 19:26:14

          Un grand merci pour votre aide!

          J'ai pas encore fini mais vos réponses m'aident bien!

          • Partager sur Facebook
          • Partager sur Twitter

          TP 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