Proteger les pages avec une session php
Résolu/Fermé
A voir également:
- Protéger une page web par mot de passe php
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Protéger un dossier par mot de passe - Guide
- Voir mot de passe wifi android - Guide
- Mot de passe administrateur - Guide
4 réponses
NHenry
Messages postés
15214
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 avril 2025
363
29 janv. 2017 à 19:18
29 janv. 2017 à 19:18
Quel est le code de ta page de login ?
jordane45
Messages postés
38470
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 avril 2025
4 742
29 janv. 2017 à 19:32
29 janv. 2017 à 19:32
Bonjour,
En complément de la réponse de Nhenry ( ton code de ta page de login...), je peux ajouter :
La redirection php s'utilise ainsi :
Tu peux ajouter l'affichage des erreurs PHP pour voir si ton code n'en comporte pas :
Tu pourrais aussi, le temps des tests, mettre en commentaire la redirection et, au début de ton code (avant le IF), afficher le contenu des variables de session :
Histoire de voir ce que contient cette variable et ainsi voir si la variable 'admin' y existe...
En complément de la réponse de Nhenry ( ton code de ta page de login...), je peux ajouter :
La redirection php s'utilise ainsi :
header('location : url_de_ta_page'); exit(); //toujours faire un exit après une redirection
Tu peux ajouter l'affichage des erreurs PHP pour voir si ton code n'en comporte pas :
error_reporting(E_ALL); ini_set('display-errors','on');
Tu pourrais aussi, le temps des tests, mettre en commentaire la redirection et, au début de ton code (avant le IF), afficher le contenu des variables de session :
print_r($_SESSION);
Histoire de voir ce que contient cette variable et ainsi voir si la variable 'admin' y existe...
voila @ NHenry
jvais essayer Jordane
<?php require("connect.php"); //require("connect.php"); if(isset($_POST['username'])AND isset($_POST['Motd_passe'])){ $username=htmlspecialchars($_POST['username']); $Motd_passe=sha1(htmlspecialchars($_POST['Motd_passe'])); try{ $requete="SELECT * FROM administrateur"; $query=sqlsrv_query($conn, $requete); while($donnees=sqlsrv_fetch_array($query)){ if($donnees['username']===$username && $donnees['Motd_passe']===$Motd_passe){ session_start(); $_SESSION['id']=$donnees['id']; $_SESSION['admin']=$username; header("Location: /admin/ordinateur/index.php"); } } sqlsrv_free_stmt($query); }catch(Exception $e){ die('Erreur '.$e->getMessage()); } } sqlsrv_close($query); ?>
jvais essayer Jordane
jordane45
Messages postés
38470
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 avril 2025
4 742
29 janv. 2017 à 19:51
29 janv. 2017 à 19:51
Qu'as tu fait du code que je t'avais DEJA donné pour la connexion ???
https://forums.commentcamarche.net/forum/affich-34303514-probleme-de-connection#3
Tu sais.. celui où je t'indiquais que la vérification se faisait via la requête SQL et non via des "if" en PHP ?????
Je me repète .. mais .. on ne fait pas :
Par contre on fait :
Bref.. le code d'authentification peut se réécrire plus proprement comme ceci :
https://forums.commentcamarche.net/forum/affich-34303514-probleme-de-connection#3
Tu sais.. celui où je t'indiquais que la vérification se faisait via la requête SQL et non via des "if" en PHP ?????
Je me repète .. mais .. on ne fait pas :
if($donnees['username']===$username && $donnees['Motd_passe']===$Motd_passe){
Par contre on fait :
SELECT * FROM administrateur WHERE username = '$username' AND Motd_passe = '$Motd_passe';
Bref.. le code d'authentification peut se réécrire plus proprement comme ceci :
<?php //demarrage des sessions session_start(); // Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display-errors','on'); //connexion à la BDD require_once "connect.php"; //récupération PROPRE des variables $username= !empty($_POST['username']) ? htmlspecialchars($_POST['username']) : NULL; $Motd_passe = !empty($_POST['Motd_passe']) ? sha1(htmlspecialchars($_POST['Motd_passe'])) : NULL ; //traitement du submit if($username && $Motd_passe){ $requete="SELECT * FROM administrateur WHERE username = '$username' AND Motd_passe = '$Motd_passe';"; try{ $query=sqlsrv_query($conn,$requete); $donnees=sqlsrv_fetch_array($query); sqlsrv_close($query); if(!empty($donnees)){ $_SESSION['id']=$donnees['id']; $_SESSION['admin']=$username; header("Location: /admin/ordinateur/index.php"); exit(); //toujours mettre un Exit apres une redirection ... } }catch(Exception $e){ die('Erreur '.$e->getMessage()); } }