probleme de connexion a ma bd
- Accueil
- Forum
- Programmation
- PHP
- probleme de connexion a ma bd
tchassem Le 19 novembre 2016 à 16:00 (Édité le 25 janvier 2019 à 17:52)
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 Le 19 novembre 2016 à 16:54 (Édité le 1 janvier 1970 à 01:00)
à la ligne 25 essaye de remplacer le $q->execute(array($pseudo,$passe)); par $q->execute(array($_POST['pseudo'], $_POST['passe']));
Balatharas Le 19 novembre 2016 à 17:01 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 19 novembre 2016 à 23:09 (Édité le 1 janvier 1970 à 01:00)
ç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>