Fonctions login
Posté : 07 avr. 2021, 17:23
Bonjour à tous !
J'essaye de faire plusieurs fonctions login qui me permettent de savoir quel est le rôle de l'utilisateur connecté, afin d'afficher ou de cacher certaines parties du site en fonction de son rôle. J'ai donc créer un fichier functionsLogin.php avec différentes fonctions:
Et ma page d'accueil, dont je met seulement le morceau qui nous intéresse ici :
Le problème est que l'appel a la fonction isLogAsPlayer dans la page d'accueil m'indique cette erreur : Uncaught Error: Call to a member function prepare() on null
Et je ne comprends pas pourquoi car j'ai bien mis le 'require BDD.php' qui est le fichier servant a connecter la base de données.
Merci d'avance pour votre aide
J'essaye de faire plusieurs fonctions login qui me permettent de savoir quel est le rôle de l'utilisateur connecté, afin d'afficher ou de cacher certaines parties du site en fonction de son rôle. J'ai donc créer un fichier functionsLogin.php avec différentes fonctions:
Code : Tout sélectionner
<?php
require_once 'BDD.php';
function isLogAsPlayer($username, $mdp) : bool{ //On récupère le champ role dans la BDD, on sait que l'utilisateur est un Joueur si son role = 0
$req = $bdd->prepare('SELECT role FROM utilisateur WHERE email = ? AND motdepasse = ?');
$req->execute(array(
'email'=>$username,
'motdepasse'=>password_hash($mdp, PASSWORD_DEFAULT)
));
$role = $req->fect();
if (intval($role) == 0){
return true;
}
else
return false;
}
function isLogAsCaptain() : bool{//On récupère le champ role dans la BDD, on sait que l'utilisateur est un Capitaine si son role = 1
$req=$bdd->prepare('SELECT role FROM utilisateur WHERE email = ? AND motdepasse = ?');
$req->execute(array(
'email'=>$username,
'motdepasse'=>$mdp
));
$role = $req->fect();
if (intval($role) == 1){
return true;
}
else
return false;
}
function isLogAsAdmin() : bool{//On récupère le champ role dans la BDD, on sait que l'utilisateur est un Admin si son role = 2
$req=$bdd->prepare('SELECT role FROM utilisateur WHERE email = ? AND motdepasse = ?');
$req->execute(array(
'email'=>$username,
'motdepasse'=>$mdp
));
$role = $req->fect();
if (intval($role) == 2){
return true;
}
else
return false;
}Code : Tout sélectionner
<body>
<?php
if ((!empty($_POST['username']))&&(!empty($_POST['password']))){
$username = $_POST['username'];
$password = $_POST['password'];
$req = $bdd->prepare('SELECT motdepasse FROM utilisateur WHERE email = :email'); //On récup l'email et le hash du MDP correspondant à l'utilisateur dans la BDD
$req->execute(array(
'email'=>$username,
));
$mdp = $req->fetch();
$mdp = $mdp["motdepasse"];
if(password_verify($password, $mdp)){
?>
<header>
<h1>Présentation du site</h1>
<p>Ce site a pour vocation de permettre à chaque équipes de s'inscrire pour le tournois de Football qui aura lieux en Juin 2021.<br />
L'organisateur du tournois peut créer le tournois dans la section "Créer un tournois".<br />
Les capitaines d'équipes doivent inscrire leur équipes au tournois dans la section "Inscrire une équipe".<br />
Chaque participants s'engage à lire la section "Règles des tournois" avant le début de la compétition.
</p>
<?php
if(isLogAsPlayer($username, $password)){
echo "Vous ne pouvez rien voir de plus ! ";
}
}
else{
echo "<p>Identifiant ou mot de passe incorrect</p>";
echo "<p>Retour à la page de <a href=\"PageConnexion.php\">connexion</a></p>";
}
}
else
{
?>
<p>Veuillez vous connecter pour accéder aux différentes informations.</p>
<p>Rendez vous sur cette <a href="PageConnexion.php">page</a></p>
<p>Si vous n'êtes pas inscrits, rendez vous <a href="Inscription.php"> ici </a> pour vous inscrire</p>
<?php
}
?>
</body>
</html>Et je ne comprends pas pourquoi car j'ai bien mis le 'require BDD.php' qui est le fichier servant a connecter la base de données.
Merci d'avance pour votre aide