Annonce

Réduire
Aucune annonce.

problème avec un formulaire de remplissage de base de donnée en php

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • #16
    problème avec un formulaire de remplissage de base de donnée en php

    Alors j'ai complètement remanier mon code avec vos conseil, j'ai réussi à faire ce de formulaire ^^ j'ai bien avancer sur mon projet, je bloque juste sur une chose, une fonction qui permet de rechercher dans une base de donnée. Je bloque un peut


    Pour le mvc j'aimerais comprendre comment imaginer la structure de mon appli et comment raisonner efficacement pour être efficace
    Dernière modification par Defy, 22 mars 2014, 22h46.

    Commentaire


    • #17
      Salut je te recommanderai d'utiliser les filtres sur les données transmissent par l'utilisateur. Grand avantage pour les gros formulaires (jeu de mot) au niveau du code les tests issets + empty et compagnie sa peut devenir lourd (décidement) et on s'y retrouve beaucoup mieux ainsi
      Code HTML:
      <form method="post" action="registry.php"> 
      	<fieldset>
      		<legend> PANNEL D'INSCRIPTION </legend>
       <p>
      	<label for="user">Nom d'utilisateur :</label> <input type="text" name="user" id="user" maxlength="255"/> </br>
      	<label for="mdp">Mot de passe :</label> <input type="password" name="mdp" id="mdp" maxlength="25"/> </br>
      	<label for="email">E-Mail :</label> <input type="text" name="email" id="email"/> </br>
      <input type="submit" id="submit" name="submit" value="Envoyer" />
       </p>
      	</fieldset>
      Un simple formulaire d'inscription ( Pseudo, Mot de passe, E-mail ) que je traite sur registry.php

      Code PHP:
      <?php 
      $filters
      = array('user'=>FILTER_SANITIZE_STRING,'mdp'=>FILTER_UNSAFE_RAW,'email'=>array('filter'=>FILTER_VALIDATE_EMAIL,'flag'=>FILTER_NULL_ON_FAILURE));
      $filter_formfilter_input_array(INPUT_POST,$filters);

      if (
      in_array(null$filter_form))  { echo (' Formulaire mal rempli ! '); } // Tu peux faire une redirection sur ton formulaire d'inscription

      else {
      $bdd = new PDO ('mysql:host=127.0.0.1;dbname=Hackademics','root','');
          
      $Registry $bdd->prepare('INSERT INTO members (User,Passwd,Mail) VALUES (?,?,?)');    
          
      $Registry->execute(array($filter_form['user'],sha1($filter_form['mdp']),$filter_form['email']));
          
      $Registry->closeCursor();
          
      header('Location:index.php');
          }
      ?>
      Rien de sorcier, sur ma première ligne $filters définie les options de filtres dans un tableau à appliquer sur mes variables transmissent par mon formulaire. Je les récupères dans ma variable $filter_form qui est un autre tableau qui aura nettoyé tout les caractères interdits des variables POST et qui me renvoi Null si jamais un de mes champs n'a pas était rempli correctement (c'est le cas pour l'email qui de base aurait renvoyer false car il est définie mais ne contient pas les caractères d'un email standard, c'est pour cela qu'on ajoute un "drapeau" pour dire que si sa échoue il renvoi Null et pas false) ou bien si mes champs n'ont pas étaient remplis directement.

      Sinon si il me renvoi autre chose que NULL, mon formulaire est rempli correctement donc on passe à l'enregistrement dans ma BDD

      Je récupéré les 3 clés de mon tableau $filter_form qui m'intéressent en utilisant l’algorithme sha1 pour mon password
      Code PHP:
      $filter_form['user'] , sha1$filter_form['mdp'] ) , $filter_form ['email'
      J'exécute le tout dans ma requête préparée, puis je peux faire une redirection vers mon index. Pour ton pannel de connexion tu pourras ajouter une variable $_SESSION['Logged'] par exemple qui vaut true si tout c'est bien passé et False par défault. On pourra s'en servir pour voir si notre membre est authentifier ou non.
      Dernière modification par -Tensei-, 04 juillet 2014, 03h47.

      Commentaire

      Chargement...
      X