J'aimerais sécuriser mon espace admin
Utilisateur anonyme
-
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40050 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
- Mot de passe admin - Guide
- Espace stockage google - 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...