Résolu

Connexion SQL

Bonjour,


Je suis les tutos pour la création d'un site (de rencontres) et je suis à l'étape du formulaire d'inscription ! Ma base de donnée se connecte sans problèmes à mon php etc... Cependant lorsque je valide le formulaire, je n'ai aucune erreur et ma table "utilisateur" donc est vide, rien ne s'affiche ! Si vous pouviez m'aider svp. Merci et bonne journée

522 vues
22 janvier 2022 à 15:47
Cette pub permet au site de vivre ...
Compte-supprimé
Le 24 Janvier 2022 à 07:01

Okay je vois, je vais tester ce que tu m’as dit ! Merci

Cette pub permet au site de vivre ...

7 commentaires

Okay je vois, je vais tester ce que tu m’as dit ! Merci

Re @Gendrex !


Alors j'ai trouvé le soucis :)

Tu as copié-collé le code sur sitedudev au lieu de le télécharger

Ce qui nous donne quelque chose comme ça sur Visual Studio Code :


Ce sont donc des espaces invibles. Le PHP n'est donc pas interprété par ton navigateur.

Je te conseille donc de télécharger le code source directement.

Bonne soirée 😀

Ah excuse moi !


Voici ma table utilisateur :


-- phpMyAdmin SQL Dump
-- version 5.1.1
-- https://www.phpmyadmin.net/
--
-- Hôte : 127.0.0.1
-- Généré le : dim. 23 jan. 2022 à 18:30
-- Version du serveur : 10.4.22-MariaDB
-- Version de PHP : 8.1.1


SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";



/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;


--
-- Base de données : `site1`
--


-- --------------------------------------------------------


--
-- Structure de la table `utilisateur`
--


