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 :

Impossible d'accéder aux pages à cause de Session_start


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut Impossible d'accéder aux pages à cause de Session_start
    Boujour à tous et à toutes,
    Sur ma page d'index j'utilise ce bout de code pour me connecter :

    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
     
    session_start();
     
    if (isset($_POST['Deconnecter']))
    {
    	session_unset();
    }
     
    if (isset($_POST['Connecter']))
    {
     
    $login=$_POST['txtlogin'];
    $motdepasse=$_POST['txtmdp'];
     
    $reqauthentification="SELECT * 
    			FROM COMPTE
    			WHERE LOGINCPT0T='$login'
    			AND MDPCOMPTET='$motdepasse'";
     
    $curseurcompte=mysql_query($reqauthentification);
     
    $monjeucompte=mysql_fetch_object($curseurcompte);
     
    	if ($monjeucompte)
    	{
    		$_SESSION['login']=$monjeucompte->LOGINCPT0T;
             }
    Puis sur les pages que je souhaite sécuriser pour vérifier l'identité du membre j'utilise le code suivant :

    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
     
    <?
     
    session_start();
     
    if (isset($_SESSION['login']))
    {
     
    	if ($_SESSION['login']=="")
    	{
    		header("location:accueil.php");
    	}
    	else
    	{
    		header("location:accueil.php");
    	}
     
     
    }
     
     
    ?>
    Les 2 bouts de codes sont correctement placés (avant les balises html), le problème c'est que désormais je ne peux accéder à aucune page de mon site, je suis automatiquement redirigé vers la page d'accueil. Où ai je commis une erreur ???

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Bè c'est normal quelque soit le contenu de la variable login de ta session tu redirige vers la page d'accueil

    Evite les short open tags (<?) et ton 2° code peut être simplifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    session_start(); 
    if (empty($_SESSION['login'])) header("location:accueil.php");
    else header("location:accueil.php");
    ?>

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 83
    Points : 71
    Points
    71
    Par défaut
    mais quelque soit ton mot de passe tu es redirigé vers la page d'accueil, ce sont tes conditions qui ne vont pas ?!

  4. #4
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    J'avais vu effectivement que quelque soit mon login je redirigais vers la page d'acceuil Mais qu'est ce que les les "short open tags" ????

  5. #5
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    En php on n'initie pas un code avec <? mais avec <?php
    Ce que l'on appele short open tag c'est le fais d'utiliser <? sans le php dérriere.

    Comme le dit trotters ce sont tes conditions qui ne vont pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    session_start(); 
    if (empty($_SESSION['login'])) header("location:accueil.php");
    else header("location:accueil.php");
    ?>
    Le code ci dessus veut dire.
    Si Session login est vide, renvoi vers la page d'accueil... => Normal
    Sinon renvoi vers la page d'accueil => Pas normal

    Dans les deux cas tu renvoi vers la page d'accueil... c'est donc dans le else que se situe ton probleme

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  6. #6
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    c'est <? au lieu de <?php, <?= au lieu de <?php echo, ... c'est pas une bonne pratique.

  7. #7
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    donc lorsque j'écris du php j'écrirais désormais :

    Mais techniquement qu'est ce que ça change ???

  8. #8
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Tu rencontrera des soucis le jour où tu utilisera du XML avec le PHP par exemple.
    Voici un lien qui t'explique plus clairement le problème : http://blog.wampserver.com/index.php...ort-open-tags/

  9. #9
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    D'accord, et si je fais du SOAP, j'aurais donc un problème ???

  10. #10
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    tu risques oui, donc le mieux est de mettre <?php à partir de maintenant, comme déjà dit 3 fois.

Discussions similaires

  1. Création de sommaire, comment accèder aux pages?
    Par Boogzz dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 13/11/2008, 11h25
  2. Réponses: 2
    Dernier message: 20/02/2008, 14h18
  3. Impossible d'accéder aux tables non créées par dbo
    Par Pete dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/10/2005, 14h01

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