probleme de connexion a ma bd

tchassem

tchassem Le 19 novembre 2016 à 16:00 (Édité le 25 janvier 2019 à 17:52)

Salut je travail actuelement dans un petit espace de connexion sur mon site mais a chaque fois que j'ai voulu me connecter pour accéder a la page suivant j'ai cette erreur a la ligna 25 du genre
Fatal error:  in C:\wamp\www\PROJET\php\admin.php on line 25
PDOException:  in C:\wamp\www\PROJET\php\admin.php on line 25
et voic mon code source
<?php
session_start();
include_once '../function/function.php';
    include('connecter.php');
?>
<!DOCTYPE html>
<html>
<head>
    <title>Entre votre login pour vous connecter</title>
    <link rel="stylesheet" type="text/css" href="../style.css">
    <meta name="language" content="fr" charset="utf-8">
</head>
<body>
    <?php

    if(isset($_POST['submit']))
    {
            $pseudo=htmlspecialchars(trim($_POST['login']));
            $passe=htmlspecialchars(trim($_POST['pass']));

        if($pseudo and $passe)
        {
            $error=[];
            $q=$bdd->prepare("SELECT * FROM admin WHERE pseudo=?  AND passe=?");
            $q->execute(array($pseudo,$passe));
            
            $userHasBeenFound=$q->rowCount();
            if($userHasBeenFound==1)
            {
                $_SESSION['login']=$pseudo;
                header("location:inscription.php");
            }
            else
            {
                $error[]="Pseudo ou E-mail ou mot de passe incorrect";
                
            }
        }
        else
        {
            $error[]="Veuillez SVP remplir tous les champs";
        }
            
    }

    ?>


<p style="margin-top:100px;"></p>
<div class="centre">
    <div class="row ">
        <form method="POST" action="">
            <input type="text" name="login" placeholder="Entrer le login" id="nom_page" ><br>
            <input type="password" name="pass" placeholder="Entrer le mot de passe" id="nom_page1"><br>
            <button type="submit" name="submit" class='connexion'>Se connecter</button>
        </form>
        <?php
                    if(isset($error) && count($error) !=0)
                    {
                        echo '<div class="bg-danger">';
                            foreach($error as $errors)
                            {
                                echo $errors.'<br>';
                            }
                        echo '</div>';
                    }
                ?>
    </div>
</div>
</body>
</html>

j'arrive pas a voir cette erreur. donc j'ai vraiment besoin de votre aide merci d'avance
Flex

Flex Le 19 novembre 2016 à 16:54

Salut,

à la ligne 25 essaye de remplacer le $q->execute(array($pseudo,$passe)); par $q->execute(array($_POST['pseudo'], $_POST['passe']));
Balatharas

Balatharas Le 19 novembre 2016 à 17:01

@motel12 désolé mais ça ne marchera pas, ça revient exactement au même
TheOldNoob

TheOldNoob Le 19 novembre 2016 à 23:09

Salut les amis,
ça ne marchera pas, plus effectivement, surtout que $pseudo et $passe sont défini comme étant $_POST[pseudo] et $_POST[passe] juste au dessus 😀


Bon, je vais t''aider, mais c'est long a expliquer pour faire une page de connexion.

Du coup, je te balance une page que j'utilise moi pour que les admins se connecte au site que je code. A toi d'adapté 😀

$post = [];
$error = [];
$mdpValide = false;
$errorSession = false;



if(!empty($_POST)){//01

    $post = array_map('strip_tags', $_POST);
    $post = array_map('trim', $post);

    // On vérifie que l'adresse email est au bon format
    if(!preg_match ( "#^[a-zA-Z0-9]{3,20}$#" , $post['nickname'] )){
        $error[] = '<div class="text-center alert alert-danger">Le nom ou est invalide</div>';
    }
    if(!isset($post['password']) && !empty($post['password'])){
        $error[] = '<div class="alert alert-success">Le nom ou le password est invalide</div>';
    }
    if(count($error) == 0){//02
        $select = $pdo->prepare('SELECT * FROM users  WHERE nickname = :checkName');//

        $select->bindValue(':checkName', $post['nickname']);
        if($select->execute()){//03

            $user = $select->fetch();//contient notre utilisateur relatif à le nom
            if(!empty($user)){//04
                // on vérifie le mot de passe saisi et le mot de passe hashé
                if(password_verify($post['password'], $user['password'])){
                    //ici le mot de passe est valide
                    $mdpValide = true;
                    session_start();//permet de demarrer la session
                    $_SESSION['user'] = [
                            'id'        => $user['id'],
                            'nickname'  => $user['nickname'],
                            'role'          => $user['role'],
                            ];
                    //je redirige vers la page "propos.php"
                    header('Location: propos.php');
                    die;
                }
                else {
                // Le mot de passe est invalide
                $error[] = '<div class="alert alert-warning">Le couple identifiant/mot de passe est invalide</div>';
                }
            }//fin 04
            else {
            //utilisateur inconnu
            $error[] = 'Le couple identifiant/mot de passe est invalide';
            }
        }//fin 03
    }//fin 02
}//fin 01

    if(count($error)!=0){
        foreach ($error as $key => $value) {
            echo $value.'<br>';
        }
    }
?>

<h1 class="text-center">Login page administration</h1>
<h2 class="text-center alert alert-danger"><a href="../index.php">Si vous n'êtes pas membre de l'administration, merci de retourner sur le site</a></h2>
<br>

<form class="form-horizontal" method="post" action="">

    <div class="form-group">

        <div class="col-md-4 col-md-offset-4">
            <input id="nickname" name="nickname" type="text" placeholder="Votre nom" class="form-control input-md" required>
        </div>
    </div>

    <div class="form-group">

        <div class="col-md-4 col-md-offset-4">
            <input id="password" name="password" type="password" placeholder="Votre password" class="form-control input-md" required>
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-4 col-md-offset-4">
            <button type="submit" class="btn btn-primary">Je me connecte</button>
        </div>
    </div>

</form>
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte