Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: Web35 le le 06-04-2005 a 19:03:01

Titre: accès a des fichiers
Posté par: Web35 le le 06-04-2005 a 19:03:01

Bonjour,
J'ai réalisé un espace privé sur mon site, a partir duquel les utilisateurs peuvent modifiers des infortmations leur concernant a l'aide d'un formulaire. Le probleme c'est que n'importe qui peut accèder aux informations...
Il suffit de modifier la variable id dans l'url :
Par exemple :
Code:
http://www.monsite.com/prive/profil/modif.php?id=2

Il suffit juste de modifier l'id.
Comment faire pour que chaque utilisateur ne puisse acceder qu'a la modification du champ correspondant a son id. Sachant qu'il n'y en a pas beaucoup et que il n'y a pas de nouveaux qui peuvent s'inscrire (donc pas besoin d'etre automatique).

Merci

Titre: Re:accès a des fichiers
Posté par: mouez le le 06-04-2005 a 19:59:11

Tu peut gérer avec des cookies:
L'utilisateur doit avant de voir les informations entrer un mot de passe et à la validation tu enregistre un cookie contenant l'id de lutilisateur.La page qui affiche les information doit verifier la coherence entre le cookie et l'id de l'url.

Titre: Re:accès a des fichiers
Posté par: Web35 le le 06-04-2005 a 20:45:16

Je suis débutant, ;) au niveau du code sa donnerait quoi ? Je suis débutant

Titre: Re:accès a des fichiers
Posté par: mouez le le 07-04-2005 a 14:26:12

Un shemas possible est le suivant :
-Tu fais une page qui contient le formulaire (champs nom utilisateur et mot de passe)
-Tu met la proprite action du forulaire vers une page pageConnexion.php , qui gere la verification et la creation de la session.Exemple :


$connexion=connexion("nomBase") ; //connexion a la base de donnees
//identification verifie l'identite de l'utilisateur et si c'est bon elle retourne l'id de l'utilisateur.
$sessionOuverte=identification($connexion,$_POST['identifiant'],$_POST['mdp']) ;
   if ($sessionOuverte>0) //Si c'est bon
   {
      $validite=mktime() + (60*60*24) * 7 ; //la session dure une semaine
      setcookie('nomSite',$sessionOuverte,$validite) ; //On enregistre l'id dans une cookie
      ajouteSession($connexion,$sessionOuverte) ; //on ajoute l'id d'une table de session ouverte
   }   
   else //-1 pour identification incorrecte
   {
      setcookie('sessionFisoft','-1') ; //on efface des eventuelles aniciennes cookies.
   }
   header('location:http://nomSite/modif.php?id=$sessionOuverte') ;



-Enfin, dans modif.php , tu verifie si l'id de l'url correspond à une ligne dans la table des sessions ouvertes. Ou plus simplement l'existance de la cookie:



if (!isset($_COOKIE['nomSite']) || $_REQUEST['id']!=$_COOKIE['nomSite'])
//Si le cookie n'existe pas ou l'id n'est pas le meme que celui de l'url, on redirige vers une page d'identification.
header('http://nomSite/identification.php') ;



;)J'espere etre assez clair.
Si tu as des question n'hesites pas.


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.