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 :

Pas d'enregistrement dans ma base de donnée


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 4
    Par défaut Pas d'enregistrement dans ma base de donnée
    Bonsoir !
    Je n'ai pas d'enregistrement dans ma base de donnée, c'est une page d'inscription, quand je rentre les informations pour m'inscrire je n'ai aucune erreurs elle me redirige juste sur la page d'inscription mais quand je vais pour vérifier dans la base de donnée aucune informations n'est rentré.


    J'ai besoin d'une aide au plus vite
    Images attachées Images attachées     

  2. #2
    Membre éclairé Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Par défaut
    Hello Jnz9800,
    je comprend que tu soit nouveau , prend quelques minutes pour lire les règles du forum .le code doit etre poster dans les balise CODE et non faire des captures d'ecran .
    https://club.developpez.com/regles/#LIII-E
    à l'avenir evite ce genre de phrase
    J'ai besoin d'une aide au plus vite
    en ce qui concerne ton probleme il faut deja activer les erreur PDO , avec le message d'erreur et ton code poster on pourra t'aider .
    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
     
    try {
            $conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8mb4", $username, $password,
                        array(
                                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,  // set the PDO error mode to exception          
                                PDO::ATTR_PERSISTENT => false,
                                PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"
                            )
                        );        
        //echo "connexion pdo réussi ";
      	}
    catch(PDOException $e)
        {
        echo 'Erreur de Connexion'. "<br>" . $e->getMessage();
        }
    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 4
    Par défaut re
    Re,
    Effectivement je n'avais pas pris le temps de lire les règles du forum avant de poster, veuillez m'en excuser à tout les lecteurs qui avaient pris le temps de lire ma demande.

    J'ai fait ce que tu m'as dit, du coup j'ai écrit le code et il n'y as pas d'erreur, il me dit bien connexion pdo réussi quand je met le écho (il reste par contre une fraction de seconde j'ai pas le temps de lire il fallait que je fasse un screen pour lire)

    Voici du coup les codes :

    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
    <?php
                    session_start();
     
     
       $bdd = new PDO('mysql:host=localhost;dbname=aliloc','root','');
     
                   if(isset($_POST['forminscription'])) {
       $Pseudo = htmlspecialchars($_POST['Pseudo']);
       $Email = htmlspecialchars($_POST['Email']);
       $Email2 = htmlspecialchars($_POST['Email2']);
       $Mdp = sha1($_POST['Mdp']);
       $Mdp2 = sha1($_POST['Mdp2']);
       if(!empty($_POST['Pseudo']) AND !empty($_POST['Email']) AND !empty($_POST['Email2']) AND !empty($_POST['Mdp']) AND !empty($_POST['Mdp2'])) {
          $pseudolength = strlen($Pseudo);
          if($pseudolength <= 255) {
             if($Email == $Email2) {
                if(filter_var($Email, FILTER_VALIDATE_EMAIL)) {
                   $reqmail = $bdd->prepare("SELECT * FROM inscrit WHERE Email = ?");
                   $reqmail->execute(array($Email));
                   $mailexist = $reqmail->rowCount();
                   if($mailexist == 0) {
                      if($Mdp == $Mdp2) {
                         $insertmbr = $bdd->prepare("INSERT INTO inscrit (Pseudo, Email, Mdp) VALUES(?, ?, ?)");
                         $insertmbr->execute(array($Pseudo, $Email, $Mdp));
                         $erreur = "Votre compte a bien été créé ! <a href=\"contacts.html.php\">Me connecter</a>";
                      } else {
                         $erreur = "Vos mots de passes ne correspondent pas !";
                      }
                   } else {
                      $erreur = "Adresse mail déjà utilisée !";
                   }
                } else {
                   $erreur = "Votre adresse mail n'est pas valide !";
                }
             } else {
                $erreur = "Vos adresses mail ne correspondent pas !";
             }
          } else {
             $erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
          }
       } else {
          $erreur = "Tous les champs doivent être complétés !";
       }
    }
    ?>
     
     
    <form method="post" action="inscription.php?step=1" >
     
                  <div class="wrapper">
            <article class="col1">
              <div class="pad2">
     
                      <label class="pad2" for="Nom">Nom</label> 
                      <input type="text" id="Nom" name="Nom" class="form-control">
                    </div>
                  </div>
     
                  <div class="row form-group">
                    <div class="col-md-12">
                      <label class="text-black" for="prenom">Prénom</label> 
                      <input type="text" id="subject" name="Prenom" class="form-control">
                    </div>
                  </div>
     
     
                      <label class="text-black" for="pseudo">Pseudo</label> 
                      <input type="text" id="subject" name="Pseudo" class="form-control">
                    </div>
                  </div>
     
     
     
                      <label class="text-black" for="mail">Mail</label> 
                      <input type="text" name="Email" class="form-control">
                    </div>
                  </div>
     
     
     
     
                      <label class="text-black" for="mail">Confirmation du Mail</label> 
                      <input type="text" name="Email2" class="form-control">
                    </div>
                  </div>
     
     
     
     
                      <label class="text-black" for="subject">Mot de Passe</label> 
                      <input type="password" id="subject" name="Mdp" class="form-control">
                    </div>
                  </div>
     
     
     
                      <label class="text-black" for="subject">Confirmation Mot de Passe</label> 
                      <input type="password" id="subject" name="Mdp2" class="form-control">
                    </div>
                  </div>
     
     
     
                      <p>Avez-vous déjà un compte ? <a href="login.html.php">Login</a></p>
                    </div>
                  </div>
     
     
                      <input type="submit" value="S'inscrire" name="forminscription">
                    </div>
                  </div>
     
                 <center><a href="index.html" class="Retour">Retour à l'accueil</a></center> 
     
     
                </form>
                 <?php 
                if(isset($erreur))
                {
     
                  echo '<font color="red">'.$erreur."</font>";
     
                }
    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
    spl_autoload_register('chargerModel');
     
    	$managercp = new ManagerCP();
     
    	if (!isset($_GET["step"])) 
    	{
    		$code_postale = $managercp->getALL();
     
    		// View
    		require "register.html.php";
    		//require "../../view/membre/form/inscription.php";
    	}
    	else 
    	{
    		$Nom = $_POST["Nom"];
    		$Prenom = $_POST["Prenom"];
    		$Pseudo = $_POST["Pseudo"];
    		$Email = $_POST["Email"];
    		$Mdp = $_POST["Mdp"];
     
    		$managerinscrit = new ManagerInscrit();
     
    		$managerinscrit->insert($Nom, $Prenom, $Pseudo, $Email, $Mdp);
    	}
     
    ?>
    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
    <?php
     
    	include "model/class/inscrit.php";
     
    	class ManagerInscrit
    	{
    		private $_db;
     
    		public function __construct()
    	    {
    	    	$this->_db = new ConnexionDB();
    	    }
     
    	    public function insert($Nom, $Prenom, $Pseudo, $Email, $Mdp)
    	    {
     
     
    		    try {
    		    	$requete = "insert into inscrit (Nom, Prenom, Pseudo, Email, Mdp) values ('".$Nom."', '".$Prenom."', '".$Pseudo."', '".$Email."', '".$Mdp."')";
     
     
    		    	//echo $requete;
     
    		    	$reponse = $this->_db->getDB()->query($requete);
     
    		    	echo "<meta http-equiv='refresh' content='0; URL=inscription.php'>";
     
    		    } catch (Exception $e) {
    		    	echo $e->getMessage();
    		    }
    	    }
    	}
     
    ?>

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    salut,

    on n'utilise pas htmlspecialchars(); pour échapper des données à persister. Tu utilises déjà le mécanisme de préparation de PDO, tes données sont échappées pour la base de données. Par contre pour échapper les données à l'affichage, tu dois utiliser htmlspecialchars();.

    Pour ta cuisine avec les mots de passe, je te conseille très fortement de l'abandonner au profit du support natif offert par PHP pour ce genre de fonctionnalité : Fonctions de hachage de mot de passe

    T'es sûr de ton coup ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $erreur = "Votre compte a bien été créé ! <a href=\"contacts.html.php\">Me connecter</a>";
    Pour ce qui du traitement d'un formulaire et sa soumission avec le même script c'est un peu plus compliqué : tiens regarde PRINCIPE de FORMULAIRE et TRAITEMENT sur la même page

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 4
    Par défaut re
    Re bonsoir,
    je n'ai pas très bien compris ce que tu m'as dit concernant le htmlspecialchars(), que dois-je faire réellement pour régler mon soucis d'enregistrement dans la base de donnée ? J'ai été regarder les liens que tu as envoyés (sinon un amis à exactement le même formulaire ainsi que le script php et pour lui ça enregistre bien on a juste pas la même base de donnée)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 4
    Par défaut ree
    Edit : Il fallait juste que je supprimes les tables inutiles maintenant l'inscription fonctionne.

    J'ai un autre problème, maintenant je suis passé à la page de connexion donc quand je rentre les informations de connexion (mail et mot de passe) rien ne se passe alors que je dois être normalement redirigé sur ma page d'édition de profil

    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
    <?php
     
       session_start();
     
     
       $bdd = new PDO('mysql:host=localhost;dbname=aliloc','root', '');
     
     
     
      //On va vérifier si la variable est bien sité
      if(isset($_POST['formconnexion']))
      {
        $Email =htmlspecialchars($_POST['Email']);
        $Mdp =($_POST['Mdp']);
     
        if(!empty($Email) AND !empty($Mdp))
        {
     
          //Ma requete sélectionne dans ma bdd si l'utilisateur est déjà enregistrer ou pas
          $req = $bdd->prepare("SELECT * FROM inscrit WHERE Email = ? AND Mdp = ?");
          $req->execute(array($Email, $Mdp));
          $userexist = $req->rowCount();
          if($userexist == 1)
          {
            $userinfo = $req->fetch();
            $_SESSION['id'] = $userinfo['id'];
            $_SESSION['Pseudo'] = $userinfo['Pseudo'];
            $_SESSION['Email'] = $userinfo['Email'];
            $_SESSION['Nom'] = $userinfo['Nom'];
            $_SESSION['Prenom'] = $userinfo['Prenom'];
     
     
            header("Location: profil.html.php?id=".$_SESSION['id']);
          }
          else
          {
            $erreur = "Mauvais mail ou mot de passe !";
          }
        }
        else
        {
          $erreur = "Tous les champs doivent être complétés !";
        }   
      }
    ?>
     
                <form method="POST"  action="" class="pad2">
     
                  <div class="pad2">
     
                      <label class="pad_bot2" for="Email">Email</label> 
                      <input type="email" name="Email" class="pad_bot2">
     
     
     
     
                      <label class="pad_bot2" for="Mdp">Mot de Passe</label> 
                      <input type="password" name="Mdp" class="pad_bot2">
                    </div>  
     
                  <input type="submit" name="formconnexion" value="Connexion"> 
     
     
                      <p>Pas encore de compte ? <a href="register.html.php">S'inscrire</a></p>
     
            </form>
            <?php 
                if(isset($erreur))
                {
     
                  echo '<font color="red">'.$erreur."</font>";
     
                }
    ?>
    </div>
            </article>
     
          </div>

  7. #7
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par Jnz9800 Voir le message
    je n'ai pas très bien compris ce que tu m'as dit concernant le htmlspecialchars()
    la fonction htmlspecialchars() est destinées à échapper des données qui vont être envoyées au navigateur et pas dans une base de données.
    Pour sécuriser des données avant de les envoyer dans une base de données (ça s'appelle la persistance), il existe des mécanismes spécifiques à chaque moteur de base de données. En PHP, tout est unifié sous un objet global appelé PDO (PHP Data Object)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/02/2007, 00h37
  2. Réponses: 1
    Dernier message: 30/07/2006, 20h02
  3. enregistrer dans une base de données
    Par liverbird dans le forum C++Builder
    Réponses: 33
    Dernier message: 12/07/2006, 19h50
  4. [MySQL] Enregistrer dans une base de données à partir d'une liste déroulante
    Par snakejl dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 17/05/2006, 16h32
  5. inscription via le web et enregistrement dans une base de données
    Par titoenis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 17/05/2006, 09h20

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