Problème php

leelie19 -  
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je m'agace bcp sur mon site, je voudrais que quand la session est ouvert et que le login est admin cela m'affiche des pages ... Je ne sais pas comment faire...
j'ai fais :
<?php
if (isset($_SESSION['util'])and($_POST['login']='admin')) // J'ai rajouté isset() car si la session n'est pas ouverte, un message d'erreur s'affichera
{
?>
mais ça ne marche pas.
En gros, il faudrait que je fasse : si la session et ouverte et si le login = admin alors on affiche les pages
Pouvez vous m'aidez ?
Merci d'avance !
A voir également:

2 réponses

Lobsang Rampa
 
Bonjour,

En gros, il faudrait que je fasse : si la session et ouverte et si le login = admin alors on affiche les pages
Plutôt l'inverse: Vous vérifiez au début si la session existe et a la bonne valeur. Si elle n'existe pas vous renvoyez sur une page d'erreur ou d'échec de la connexion ou même la page d'accueil du site sinon vous ne faites rien(et la page va s'afficher normalement)

Pour ce faire vous pouvez utiliser la fonction header().

Tester votre variable de session en l'affichant et n'oubliez pas que vous devez mettre un session_start(); obligatoirement en tout début de code obligatoirement si vous voulez utiliser ou créer des variables de session.
Un réflexe qui faut que vous ayez c'est de chercher vos renseignements sur le manuel php et de toujours l'avoir à portée de main quand vous développez:

http://php.net/manual/fr/features.sessions.php


/*--------------------------------------------------------------------*/

et si le login = admin

Ceci me choque et peut être source d'ennuis,
_Pour la sécurité: l'admin est obligé d'être enregistré sous le pseudo admin. C'est déjà une facilité pour quelqu'un qui veut craquer le mot de passe et identifiant administrateur il aura pas à chercher loin et une fois qu'il le sait est sûr que celui ci ne changes pas+il peut le voir dans le code s'il arrive à récupérer la page php.

_Pour l'évolution du programme dans le temps:
Il ne peut y avoir qu'un seul admin qui s'appelle admin.
Ce qu'il faut faire c'est ajouter dans votre table un champ 'rang' ou 'droit'. Il prend une valeur pour l'administrateur et une valeur pour les simples membres (s'il y en a). Par exemple l'administrateur aura comme rang 1 tandis que les utilisateurs membres auront comme rang 0.
Cela permet plusieurs choses: Si vous avez plusieurs utilisateurs qui peuvent avoir les droits ou le rang administrateur c'est possible. Vous pouvez ajouter un rang ou droit intermédiaire si besoin pour un membre ayant quelques un des droit administrateurs mais pas tous(rang=2).
L'administrateur peut s'appeler leelie19 ou machintruc ce qui est quand même plus dur à trouver qu'admin pour quelqu'un tentant d'usurper identifiant et mot de passe. Vous pouvez aussi changer quand vous voulez de pseudo, ce qui est une règle de sécurité et une régle pratique tout court.

Cela fait partie de l'analyse et la conception de votre SGBD. En terme de développement vous avez à tester que le mot de passe est bien associé au bon identifiant dans la table(même ligne) et que le rang est bien celui nécessaire pour pouvoir avoir les fonctionnalités d'administration. Avec de multiples utilisateurs et des droits différents pour des rangs différents il vous suffit de faire un texte pour afficher ou non la fonctionnalité:

// rang modérateur est de 2, rang admin est 1, ranng membre est 0
// exemple seul l'admin peut supprimer un message, admin et modérateur //peuvent modérer
if($rang>0){
echo "<p>Modérer les messages</p>";
/*Formulaire et bouton pour modérer/afficher la liste des messages et utilisateurs et autres fonctionnalités associées*/
if($rang==1){ // pour l'admin uniquement
echo "Supprimer message"
/* code et bouton pour afficher+ supprimer un message*/
}

}

Voilà c'est bien entendu un exemple qui n'as peut être aucun rapport avec votre S.I. et même si pour l'instant vous n'avez besoin que d'un seul admin comment garantir que d'ici 1an, 2 ans voire 10 ans vous n'ayez pas besoin de plusierus administrateur, de plusieurs rangs, d'ajouter des fonctionnalités impliquant de multiples administrateurs et des rangs différents...
Dans ces cas là(assez problable si votre site réussit) vous n'aurez pas à refaire tout le code ainsi que la base, le programme est prêt à accueilir vos modifications. Gain de temps et généralmlement d'argent(tout refaire pour améliorer signifies repartir de zéro en migrant une base de données).
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
et en plus une autre erreur:

and($_POST['login']='admin'

and($_POST['login']=='admin'
0