PHP

L'envoi ne se fait pas dans la BDD

Non Résolu

Bonjour je suis actuellement entrain de suivre la formation pour le formulaire d'inscription hors je rencontre un probleme j'ai suivi le tuto mais rien ne s'envoi dans la BDD j'ai beau lire et relires je ne trouve pas l'erreur si défoit quelqu'un pourrait m'aider : Merci ! :)


session_start();
include('config.php');


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


  if(isset($_POST['inscription'])){
    $pseudo = trim($pseudo);
    $mail = trim($mail);
    $confmail = trim($confmail);
    $password = trim($password);
    $confpassword = trim($confpassword);


    if(empty($pseudo)){
        $valid = false;
        $err_pseudo = "ce champ ne peut etre vide";
    }else{
      $req = $DB->prepare("SELECT id
      FROM utilisateur
      WHERE pseudo = ?");


      $req->execute(array($pseudo));


      $req = $req->fetch();


      if(isset($req['id'])){
        $valid = false;
        $err_pseudo = "Ce pseudo est déjà pris";
      }
    }  
    if(empty($mail)){
      $valid = false;
      $err_mail = "ce champ ne peut etre vide";


    }elseif($mail <> $confmail){
        $valid = false;
        $err_mail = "le mail est differents de la confirmation";


    }else{
      $req = $DB->prepare("SELECT id
      FROM utilisateur
      WHERE mail = ?");


      $req->execute(array($mail));


      $req = $req->fetch();


      if(isset($req['id'])){
        $valid = false;
        $err_mail = "Ce mail est déjà pris";
      }
    }


    if(empty($password)){
      $valid = false;
      $err_password = "le champ ne peut etre vide";


    }elseif($password <> $confpassword){
      $valid = false;
      $err_password = "Les deux mot de passe ne coresponde pas";
      }
     


      if($valid){


        $crypt_password = password_hash($password, PASSWORD_ARGON2ID);
        $date_creation = date('Y-m-d H:i:s');
        $req = $DB->prepare("INSERT INTO utilisateur(pseudo, mail, mdp, date_creation, date_connexion) VALUES (?, ?, ?, ?, ?)");
        $req->execute(array($pseudo, $mail, $crypt_password, $date_creation, $date_creation));


       // header('Location: index.php');
        echo 'test';


        exit;


        
      }
      }
      }
77 vues
07 février 2025 à 22:27 (Édité)
Cette pub permet au site de vivre ...

11 commentaires

Bonjour @Jerem971 alors effectivement la class construct j'en n'est bien 2 j'avais mis 1 pour essayer si je n'avais pas une erreur la.


avant de dire que j'ai suivi a la va vite comme vous dite j'ai refais les tutoriels 5 fois, refait a chaque les codes de 0 pour voir si j'avais pas louper quelque chose avant de demande de l'aide.


je ferme le topics je vais me debrouiller.

Re:


Lorsque tu postes du code dans ton topic ou dans l'espace commentaires, pensent à toujours utiliser les balises mises à disposition pour une bonne lisibilité. Tu peux t'aider de ce topic concernant les différentes balises du forum. (J'ai réédité ton commentaire)


Concernant ton code, de ce que je constate après l'avoir analysé, c'est qu'il contient beaucoup d'erreurs de syntaxe. Mon collègue @Flomir t'as déjà donné une piste au niveau de ta classe, et après avoir visionné la vidéo, il y a bien un double underscore sur celle-ci. J'en conclus que tu as suivis le tutoriel surement à la va-vite, ce qui fait qu'il y a la présence d'erreurs de syntaxe. Il faut que tu visionnes le tutoriel attentivement et sans passer aucun passage et également écouter les recommandations de @Clouderdans la vidéo. Tu corrigeras comme cela un grand nombre d'erreurs.


Pour voir les erreurs PHP, si tu utilises XAMPP, tu peux voir le fichier log dans l'emplacement suivant : C:\xampp\apache\logs\error.log

ca me fait page blanche mais aucune erreur n'apparait

Tu n'as pas de problème de base de données quand tu regardes ta page config.php sur ton navigateur ??

et j'ai beau mettre des echo a chaque fin de programme aucun ne saffiche


j'ai mis le deuxieme mais ca na rien changer


Hello @Theo61,


Ta classe __construct doit être constituée de deux underscores. Tu en as mis qu'un seul.


Cela pourrait déjà corriger un problème.

voila la page config


<?php
  class connexionDB{
    private $host = 'localhost';
    private $name = 'nom';
    private $user = 'root';
    private $pass = '';
    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 {
        $DB = 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_EXCEPTION));
        
      } catch (PDOException $e) {
        echo 'Impossibe de se connecter';
        die();
      }
      }
    
    public function DB(){
      $this->connexion;
    }
  }
  $DBB = new connexionDB();
  $DB = $DBB->DB();

?>

Bonjour, j’ai suivi les tutos du site V 2 et là je suis au 5.2


pour la connection à la BDD j’ai utilisée le modèle aussi sur les tutoriel d’avant ,



j’essaie d’envoyer le fichier config se soir ou demain



Hello @Theo61,


Au début de ton code, tu fais appel à un fichier PHP config.php.

Je suppose que ce fichier établi la connexion à ta base de données.


Peux-tu nous montrer son contenu (nous montrer le code) ? Nous allons pouvoir vérifier si tu n'as pas fait d'erreurs.

Egalement, peux-tu nous donner le lien de ladite formation que tu as suivis ? Afin que l'on soit tous corda et vérifier ensemble ce qui ne va pas.

Cette pub permet au site de vivre ...
1
2