Proteger les pages avec une session php
Résolu/Fermé
A voir également:
- Protéger une page web par mot de passe php
- Piratage facebook changer mot de passe - Guide
- Supprimer une page word - Guide
- Traduire une page web - Guide
- Protéger un dossier par mot de passe - Guide
- Voir mot de passe wifi android - Guide
4 réponses
NHenry
Messages postés
15113
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 avril 2024
331
29 janv. 2017 à 19:18
29 janv. 2017 à 19:18
Quel est le code de ta page de login ?
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
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
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
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()); } }