J'aimerais sécuriser mon espace admin
Utilisateur anonyme
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, j'aimerais savoir comment je puis-je faire pour sécuriser mon espace admin en PHP j'ai essayé quelque chose mais cela ne marche pas je vous donne mon code PHP merci d'avance pour toute aide ! Ah oui j'ai ajouter une colonne dans ma base de donnée nommé admin !
EDIT : Ajout du langage dans les balises de code pour avoir la coloration syntaxique !
<?php session_start(); include "connexion.php"; $connexion = connexionBd(); if (isset($_SESSION['admin']) != 1) { echo '<script>alert("Vous n avez pas les privilèges nécessaires pour accéder à cette page");</script>'; header("Location: ../index.php"); exit(); } else { if (isset($_POST['admin'])) { $designation = htmlspecialchars($_POST['designation']); $description = htmlspecialchars($_POST['description']); $categorie = htmlspecialchars($_POST['categorie']); $image = htmlspecialchars('images/magasin/' . $_FILES['image']['name']); $prix = htmlspecialchars($_POST['prix']); $TVA = htmlspecialchars($_POST['TVA']); if (!empty($_POST['designation']) and ! empty($_POST['description']) and ! empty($_POST['categorie']) and ! empty($_POST['prix']) and ! empty($_POST['TVA'])) { $insert = $connexion->prepare("INSERT INTO article(id_categorie, designation, prix, tva, description, img_article) VALUES(?, ?, ?, ?, ?, ?)"); $insert->execute(array($categorie, $designation, $prix, $TVA, $description, $image)); $mesage = "L'article a bien été envoyé !"; }
EDIT : Ajout du langage dans les balises de code pour avoir la coloration syntaxique !
A voir également:
- J'aimerais sécuriser mon espace admin
- Espace insécable - Guide
- Espace de stockage gmail plein - Guide
- Livebox admin - Guide
- Espace stockage google - Guide
- Mot de passe admin - Guide
1 réponse
Bonjour,
Comme déjà dit dans ta précédente question :
Il y a plusieurs soucis dans ton code.
- Déjà.. la fonction htmlspecialchar ne s'utiliser QUE pour l'affichage et en aucun cas avant d'insérer les données en BDD.
- Il faut activer l'affichage des erreurs PHP, activer les erreurs PDO et placer chaque requête dans un bloc try/catch
Je t'invite à lire ET A APPLIQUE le contenu de ces LIENS :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et concernant ton code...
Le !=1 s'applique au ISSET ... pas au contenu de la variable de SESSION.
Si tu veux vérifier que la variable existe et n'est pas égale à "1"
le mieux serait :
Comme déjà dit dans ta précédente question :
Il y a plusieurs soucis dans ton code.
- Déjà.. la fonction htmlspecialchar ne s'utiliser QUE pour l'affichage et en aucun cas avant d'insérer les données en BDD.
- Il faut activer l'affichage des erreurs PHP, activer les erreurs PDO et placer chaque requête dans un bloc try/catch
Je t'invite à lire ET A APPLIQUE le contenu de ces LIENS :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et concernant ton code...
if (isset($_SESSION['admin']) != 1) {
Le !=1 s'applique au ISSET ... pas au contenu de la variable de SESSION.
Si tu veux vérifier que la variable existe et n'est pas égale à "1"
le mieux serait :
//on récupère PROPREMENT la variable AVANT de l'utiliser (voir les liens que je t'ai donné ) $admin = !empty($_SESSION['admin']) ? $_SESSION['admin'] : NULL; if($admin != 1 ) { //.. le reste de ton code
Il reste l'activation des erreurs PDO
L'utilisation des TRY/CATCH
La récupération PROPRE des variables AVANT de les utiliser
La fonction htmlspecialchars qui n'a rien à faire ici dans ton code
...
bref.. quelques petites choses à corriger donc...