CREATE TABLE `utilisateur` (
  `id` int(25) UNSIGNED NOT NULL,
  `pseudo` varchar(50) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `password` text NOT NULL,
  `date_naissance` date NOT NULL,
  `canton` int(255) NOT NULL,
  `date_inscription` datetime NOT NULL,
  `date_connexion` datetime NOT NULL,
  `statut` int(2) DEFAULT 0,
  `role` int(11) DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


--
-- Index pour les tables déchargées
--


--
-- Index pour la table `utilisateur`
--
ALTER TABLE `utilisateur`
  ADD PRIMARY KEY (`id`);
COMMIT;


/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;



Et voici le côté HTML de mon inscription.php (je te le remets en entier avec le php) :


<?php
    include_once('db/connexiondb.php');


    if(!empty($_POST)){
        extract($_POST);
        $valid = true;


        if(isset($_POST['inscription'])){
            $pseudo = (String) trim($pseudo);
            $mail = (String) trim($mail);
            $password = (String) trim($password);
            $jour = (int) $jour;
            $mois = (int) $mois;
            $annee = (int) $annee;
            $canton = (int) $canton;
            $date_naissance = (String) null;


            if(empty($pseudo)){
                $valid = false;
                $err_pseudo = "Veuillez renseigner ce champ !";
            }


            if(empty($mail)){
                $valid = false;
                $err_mail = "Veuillez renseigner ce champ !";
            }


            if(empty($password)){
                $valid = false;
                $err_password = "Veuillez renseigner ce champ !";
            }


            $verif_jour = array(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);


            if(in_array($jour, $verif_jour)){
                $valid = false;
                $err_jour = "Veuillez renseigner ce champ !";
            }


            $verif_mois = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);


            if(in_array($mois, $verif_mois)){
                $valid = false;
                $err_mois = "Veuillez renseigner ce champ !";
            }


            $verif_annee = array(1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010);


            if(in_array($annee, $verif_annee)){
                $valid = false;
                $err_annee = "Veuillez renseigner ce champ !";
            }


            if(!checkdate($mois, $jour, $annee)){
                $valid = false;
                $err_date = "Date Fausse";
            }else{
                $date_naissance = $annee . '-' . $mois . '-' . $jour;
            }


            $verif_canton = array(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);


            if(in_array($canton, $verif_canton)){
                $valid = false;
                $err_canton = "Veuillez renseigner ce champ !";
            }


            if($valid){
                $date_inscription = date("Y-m-d");


                $req = $BDD->prepare("INSERT INTO utilisateur (pseudo, mail, password, date_naissance, canton, date_inscription, date_connexion)
                    VALUES ( ?, ?, ?, ?, ?, ?, ?)");


                $req->execute(array($pseudo, $mail, $password, $date_naissance, $canton, $date_inscription, $date_connexion));


            }
        }
    }


?>
<!doctype html>
<html lang="en">
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">


        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">


        <link rel="stylesheet" href="style.css">
        
        
        
        <title>Inscription</title>
    </head>
    <body>
        <?php
            require_once('menu.php');
        ?>


        <h1>Inscription</h1>


        <form method="post">
            <section>
                <div>
                    <?php
                        if(isset($err_pseudo)){
                            echo $err_pseudo;
                        }
                    ?>
                    <input type="text" name="pseudo" placeholder="Pseudo">
                </div>
                <div>
                    <input type="text" name="mail" placeholder="Mail">
                </div>
                <div>
                    <input type="password" name="password" placeholder="Mot de passe">
                </div>
                <div>
                    <select name="jour">
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                        <option value="4">4</option>
                        <option value="5">5</option>
                        <option value="6">6</option>
                        <option value="7">7</option>
                        <option value="8">8</option>
                        <option value="9">9</option>
                        <option value="10">10</option>
                        <option value="11">11</option>
                        <option value="12">12</option>
                        <option value="13">13</option>
                        <option value="14">14</option>
                        <option value="15">15</option>
                        <option value="16">16</option>
                        <option value="17">17</option>
                        <option value="18">18</option>
                        <option value="19">19</option>
                        <option value="20">20</option>
                        <option value="21">21</option>
                        <option value="22">22</option>
                        <option value="23">23</option>
                        <option value="24">24</option>
                        <option value="25">25</option>
                        <option value="26">26</option>
                        <option value="27">27</option>
                        <option value="28">28</option>
                        <option value="29">29</option>
                        <option value="30">30</option>
                        <option value="31">31</option>


                    </select>
                    <select name="mois">
                        <option value="1">Janvier</option>
                        <option value="2">Février</option>
                        <option value="3">Mars</option>
                        <option value="4">Avril</option>
                        <option value="5">Mai</option>
                        <option value="6">Juin</option>
                        <option value="7">Juillet</option>
                        <option value="8">Août</option>
                        <option value="9">Septembre</option>
                        <option value="10">Octobre</option>
                        <option value="11">Novembre</option>
                        <option value="12">Décembre</option>
                    </select>
                    <select name="annee">
                        <option value="1990">1990</option>
                        <option value="1991">1991</option>
                        <option value="1992">1992</option>
                        <option value="1993">1993</option>
                        <option value="1994">1994</option>
                        <option value="1995">1995</option>
                        <option value="1996">1996</option>
                        <option value="1997">1997</option>
                        <option value="1998">1998</option>
                        <option value="1999">1999</option>
                        <option value="2000">2000</option>
                        <option value="2001">2001</option>
                        <option value="2002">2002</option>
                        <option value="2003">2003</option>
                        <option value="2004">2004</option>
                        <option value="2005">2005</option>
                        <option value="2006">2006</option>
                        <option value="2007">2007</option>
                        <option value="2008">2008</option>
                        <option value="2009">2009</option>
                        <option value="2010">2010</option>
                    </select>
                    </div>
                    <div>
                    <select name="canton">
                        <option value="1">Argovie (AG)</option>
                        <option value="2">Appenzell Rhodes-Intérieures (AI)</option>
                        <option value="3">Appenzell Rhodes-Extérieures (AR)</option>
                        <option value="4">Berne (BE)</option>
                        <option value="5">Bâle-Campagne (BL)</option>
                        <option value="6">Bâle-Ville (BS)</option>
                        <option value="7">Fribourg (FR)</option>
                        <option value="8">Genève (GE)</option>
                        <option value="9">Glaris (GL)</option>
                        <option value="10">Grisons (GR)</option>
                        <option value="11">Jura (JU)</option>
                        <option value="12">Lucerne (LU)</option>
                        <option value="13">Neuchâtel (NE)</option>
                        <option value="14">Nidwald (NW)</option>
                        <option value="15">Obwald (OW)</option>
                        <option value="16">Saint-Gall (SG)</option>
                        <option value="17">Schaffhouse (SH)</option>
                        <option value="18">Soleure (SO)</option>
                        <option value="19">Schwytz (SZ)</option>
                        <option value="20">Thurgovie (TG)</option>
                        <option value="21">Tessin (TI)</option>
                        <option value="22">Uri (UR)</option>
                        <option value="23">Vaud (VD)</option>
                        <option value="24">Valais (VS)</option>
                        <option value="25">Zoug (ZG)</option>
                        <option value="26">Zurich (ZH)</option>
                    </select>
                    </div>


            </section>
            
            <input type="submit" name="inscription" value="S'inscrire">
        </form>


        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
    </body>
</html>

J'espère que tu auras tout pour essayer de m'aider ! Merci à toi


Salut @Gendrex,


Tu ne m'as pas partagé ton SQL (tu exportes ta tables utilisateur) et le côté HTML.

Comme ça j'aurai tout, et je vais pouvoir trouver l'erreur plus facilement de mon côté.


En attendant ta réponse 😁

Bonjour @Gendrex,


Pense à utiliser les balises </> lorsque tu souhaites insérer du code (j'ai rééditer ton commentaire) 😉

Salut @Flomir


J'avais terminé la vidéo : "Formulaire d'inscription en PHP 1/1".

Je faisais le test pour mon formulaire d'inscription mais rien n'apparaît dans la bdd.


voici mon fichier connexiondb.php :


<?php
  //Déclaration d'une nouvelle classe
  class connexionDB {
    private $host = 'localhost'//nom de l'host
    private $name = 'site1';   //nom de la base de donnée
    private $user = 'root';   //utilisateur
    private $pass = '';   //mot de passe ('' sous windows)
    private $connexion;

    function __construct($host = null, $name = null, $user = null, $pass = null){
      if($host != null){
        $this->host = $host;
        $this->name = $name;
        $this->user = $user;
        $this->pass = $pass;
      }
      try{
        $this->connexion = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->name,
          $this->user, $this->pass, array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8MB4',
          PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
      }catch (PDOException $e){
        echo 'Erreur : impossible de se connecter à la BDD !';
        die();
      }
    }

    public function connexion(){
      return $this->connexion;
    }
  }

  $DB = new connexionDB;
  $BDD = $DB->connexion();

?>


Et voici le code dans la partie inscription.php :


<?php
  include_once('db/connexiondb.php');

  if(!empty($_POST)){
    extract($_POST);
    $valid = true;

    if(isset($_POST['inscription'])){
      $pseudo = (String) trim($pseudo);
      $mail = (String) trim($mail);
      $password = (String) trim($password);
      $jour = (int) $jour;
      $mois = (int) $mois;
      $annee = (int) $annee;
      $canton = (int) $canton;
      $date_naissance = (String) null;

      if(empty($pseudo)){
        $valid = false;
        $err_pseudo = "Veuillez renseigner ce champ !";
      }

      if(empty($mail)){
        $valid = false;
        $err_mail = "Veuillez renseigner ce champ !";
      }

      if(empty($password)){
        $valid = false;
        $err_password = "Veuillez renseigner ce champ !";
      }

      $verif_jour = array(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);

      if(in_array($jour, $verif_jour)){
        $valid = false;
        $err_jour = "Veuillez renseigner ce champ !";
      }

      $verif_mois = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);

      if(in_array($mois, $verif_mois)){
        $valid = false;
        $err_mois = "Veuillez renseigner ce champ !";
      }

      $verif_annee = array(1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010);

      if(in_array($annee, $verif_annee)){
        $valid = false;
        $err_annee = "Veuillez renseigner ce champ !";
      }

      if(!checkdate($mois, $jour, $annee)){
        $valid = false;
        $err_date = "Date Fausse";
      }else{
        $date_naissance = $annee . '-' . $mois . '-' . $jour;
      }

      $verif_canton = array(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);

      if(in_array($canton, $verif_canton)){
        $valid = false;
        $err_canton = "Veuillez renseigner ce champ !";
      }

      if($valid){
        $date_inscription = date("Y-m-d");

        $req = $BDD->prepare("INSERT INTO utilisateur (pseudo, mail, password, date_naissance, canton, date_inscription, date_connexion)
          VALUES ( ?, ?, ?, ?, ?, ?, ?)");

        $req->execute(array($pseudo, $mail, $password, $date_naissance, $canton, $date_inscription, $date_connexion));

      }
    }
  }

?>


J'espère que tu auras eu assez de détails pour pouvoir m'éclairer ! Merci et bonne journée

Bonsoir @Gendrex 😀


Si tu peux nous donner plus d'infos, comme ta bdd, la vidéo que tu as suivi, ton code source...


Avec tout ça, on va pouvoir commencer à t'aider 🙂

Cette pub permet au site de vivre ...