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 :

[Sécurité] Problème de session


Sujet :

Langage PHP

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 52
    Points
    52
    Par défaut
    Ok je vois ca d'ici 1 heure, pause dejeuner

    Merci

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 52
    Points
    52
    Par défaut
    J'ai essayé avec le code que tu ma donné et ca ne marche toujours pas, en fait je croiyais que ca venait du header pcq qd je valide les login et mdp ca m'envoie à la page connexion_bdd3 et elle est vierge.

    J'ai essayé de remplacer le header par un require et la connexion marche mais seulement pour la premiere page, si je vx accéder aux autres pages ensuite ca me renvoie a connexionfaux.php

    Comment je px faire :'(

    PS : Tu avais oublié de fermer le crochet du If !Empty, je savais pas trop ou le fermé donc j'ai essyé un peu partout et ca n'a qd meme rien changé.

  3. #23
    Invité
    Invité(e)
    Par défaut
    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
     
    <?php
    require("connexion_bdd2.php");
     
    //Création d'une requete SQL de sélection de l'utilisateur
    $req = "SELECT *
    FROM utilisateur
    WHERE login='".addslashes(trim($_POST['log']))."' and mdp='".addslashes($_POST['pass'])."'";
    $cherche=mysql_query($req) or die('erreur d\'identification');
     
    if(mysql_num_rows($cherche) == 1)
    {
        //et récupération du résultat dans un tableau
        $trouve = mysql_fetch_assoc($cherche);    
        $_SESSION['login'] = $trouve['login'];
        $_SESSION['statut'] = $trouve['statut'];
        $_SESSION['nom'] = $trouve['nom'];
        $_SESSION['prenom'] = $trouve['prenom'];
        header("location :administration.php");
    }
    else
    {
        //aucun enregistrement pour ce login/mdp
        header("location :connexionfaux.php");
    }
    ?>
    essai ce code;

    qu'as tu exactement dans ton fichier connexion_bdd2

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 52
    Points
    52
    Par défaut
    Avec ou sans les bons parametres de connexion ca me renvoie la page connexion_bdd3.php vierge


    Voila ma page connexion.bdd2 :

    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
     
    <?
    // Déclaration des paramètres de connexion
     
    $host = 'localhost';  
     
    $user = 'user'; // ce n'est pas user ds mon fichier, je l'ai caché
     
    $bdd = 'bdd'; // ce n'est pas bdd ds mon fichier, je l'ai caché
     
    $passwd  = 'passwd'; // ce n'est pas passwd ds mon fichier, je l'ai caché
     
    // Connexion au serveur
     
    mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
     
    mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
    ?>

  5. #25
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    si je me fie à l'algo d'origine qui est de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (condition) {
        require(page);
    }
    ...c'est un peu normal que la page s'affiche même si la condition n'est pas remplie.
    à la différence d'un require, include appel ou non la page en fonction d'une condition.
    de son côté require intégrera toujours la page.

    remplacer le require avec un include devrait résoudre le problème.

  6. #26
    Invité
    Invité(e)
    Par défaut
    ta page connexion_bdd3.php apparait vierge c'est ça?
    peux tu faire un test avec des echos en debut et fin de page ainsi qu'un echo dans le if et un dans le else pour voir comment ça sexecute

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 52
    Points
    52
    Par défaut
    J'ai fait des echo des mdp et login a plusieurs endroit et ca marche bien.

    J'ai essayé les include et ca doit pas venir de ca, du moins pas avec le probleme que j'ai en ce moment.


    Je vous remet exactement ou j'en suis :

    Code dans ma page haut.php (donc dans toutes les pages de mon site sauf la page connexion ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     <?
     
    if(!isset($_SESSION['login']))
    {
    header("Location:connexionfaux.htm");
    }
     
    ?>
    Code dans ma page connexion_bdd3 :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <?
    	require("connexion_bdd2.php");
     
      $loginOK = false;
     
    //récupération du login et mdp en supprimant les espaces parasites (en début et en fin de chaine)
    $login=trim($_POST['log']);
    $passwd=trim($_POST['pass']);
     
    // Vérification champ de saisie non vides !
      if (!empty($login) && !empty($passwd))  
    	    {
    //Création d'une requete SQL de sélection de l'utilisateur
    $req = "SELECT *
    		FROM utilisateur 
    		WHERE login='".addslashes($login)."' and mdp='".addslashes($passwd)."'";
    		// WHERE login='$login'";
    $cherche=mysql_query($req) or die('erreur d\'identification');
     
    //et récupération du résultat dans un tableau
     
    $trouve = mysql_fetch_assoc($cherche);
     
     
    //vérification du mot de passe
    		if($trouve['mdp']==$passwd)
    			{
    				$loginOK = true;
    			};
    		};
     
     
     // Si le login est correct on ouvre la session
     
      if ($loginOK==true) 
        {
    	session_start();
    	$_SESSION['login'] = $trouve['login'];
    	$_SESSION['statut'] = $trouve['statut'];
    	$_SESSION['nom'] = $trouve['nom'];
    	$_SESSION['prenom'] = $trouve['prenom'];
    	require("administration.php");
    	}
     
      else
    	{
    		require("connexionfaux.php");
    	};
    ?>

    Code dans ma page connexion :

    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
     
    <form action="connexion_bdd3.php" method='POST' style="width: 100%; margin-top: 24px; margin-bottom: 48px;">
    <fieldset style="padding-top: 8px; padding-bottom: 8px; width: 40%; margin-left: auto; margin-right: auto;">
    <legend class="fontcolor3" style="font-variant: small-caps;">Identification</legend>
    <table style="width: 100%; border: 0;" cellpadding="5" cellspacing="0">
    <tr>
    <td style="text-align: right; width: 40%; font-variant: small-caps;">Identifiant</td>
    <td style="text-align: center; width: 60%;"><input type="text" name="log"></td>
    </tr>
    <tr>
    <td style="text-align: right; width: 40%; font-variant: small-caps;">Mot de passe</td>
    <td style="text-align: center; width: 60%;"><input type="password" name="pass"></td>
    </tr>
    </table>
    <input type="submit" name="submit" value="Valider" style="font-variant: small-caps;">
    </fieldset>
    </form>

    Le probleme rencontré :

    Quand je valide mes parametres de connexions dans la page connexion ca m'envoie bien dans ma page administration.php, mais qd je clique sur un des liens pour naviguer dans l'administration ca me renvoie à ma page connexionfaux.htm

    Merci d'avance

  8. #28
    Invité
    Invité(e)
    Par défaut
    met dans ta page haut un session_start avant le petit code de vérification
    (je te lavais dit dans le 2ieme message de ce topic, je croyais que tu lavais fait)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?
    session_start();
    if(!isset($_SESSION['login']))
    {
    header("Location:connexionfaux.htm");
    }
    ?>

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 52
    Points
    52
    Par défaut
    J'ai deja essayé de faire ca et ca me retourne cet erreur :
    Notice: A session had already been started - ignoring session_start() in c:\program files\easyphp1-7\www\grh191\haut.php

    Et de plus si je tape le nom de mes pages dans la barre d'adresse je px y acceder sans me conecter ...

  10. #30
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sandara
    J'ai deja essayé de faire ca et ca me retourne cet erreur :
    Notice: A session had already been started - ignoring session_start() in c:\program files\easyphp1-7\www\grh191\haut.php

    Et de plus si je tape le nom de mes pages dans la barre d'adresse je px y acceder sans me conecter ...
    cette erreur te dis que les entets ont deja eté envoyé, plus concretement ça signifie que tu as qq chose avant le session_start or il ne faut rien avant, le session start doit etre en debut de page sans code, ni meme espace avant

  11. #31
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 52
    Points
    52
    Par défaut
    Merci c'est bon le probleme est resolu, ca venait bien du session_start !

    Je l'ai retiré de ma page haut.php qui etait apellé par des require en chaque debut de page, et je l'ai mis manuelement dans chaque page et maintenant ca marche !

    Merci beaucoup !

    Juste une derniere petite question et je ne vous embete plus :

    La commande session_destroy(); marche de quel maniere ?
    Je créer un bouton Se deconnecter avec une page php derriere ou je met seulement dedans ce code la ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
     
    session_destroy();
     
    // + un lien pour revenir à l'accueil
     
    ?>
    Merci d'avance !

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Points : 52
    Points
    52
    Par défaut
    C'est bon j'ai réussi a trouver comment me déconnecter. J'ai utiliser le script suivant et ca marche à merveille !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?
    session_start();
     
    unset ($_SESSION['login']);
    	if ( isset ($_SESSION['login']))
    		{
    	$resultat = "La déconnection a échouée !"; }
    	else
    		{
    		$resultat = "Vous avez été déconnecté"; }
     
    echo $resultat;
    ?>

    Merci beaucoup à tous !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Sécurité] problème déconnexion d'une session
    Par gazelle dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2007, 19h31
  2. Réponses: 2
    Dernier message: 08/01/2007, 20h46
  3. [Sécurité] Problème de sessions avec IE6
    Par TheMoutch dans le forum Langage
    Réponses: 8
    Dernier message: 21/08/2006, 17h52
  4. [Sécurité] Problème avec des variables de session
    Par zoom61 dans le forum Langage
    Réponses: 28
    Dernier message: 18/08/2006, 21h05
  5. [Sécurité] Problème de valeur de session
    Par navis84 dans le forum Langage
    Réponses: 19
    Dernier message: 22/06/2006, 10h48

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