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 à tous,
Je voulais remercier le créateur de ce site qui partage tout ce contenu.
J'ai suivi toute la partie "Créer son site" sauf la dernière vidéo du site "Supprimer le .php de vos URLs".
Tout ce passe très bien, mais quand j'essaie de me connecter si je mets un mauvais mot de passe, il y a 3 messages d'erreurs...
Premier :
Notice: Undefined variable: rounds in D:\wamp64\www\comptes\test\test_connexion.php on line 35
Deuxième :
Notice: Undefined variable: macleapersonnaliseretagardersecret in D:\wamp64\www\comptes\test\test_connexion.php on line 35
Troisième :
Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format. in D:\wamp64\www\comptes\test\test_connexion.php on line 35
Et voici mon code de connexion :
<?php
session_start();
// Fichier PHP contenant la connexion à votre BDD
include('test_bd/test_connexionDB.php');
// S'il y a une session alors on ne retourne plus sur cette page
if (isset($_SESSION['id'])){
header('Location: test_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$"))); // array($mail, crypt($mdp, "VOTRE CLÉ UNIQUE DE CRYPTAGE DU MOT DE PASSE")));
$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 (!isset($req['id'])){
$valid = false;
$er_mail = "Le mail ou le mot de passe est incorrecte";
}elseif($req['n_mdp'] == 1){ // On remet à zéro la demande de nouveau mot de passe s'il y a bien un couple mail / mot de passe
$DB->insert("UPDATE utilisateur SET n_mdp = 0 WHERE id = ?",
array($req['id']));
}
// 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";
}
// 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: test_index.php');
exit;
}
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<meta name="generator" content="Jekyll v3.8.5">
<title>Journal d'un ergothérapeute</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="test_css/test_style.css">
<!-- Custom styles for this template -->
<link href="https://fonts.googleapis.com/css?family=Playfair+Display:700,900" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="test_css/test_blog.css" rel="stylesheet">
</head>
<body>
<?php
require_once('test_menu.php');
?>
<div class="container">
<div class="container">
<div class="row">
<div class="col-0 col-sm-0 col-md-2 col-lg-3"></div>
<div class="col-12 col-sm-12 col-md-8 col-lg-6">
<div class="card border-secondary mb-3">
<div class="card-header"><h2 style="text-align: center">Connexion</h2></div>
<div class="card-body text-secondary">
<form method="post">
<?php
if (isset($er_mail)){
?>
<div class="er-msg"><?= $er_mail ?></div>
<?php
}
?>
<div class="form-group">
<input class="form-control" type="email" placeholder="Adresse mail" name="mail" value="<?php if(isset($mail)){ echo $mail; }?>" required>
</div>
<?php
if (isset($er_mdp)){
?>
<div class="er-msg"><?= $er_mdp ?></div>
<?php
}
?>
<div class="form-group">
<input class="form-control" type="password" placeholder="Mot de passe" name="mdp" value="<?php if(isset($mdp)){ echo $mdp; }?>" required>
</div>
<div class="form-group mdp-center">
<a href="test_motdepasse.php">Mot de passe oublié</a>
</div>
<div class="form-group">
<button class="btn btn-secondary" type="submit" name="connexion">Se connecter</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<footer class="blog-footer">
<p>Site réaliser par <a href="http://localhost/comptes5.0/test_voir_profil.php?id=1">Tyo</a>.</p>
<p>
<a href="#">Retour en haut</a>
</p>
</footer>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
</body>
</html>
Je vous remercie d'avance, cela fait plusieurs jours que je suis bloqué sur ces erreurs.
Bonne journée.
TheBanana
PS : je viens de rééditer mon message car les erreurs présentent lors de l'inscription sont réglés. Avec le menu fait comme dans la vidéo et non un require('header.php') cela fonctionne.
Merci beaucoup pour les 2 erreurs je vais aller les régler tout de suite.
Pour tes erreurs 2 & 3 cela vient de la fonction crypt.
La fonction crypt de PHP te permet de crypter le mot de passe de tes utilisateurs mais pour que cela soit fiable et unique il faut que tu personnalises ta clé secrète.
Donc il te faudrait une clé comme celle-ci :
$6$rounds=5000$Oo0skOAdUFXkQxJpwzO05wgRHG0dhuaPBaOU$