S'il vous plait aidez moi .la page adminpage n arrive pas
Résolu/Fermé
moulaaa123
Messages postés
4
Date d'inscription
lundi 31 décembre 2018
Statut
Membre
Dernière intervention
1 janvier 2019
-
Modifié le 1 janv. 2019 à 21:13
jordane45 Messages postés 38244 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2024 - 1 janv. 2019 à 21:29
jordane45 Messages postés 38244 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2024 - 1 janv. 2019 à 21:29
A voir également:
- S'il vous plait aidez moi .la page adminpage n arrive pas
- Supprimer une page word - Guide
- Traduire la page - Guide
- Word numéro de page 1/2 - Guide
- Page d'accueil iphone - Guide
2 réponses
cs_PaTaTe
Messages postés
2126
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
19 février 2021
494
Modifié le 31 déc. 2018 à 04:45
Modifié le 31 déc. 2018 à 04:45
J'espère que ce script est pas à destination d'un site en prod !
A lire ton code les passwords sont en clair dans ta base de données et c'est super dangereux de faire comme ça et tu peux perdre gros. Une boite comme Optical Center a eu une ammende de pres de 50 000€ pour cette erreur ! On crpyte un minimum, tu n'es pas sensé avoir accès à ce type de données.
Et puis soit plus précis dans ta question (et donne nous les eventuels retour d'erreur de PHP, etc)
Déjà, j'utiliserais pas empty() mais isset()
A lire ton code les passwords sont en clair dans ta base de données et c'est super dangereux de faire comme ça et tu peux perdre gros. Une boite comme Optical Center a eu une ammende de pres de 50 000€ pour cette erreur ! On crpyte un minimum, tu n'es pas sensé avoir accès à ce type de données.
Et puis soit plus précis dans ta question (et donne nous les eventuels retour d'erreur de PHP, etc)
Déjà, j'utiliserais pas empty() mais isset()
jordane45
Messages postés
38244
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 octobre 2024
4 689
Modifié le 1 janv. 2019 à 21:30
Modifié le 1 janv. 2019 à 21:30
Bonjour,
Bien que tu viennes de mettre ce sujet en résolu... je me permet d'intervenir.
Je ne vois pas en quoi le empty serait la cause du souci...
Sachant que le "!empty" fait déjà un isset (en plus de vérifier que la variable n'est pas vide)
Concernant ton code.. il faut que tu places le code de connexion à ta BDD dans un fichier à part.
Ainsi; tu n'auras qu'à l'inclure dans les pages de ton site où tu en auras besoin au lieu de le recopier à chaque fois...
(et on pense à gérer les erreurs en PDO : voir ce lien pour les explications : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs )
Ensuite... dans ton fichier login.php:
(on active l'affichage des erreurs php : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code )
Ton IF ne sert à rien
Puisque tu as déjà les mêmes critères dans ton where ....
Et enfin..Pour gérer l'authéntification sur les différentes pages, tu dois utiliser les variables de session
Et donc.. pour voir si un utilisateur est bien connecté ou non.. il suffit de placer ceci au début des pages à protéger
Concernant le conseil pour le hashage du password.. il faut en effet utiliser les méthodes
password_hash() : http://php.net/manual/fr/function.password-hash.php
et password_verify() : https://www.php.net/manual/fr/function.password-verify.php
Mais ça .. je te laisse le coder.
Et surtout.. lorsque tu postes du code sur le forum, merci d'utiliser les BALISES DE CODE :
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Bien que tu viennes de mettre ce sujet en résolu... je me permet d'intervenir.
Je ne vois pas en quoi le empty serait la cause du souci...
Sachant que le "!empty" fait déjà un isset (en plus de vérifier que la variable n'est pas vide)
Concernant ton code.. il faut que tu places le code de connexion à ta BDD dans un fichier à part.
Ainsi; tu n'auras qu'à l'inclure dans les pages de ton site où tu en auras besoin au lieu de le recopier à chaque fois...
(et on pense à gérer les erreurs en PDO : voir ce lien pour les explications : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs )
<?php //Fichier cnxBdd.php try{ $bdd =new PDO('mysql:host=localhost; dbname=mini_projet; charset=utf8', 'root', ''); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); }
Ensuite... dans ton fichier login.php:
(on active l'affichage des erreurs php : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code )
Ton IF ne sert à rien
if($rps['id_admin'] === $user && $rps['password'] === $psw)
Puisque tu as déjà les mêmes critères dans ton where ....
Et enfin..Pour gérer l'authéntification sur les différentes pages, tu dois utiliser les variables de session
<?php // fichier login.php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //démarrage des sessions session_start(); //connexion à la bdd require_once "cnxBdd.php"; //on récupère proprement les variables AVANT de les utiliser : $user=!empty($_POST['username']) ? $_POST['username'] : NULL ; $psw =!empty($_POST['password']) ? $_POST['password'] : NULL ; if($user && $psw){ $sql = 'SELECT id_admin ,password FROM admin WHERE id_admin = :id_admin AND password = :password'; $datas = array(':id_admi' => $user, ':password' => $psw); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas); $rps = $req->fetch(); if(!empty($rps)){ $_SESSION['id_admin'] = $id_admin; header("location:adminpage.php"); exit(); //toujours mettre un exit après une redirection }else{ echo ' username or passwor est incorrect '; } }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } ?>
Et donc.. pour voir si un utilisateur est bien connecté ou non.. il suffit de placer ceci au début des pages à protéger
<?php //fichier adminpage.php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //démarrage des sessions session_start(); //vérification si l'utilisateur est connecté. if(empty($_SESSION['id_admin'])){ header("location:login.php"); exit(); //toujours mettre un exit après une redirection }
Concernant le conseil pour le hashage du password.. il faut en effet utiliser les méthodes
password_hash() : http://php.net/manual/fr/function.password-hash.php
et password_verify() : https://www.php.net/manual/fr/function.password-verify.php
Mais ça .. je te laisse le coder.
Et surtout.. lorsque tu postes du code sur le forum, merci d'utiliser les BALISES DE CODE :
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
31 déc. 2018 à 22:05
31 déc. 2018 à 22:42
1 janv. 2019 à 01:34
1 janv. 2019 à 03:29
1 janv. 2019 à 12:44
Et Google est aussi ton ami, je me suis amusé à faire une recherche et on trouve des pistes à suivre.