IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Securiser mon site


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    288
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 288
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre éclairé Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Par défaut
    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

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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é';
    }

  4. #4
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    if ($_SESSION['logged']){}
    else header("location: index.php");
    ?>

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    288
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 288
    Par défaut
    Merci a tous ceux qui ont repondu,
    Mais si je fais ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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é

  6. #6
    Membre éclairé Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Par défaut
    tu t'es surement identifie et tes sessions ne sont pas vides.
    efface les sessions, ou plus simplemt ferme ta page-site, et recommence

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Fais toi une procédure de déconnexion qui contiendra le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. [MySQL] Securiser les données de mon site web
    Par dtthierry dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/08/2009, 17h28
  2. [FLASH MX] Probleme sur mon site....!!
    Par thewill dans le forum Flash
    Réponses: 2
    Dernier message: 07/04/2005, 13h11
  3. [VB.NET] Proteger mon site par mot de passe
    Par stephane93fr dans le forum ASP.NET
    Réponses: 8
    Dernier message: 19/01/2004, 09h53
  4. Débutant : architecture de mon site flash.
    Par Jazzy Troll dans le forum Flash
    Réponses: 3
    Dernier message: 12/01/2004, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo