Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compte qui ne ce connecte pas a ma base de donnés

    25 septembre 2022 à 10:06:28

    Bonjour quand je crée un compte sa ce ne connecte pas a ma base de donnés quelqu'un pourrais m'indiquer l'erreur s'il vous plait ?

    index :

    <?php require 'functions.php' ?>
    
    
    <?php 
    
    
    
    if (!empty($_POST)) {
    	$errors = array();
    
    	if (empty($_POST['username']) || !preg_match('/^[a-z0-9_]+$/', $_POST['username'])) {
    		$errors['username'] = "Pseudo non valide";
    
    
    
    	}
    
    debug($errors);
    
    
    }
    
    
    
    if (!empty($_POST)) {
    	$errors = array();
    
    	if (empty($_POST['email']) || !preg_match('/^[a-z0-9-@gmail.com]+$/', $_POST['email'])) {
    		$errors['username'] = "email non valide";}
    debug($errors);
    
    }
    
    
    require_once 'db.php';
    
    $req = $pdo->prepare ("INSERT INTO users SET username = ?, email = ?, password = ?, passwordverif = ?");
    
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
    
    $req-> execute([$_POST['username'],$_POST['email'],$password]);
    
    die('Votre compte a été créé')
    
    ?>

    database :

    <?php  
    
    
    $pdo = new PDO('mysql:dbname=.....;host=....', 'root', '.....');
    
    
    
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);





    • Partager sur Facebook
    • Partager sur Twitter
      25 septembre 2022 à 10:09:04

      Bonjour,

      Activation des erreurs de pdo et l'affichage des erreurs de php (cf signature)

      supprime le passwordverif de ta requête, il est inutile de le stocker

      • Partager sur Facebook
      • Partager sur Twitter
        25 septembre 2022 à 14:13:58

        Hello,

        Et refaire une passe sur le code pour la lisibilité car là c'est vraiment wtf. Pourquoi mettre require (ligne 1), fermer le php et le réouvrir au final 3 ligne en dessous ?

        Vraiment aussi arrête les copier-coller, ça se voit à 10km.

        <?php
        
        require 'functions.php';
        require 'db.php';
        
        if (empty($_POST)) {
            // Je te laisse gérer ici
            // Le "exit();" est important.
            exit();
        }
        
        // Les tableaux se déclarent avec des "[]" maintenant.
        $errors = [];
        
        // C'est quand même plus simple à manipuler une variable qu'un tableau, non ?
        $username = $_POST['username'] ?? null;
        $email = $_POST['email'] ?? null;
        $password = $_POST['password'] ?? null;
        
        if (empty($username) || empty($email) || empty($password)) {
            $errors[] = 'Champs obligatoire !';
        }
        
        if (!preg_match('/^[a-z0-9_]{2,50}$/i', $username)) {
            $errors[] = 'Format du username';
        }
        
        // Je te laisse faire l'email et le password
        
        if (!empty($errors)) {
            // Gestion de l'erreur
            exit();
        }
        
        $req = $db->prepare('INSERT INTO users (username, email, password, password_verif)
            VALUES (:name, :email, :pass, 0)');
        $req->execute([
            ':name' => $username,
            ':email' => $email,
            ':pass' => password_hash($password, PASSWORD_DEFAULT, ['cost' => 14]),
        ]);
        
        // pas de die() surtout pour un message de succès 
        // pas besoin de fermer le php avec ? >
        



        • Partager sur Facebook
        • Partager sur Twitter

        Compte qui ne ce connecte pas a ma base de donnés

        × 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