Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/11/2007, 16h37   #1
Membre du Club
 
Inscription : juillet 2005
Messages : 288
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 288
Points : 56
Points : 56
Envoyer un message via MSN à rane
Par défaut Securiser mon site

Bonjour tout le monde ,
Voila je voudrais sécuriser mon site faire de sorte celui qui veut y entrer soit identifié sur la page index
Dans la page index j'utilise les sessions mais il ne marche pas car quand je prend par exemple un nom de fichier du site que dans l'adresse il y arrive sans conduire à la page index .
Voici le code de la page index.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
    // on teste si le visiteur a soumis le formulaire de connexion  
   if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { 
       if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { 
 
          $base = mysql_connect ('localhost', 'voc', 'voc'); 
         mysql_select_db ('voc', $base); 
 
         // on teste si une entrée de la base contient ce couple login / pass 
       $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; 
         $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
       $data = mysql_fetch_array($req); 
 
        mysql_free_result($req); 
         mysql_close(); 
 
         // si on obtient une réponse, alors l'utilisateur est un membre 
       if ($data[0] == 1) { 
          session_start(); 
           $_SESSION['login'] = $_POST['login']; 
            header('Location: membre.php'); 
           exit(); 
         } 
         // si on ne trouve aucune réponse, le visiteru s'est trompé soit dans son login, soit dans son mot de passe 
        elseif ($nb == 0) { 
            $erreur = 'Compte non reconnu.'; 
         } 
         // sinon, alors la, il y a un gros problème :) 
         else { 
            $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; 
         } 
      } 
      else { 
         $erreur = 'Au moins un des champs est vide.'; 
      }  
 }  
  ?>
Merci de bien vouloir m'aider
rane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 16h52   #2
Membre éclairé
 
Avatar de Linio
 
Inscription : octobre 2005
Messages : 427
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 427
Points : 304
Points : 304
Pour se faire tu dois passer par les sessions.

Au lieu d'avoir du $_POST tu auras des $_SESSION qui se passent de page en page, et tu vérifies à chaque page ta variable de session que tu as informé a la page de login.

Il y a des articles dessus sur dvp.com
__________________
Linio
Linio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 16h53   #3
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Vu comment tu as organisé tes pages, une solution intéressante pour toi serait de tester sur toutes tes pages si la variable de session login a été renseignée (vu que tu ne la renseignes seulement si quelqu'un est correctement loggé).
par exemple avec le code suivant:

Code :
1
2
3
4
5
6
7
8
//Page différent de index.php
session_start(); 
    if(isset($_SESSION['login'])){
    echo 'loggé';
}else
{
echo 'non loggé';
}
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 16h57   #4
Membre émérite
 
Avatar de julien.63
 
Inscription : décembre 2005
Messages : 1 322
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 1 322
Points : 981
Points : 981
Envoyer un message via MSN à julien.63
Citation:
je prend par exemple un nom de fichier du site que dans ladresse il y arrive sans conduit a la page index
euuh c'est pas très clair...

néanmoins, fait attention car session_start() doit être la première chose renvoyé par ta page, avant toute écriture, avant même un seul espace.

Ensuite pour obliger (si j'ai bien compris) les utilisateurs à s'identifier par ta page index. Tu testes au début de chaque page, grâce à une variable de session si l'utilisateur est logué. Dans le cas contraire, tu rediriges vers la page index.

Code :
1
2
3
4
<?php 
if ($_SESSION['logged']){}
else header("location: index.php");
?>
julien.63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 17h37   #5
Membre du Club
 
Inscription : juillet 2005
Messages : 288
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 288
Points : 56
Points : 56
Envoyer un message via MSN à rane
Merci a tous ceux qui ont repondu,
Mais si je fais ce code
Code :
1
2
3
4
5
6
7
session_start(); 
    if(isset($_SESSION['login'])){
    echo 'loggé';
}else
{
echo 'non loggé';
}
au debut d un fichier du site il renvoit loggé
rane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 18h16   #6
Membre confirmé
 
Avatar de bourvil
 
Inscription : juin 2002
Messages : 353
Détails du profil
Informations personnelles :
Localisation : Israël

Informations forums :
Inscription : juin 2002
Messages : 353
Points : 218
Points : 218
tu t'es surement identifie et tes sessions ne sont pas vides.
efface les sessions, ou plus simplemt ferme ta page-site, et recommence
__________________
Franchement, je suis capable du meilleur comme du pire, mais, dans le pire, c'est moi le meilleur.
Coluche
bourvil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 18h51   #7
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Fais toi une procédure de déconnexion qui contiendra le code suivant:

Code :
unset($_SESSION['login']);
Ce code te "déconnectera" en supprimant la session 'login'. D'une manière générale, je te conseille de lire des tutoriaux sur les variables de session. Cela te sera très utile pour ton développement.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h14.


 
 
 
 
Partenaires

Hébergement Web