Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
Bonjour, frères développeurs. Mon problème est le suivant: quand j’essaie de me connecter a mon compte, la fonction crypt()
renvoie une erreur qui est :
Notice: Undefined variable: rounds in C:\wamp64\www\Web_App2\Site Dynamique\Projet Complet 1\connexion.php on line 31
Notice: Undefined variable: uvyfgzyffgfgfzgyilguimlnnL in C:\wamp64\www\Web_App2\Site Dynamique\Projet Complet 1\connexion.php on line 31
Voici le code source qui est celui de Sitedudev :
<?php
include('bd/connexionDB.php');
// S'il y a une session alors on ne retourne plus sur cette page
if(isset($_SESSION['id'])){
header('Location: index.php');
exit;
}
// Si la variable "$_Post" contient des informations alors on les traitres
if(!empty($_POST)){
extract($_POST);
$valid = true;
if(isset($_POST['connexion'])){
$mail = htmlentities(strtolower(trim($mail)));
$mdp = trim($mdp);
// Vérification qu'il y est bien un mail de renseigné
if(empty($mail)){
$valid= false;
$er_mail= "Il faut un mail";
}
// Vérification qu'il y est bien un mot de passe de renseigné
if(empty($mdp)){
$valid = false;
$er_mdp = "Il faut mettre un mot de passe";
}
// On fait une requête pour savoir si le couple mail / mot de passe existe bien car le mail est unique !
$req = $DB->query("SELECT * FROM utilisateur WHERE mail = ? AND mdp = ?", array($mail, crypt($mdp, "$6$rounds=5000$uvyfgzyffgfgfzgyilguimlnnL$"))); (ligne 31)
$req = $req->fetch();
// Si on a pas de résultat alors c'est qu'il n'y a pas d'utilisateur correspondant au couple mail / mot de passe
if($req['id'] ==""){
$valid = false;
$er_mail = "Le mail ou le mot de passe est incorrect";
}
// Si le token n'est pas vide alors on ne l'autorise pas à accéder au site
if($req['token'] <> NULL){
$valid = false;
$er_mail = "Le compte n'a pas été validé";
}
//S'il y a un résultat alors on va charger la SESSION de l'utilisateur en utilisateur les variables $_SESSION
if($valid){
$_SESSION['id']=$req['id'];
$_SESSION['nom']=$req['nom'];
$_SESSION['prenom']=$req['prenom'];
$_SESSION['mail']=$req['mail'];
header('Location: index.php');
exit;
}
}
}
?>
<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Connexion</title>
</head>
<body>
<div>Se connecter<div>
<form method="post">
<?php
if(isset($er_mail)){
?>
<div><?= $er_mail; ?></div>
<?php
}
?>
<input type="email" placeholder="Adresse mail" name="mail" value="<?php if(isset($mail)){echo $mail;} ?>" required>
<?php
if(isset($er_mdp)){
?>
<div><?= $err_mdp; ?></div>
<?php
}
?>
<input type="password" placeholder="Mot de passe" name="mdp" value="<?php if(isset($mdp)){echo $mdp;} ?>" required>
<button type="submit" name="connexion">Se connecter</button>
</form>
</body>
</html>
Re @lloyds,
Content que tu as pu résoudre ton problème. Tu pourrais nous donner la solution de ton problème 😅
Apres cela n'oublie pas d'appuyer sur le bouton Résolu en haut à droite.😉
A bientôt 😀
Re:
Evite les majuscules...
Met le topic en "Résolu" dans ce cas
Oui mon problème a été résolu, merci bien frangin. 😩😀
Re @lloyds,
Ton problème a t'il été résolu ?😏
Merci à vous, vous m'avez vraiment aidé. agréable soirée à vous.
Re @lloyds,
Je ne comprend pas pourquoi ça ne fonctionne pas, moi ca fonctionne parfaitement, le cryptage et tout.
La seule chose que je peux te dire, c'est de supprimer et de réinstaller l'espace membre de la formation, et surtout de bien importer la base de donnée que @Clouder à donner lors de ce cours.
Tu peux télécharger l'espace membres en cliquant ici😅
ok merci d'avance, je suis à court de batterie. Je vais vérifier et je te reviens.
Il doit y avoir un problème...😒
J'ai testé l'intégralité de la formation et ça marche de mon côté. 😀
Si tu as correctement importer la table de la formation dans ta base de donnée, je ne comprend pas😕
Voici le code de Sitedudev que j'ai recopier :
<?php
session_start();
include('bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD
// S'il y a une session alors on ne retourne plus sur cette page if (isset($_SESSION['id'])){
header('Location: index.php');
exit;
}
// Si la variable "$_Post" contient des informations alors on les traitres if(!empty($_POST)){
extract($_POST);
$valid = true;
if (isset($_POST['connexion'])){
$mail = htmlentities(strtolower(trim($mail)));
$mdp = trim($mdp);
if(empty($mail)){ // Vérification qu'il y est bien un mail de renseigné
$valid = false;
$er_mail = "Il faut mettre un mail";
}
if(empty($mdp)){ // Vérification qu'il y est bien un mot de passe de renseigné
$valid = false;
$er_mdp = "Il faut mettre un mot de passe";
}
// On fait une requête pour savoir si le couple mail / mot de passe existe bien car le mail est unique !
$req = $DB->query("SELECT * FROM utilisateur WHERE mail = ? AND mdp = ?", array($mail, crypt($mdp, "$6$rounds=5000$macleapersonnaliseretagardersecret$"))); $req = $req->fetch();
// Si on a pas de résultat alors c'est qu'il n'y a pas d'utilisateur correspondant au couple mail / mot de passe
if ($req['id'] == ""){
$valid = false;
$er_mail = "Le mail ou le mot de passe est incorrecte";
}
// Si le token n'est pas vide alors on ne l'autorise pas à accéder au site
if($req['token'] <> NULL){
$valid = false;
$er_mail = "Le compte n'a pas été validé";
}
// S'il y a un résultat alors on va charger la SESSION de l'utilisateur en utilisateur les variables $_SESSION if ($valid){$_SESSION['id'] = $req['id'];
// id de l'utilisateur unique pour les requêtes futures
$_SESSION['nom'] = $req['nom'];
$_SESSION['prenom'] = $req['prenom'];
$_SESSION['mail'] = $req['mail'];
header('Location: index.php');
exit;
}
}
}?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Connexion</title>
</head>
<body>
<div>Se connecter</div>
<form method="post">
<?php
if (isset($er_mail)){
?>
<div><?= $er_mail ?></div>
<?php
}
?>
<input type="email" placeholder="Adresse mail" name="mail" value="<?php if(isset($mail)){ echo $mail; }?>" required>
<?php
if (isset($er_mdp)){
?>
<div><?= $er_mdp ?></div>
<?php
}
?>
<input type="password" placeholder="Mot de passe" name="mdp" value="<?php if(isset($mdp)){ echo $mdp; }?>" required>
<button type="submit" name="connexion">Se connecter</button>
</form>
</body></html>