PHP

Erreur page de connexion

Non Résolu

Bonjour/bonsoir,


J'ai cette erreur : PDOStatement::execute(): SQLSTATE[HY000]: General error: 1364 Field 'pseudo' doesn't have a default value in /storage/ssd3/570/12853570/public_html/connexion.php on line 54 pour je crois aucune raison


Voilà mon code :


if($valid){
            
            $req = $BDD->prepare("INSERT INTO utilisateurs (date_connexion) VALUES (?)");
            $req->execute(array(date("Y-m-d h:m:s")));
            
            $req = $BDD->prepare("SELECT *
            FROM utilisateurs
            WHERE id = ?");
            
        $req->execute(array($verif_utilisateur['id']));
        $verif_utilisateur = $req->fetch();
        
        $_SESSION['id'] = $verif_utilisateur['id'];
        $_SESSION['pseudo'] = $verif_utilisateur['pseudo'];
        $_SESSION['mail'] = $verif_utilisateur['mail'];
        
            header("Location: /");
            exit;
        }


Merci d'avance de vos aides.

1215 vues
14 mars 2020 à 23:52 (Édité)
Cette pub permet au site de vivre ...

19 commentaires

@Clouder,


Je l'avais mais j'ai tout perdu ...


On revoit ça quand j'aurais tout refait.

@CrafterHide,


Tu as bien le pseudo de renseigné également ?

@Clouder,


Oui sur ma BDD il y a des choses de rensignées.


Bonne continuation.

@Crafterhide,


Tu peux regarder dans ta DBB pour me dire si tu as bien un pseudo de renseigné ?

@Jerem971,


Oui, j'ai suivi le tuto de Clouder, celui de connexion.

Re:


As-tu suivis un tuto en particulier pour réaliser cela ? 🤔

Ben pourtant sur ta bdd tu il n'y a personne inscrit.

Juste est ce que tu t'est déjà inscrit @CrafterHide

@Didoub74, Voilà le code :


<?php


session_start();


    include_once('db/connexion_db.php');
    
if(!isset($_SESSION['id'])){
    
    if(!empty($_POST)){
    extract($_POST);
    $valid = (boolean) true;
    
    if(isset($_POST['connexion'])){
        $mail = (String) strtolower(trim($mail));
        $password = (String) trim($password);
        
        if(empty($mail)){
            $valid = false;
            $err_mail = 'Veuillez renseigner le mail !';
        }else{
            $req = $BDD->prepare("SELECT id
            FROM utilisateurs
            WHERE mail = ?");
            
        $req->execute(array($mail));
        $utilisateur = $req->fetch();
        
            if(!isset($utilisateur['id'])){
                $valid = false;
                $err_mail = "Ce mail n'existe pas !";
            }
        }
        
        if(empty($password)){
            $valid = false;
            $err_password = 'Veuillez renseigner le mot de passe !';
        }
        
        $req = $BDD->prepare("SELECT id
            FROM utilisateurs
            WHERE mail = ? AND password = ?");
            
        $req->execute(array($mail, crypt($password, '$6$rounds=5000$sdfnbgsdhhGFCFGFhgd525er1f854D5QEFfeqDeqE5E$')));
        $verif_utilisateur = $req->fetch();
        
        if(!isset($verif_utilisateur['id'])){
            $valid = false;
            $err_mail = 'Adresse courielle ou mot de passe erroné !';
        }
            
        if($valid){
            
            $req = $BDD->prepare("INSERT INTO utilisateurs (date_connexion) VALUES (?)");
            $req->execute(array(date("Y-m-d h:m:s")));
            
            $req = $BDD->prepare("SELECT *
            FROM utilisateurs
            WHERE id = ?");
            
        $req->execute(array($verif_utilisateur['id']));
        $verif_utilisateur = $req->fetch();
        
        $_SESSION['id'] = $verif_utilisateur['id'];
        $_SESSION['nom_prenom'] = $verif_utilisateur['nom_prenom'];
        $_SESSION['pseudo'] = $verif_utilisateur['pseudo'];
        $_SESSION['mail'] = $verif_utilisateur['mail'];
        
            header("Location: /ach/");
            exit;
        }
    }
}


}else{
    header("Location: /ach/");
}
?>


<!DOCTYPE html>


<html lang="fr">


<head>
    
    <title>Connexion</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="./css/style.css">
        
</head>
<body>
    
    <?php
        require_once('auto/menu.php');
    ?>
    
        <div class="center">
        
            <form method="post">
                
                <div>
                    <input type="text" name="mail" placeholder="Email">
                    <?php
                        if(isset($err_mail)){
                        echo $err_mail;
                        }
                    ?>
                </div>
                <div>
                    <input type="password" name="password" placeholder="Mot de passe">
                    <?php
                        if(isset($err_password)){
                        echo $err_password;
                        }
                    ?>
                </div>
                <input type="submit" name="connexion" value="Se connecter">
                
            </form>
        
        </div>
        
    </body>
    
</html>
Cette pub permet au site de vivre ...
1
2