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 :

Redirection header suite à variable session [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 64
    Points
    64
    Par défaut Redirection header suite à variable session
    Bonjour,

    voilà je manipule depuis peu les sessions et si j'ai réussie a placer ma session start() au bon endroit, là je n'arrive pas à refaire ma rediretion du header que j'emploi depuis peu aussi.

    Je vous présente mon code si jamais vous pouviez m'éclaircir, ca m'aiderait bien. Merci



    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <?
    session_start();
    if (!isset($_SESSION[login])&&!isset($_SESSION[Pass])&&($loginOK=true;))
    {
    print"salut";
    header("Location:http://monsite/Articles.php");
    }
     
    else
    {
    require_once("envsql.php");
     
    if($_POST[soum]!="envoyer")
    {
    print"
    <form action=\"MotPass.php\" method=POST>
        <table border=0 width=400 align=center>
        <tr>
         <td width=200><b>Votre login</b></td>
         <td width=200>
          <input type=text name=login>
         </td>
        </tr>
        <tr>
         <td width=200><b>Votre mot de passe<b></td>
         <td width=200>
          <input type=password name=pass>
         </td>
        </tr>
        <tr>
         <td colspan=3>
          <input type=submit name=soum value=envoyer>
         </td>
        </tr>
       </table>
       ";
       }
     
    else
    	{
    	$connexion=mysql_connect($host, $login, $pass);
     
    	if (!$connexion)
    		{
    		print"erreur de connexion";
    		}
    		else
    			{
    			$base=mysql_select_db($db);
     
    			if(!$base)
    				{
    				print"erreur de connexion de la base de donnees";
    				}
    				else
    					{
     
    $requete="select motpass from $table where login='$_POST[login]';";
    $result=mysql_query($requete);
    $enreg=mysql_num_rows($result);
     
    if($enreg<0)
    {
    print "rien a afficher";
    }
     
    else 
    	{
    	$tableau=mysql_fetch_array($result);
    	$passecrypteB=crypt($_POST[pass], $tableau[motpass]);
     
    	if($passecrypteB==$tableau[motpass])
    	{
    	$loginOK=true;
    	$_SESSION[login]=$_POST[login];
    	$_SESSION[pass]=$_POST[pass];
    	print "Vous etes bien connecte<br>";
    	print"<a href=GestionArticles1.php>GestionArticles1</a>";
    	}
    	else
    		{
    		print"Mauvais mot de passe, merci de recommencer<br>";
    		}
    	} 
     
    }
    }
    }
     
    }
     
    ?>

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Alors je te conseillerai de regarder ceci : Comment faire une redirection ?
    Plus ceci : Explications et correction de l'erreur "headers already sent"

    Et dans le cas que ca ne t'aiderait pas, fais une petite recherche dans le Forum Sécurité où cette question est souvent posée.

    Si après tout ca, ca marche toujours pas viens nous en parler

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je suppose que les Trois conditions doivent être remplies pour être redirigé vers la page Articles.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (isset($_SESSION[login])&&isset($_SESSION[Pass])&&($loginOK=true;))
    {
    print"salut";
    header("Location:http://monsite/Articles.php");
    }
    et pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (!isset($_SESSION[login])&& !isset($_SESSION[Pass])&&($loginOK=true;))
    {
    print"salut";
    header("Location:http://monsite/Articles.php");
    }

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Pour compléter la remarque je dirais aussi qu'il y a deux erreurs (en rouge)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_SESSION[login])&&isset($_SESSION[Pass])&&($loginOK=true;))

  5. #5
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Salut,

    j'ai essayé pas mal de chose a commencer par modifier ma lige de test en mettant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_SESSION[login])&&isset($_SESSION[pass])&&($loginOK==true))
    J'ai aussi tenté de faire appel au header avec un require_once.
    J'ai mis des simples cotes dans mon adresse
    J'ai virer mon print "salut" pour ne pas polluer
    J'ai mis de balises php juste pour le test et réouvert pour le reste

    Rien y fait ca redirige toujours pas.

  6. #6
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    hop hop

    une redirection vient de se faire en limitant mon test

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 105
    Points : 84
    Points
    84
    Par défaut
    o lieu de marquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location:http://monsite/Articles.php");
    test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location:www.monsite/Articles.php");
    moi comme ca ca fonctionne.
    sinon il ne faut pas de code html avant un header

    JJ

  8. #8
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    oui c'est bon ca marche a present en ayant mis cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_SESSION[login])&&isset($_SESSION[pass])&&($loginOK=true))
    , par contre pour la suite, c'est bizarre.

    -Finalement sur un même poste PC n'importe qui peut accéder à ma page puisque on ne redemande pas l'authentification, c'est tout de suite rediriger.

    -Ensuite j'ai mis ca dans les pages que je veux protéger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?
    session_start();
    ?>
    tout au début de ma page, et en effacant les cookies je parviens quand même à avoir accées

    rahh et avec ca il inscrit dans mes sessions les mots de pass et le login de connexion a ma base auquel je fait apppel par require_once !!!

  9. #9
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Est ce que il impossible de préserver dans mes sessions le pass et le login d'un administrateur lorsque derriére j'ai un require_once qui récupére mes identifiants de connexion à ma base ?

    et par ailleurs, quel est le code de test sur mes pages protégés à insérer. Je trouve trop d'infos qui n'ont pas l'air d'aller.

  10. #10
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    BOn en faite j'avais les mêmes noms de variables dans mon include et mes variables de pass et login, j'ai changé les noms des variables et ca à l'air de permettre de préserver ce que je veux dans mes sessions du moins quand je fais un appel adapté.

    me reste plus que le contrôle dans mes pages protégées.

  11. #11
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    j'ai choisi de mettre cela dans mes pages protégées :

    <?
    session_start();
    if(!(isset($_SESSION["lelogin"]))||($_SESSION["lelogin"]==''))
    {
    header("location:erreurs.php");
    }
    ?>

    Est ce que cela vous parait correcte est suffisant pour la sécurité ?

    j'aurais préféré un truc comme ca mais ca protége pas :
    [CODE]<?
    session_start();
    if (!isset($_SESSION[login])&&!isset($_SESSION[pass])&&($loginOK=false))
    {
    header("location:erreurs.php");
    }
    ?>/CODE]

  12. #12
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    session_start();
    if (!isset($_SESSION[login])&&!isset($_SESSION[pass])&&($loginOK=false))
    {
    header("location:erreurs.php");
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (!isset($_SESSION[login]) ||!isset($_SESSION[pass])||($loginOK==false))
    {
    header("location:erreurs.php");
    }
    Tu n'as pas corrigé ces erreurs qui avaient été mentionnées dans le post de kerod plus haut.
    Tu dois bien mettre == (comparaison) et pas un simple = (affectation)
    et si tu mets !isset(..) tu dois utiliser l'opérateur || (ou) et pas (and)

  13. #13
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Merci

    j'avais effectivement fini par mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!isset($_SESSION[login]) ||!isset($_SESSION[pass])||($loginOK==false))
    pour mes pages protegées.

    J'avais bien prie note des indications de Kerod mais en mettant (==) j'avais pas de redirection alors que un (=) me rediriger directement. J'ai remis le comparateur (==)

    Tout semble aller correctement à présent. Bonne fin de soirée.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Oki doki. n'oublie pas de signaler signaler ton problème comme étant résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Perte de valeur des variables session avec header
    Par Norhan05 dans le forum Langage
    Réponses: 11
    Dernier message: 31/03/2009, 16h05
  2. variable session dans header en include
    Par hpl76 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 16/09/2008, 14h44
  3. Pb Redirection (Header) apres fermeture de session
    Par Ygalr22 dans le forum Langage
    Réponses: 4
    Dernier message: 20/12/2007, 14h51
  4. [Cookies] Fonction header et variables de session
    Par galinette dans le forum Langage
    Réponses: 3
    Dernier message: 18/07/2007, 09h14
  5. pb redirection constante, variable session vide
    Par ben_skywalker dans le forum Langage
    Réponses: 6
    Dernier message: 14/02/2007, 16h43

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