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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Perte d'informations entre deux pages [Wamp]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre actif
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Points : 267
    Points
    267
    Par défaut Perte d'informations entre deux pages
    Bonsoir.

    Je fais un petit programmequi utilise les session.

    Un utilisateur se logue avec identifiant et mot de passe. Une fois connecté il est envoyé sur une page qui verifie log et mot de passe. si l'utilisateur est authentifié alors on remplit une variable session avec les info utilisateur et on redirige vers Le site. probleme je perd les infos de la session. Pourtant je met les session start habituels.

    je travail sous la derniere version de wamp. J'utilise une base de données mysql. Mon os est windows vista et je fais mes test sous IE 7 .

    voici le code du formulaire:

    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
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
     
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
     
    <html>
    <head>
    <title>Page title</title>
    <style>
    p
    {
    color:#FF0000;
    font-size:9 pt
    }
    </style>
    <script>
    function verif()
    {
     if(document.formulaire.log.value=="")
     {
     	 alert("veuillez entrer un pseudo");
     }
     
     
      if(document.formulaire.mdp.value=="")
     {
     	 alert("veuillez entrer un mot de passe");
     
     
     
     }
     
     
     
    }
    </script>
    <?php
    if(isset($_GET))
    {
     	if(isset($_GET['verif']))
    	{
    	 ?>
    	 <script>
    	 verif();
    	 </script>
    	 <?
    <?php
    	}
    }
     
     
    ?>
    </head>
    <body>
    <center>
    <form  method="post" action="verif_login.php" name="formulaire">
    <table>
    <tr>
    <td>
    log
    </td>
    <td>
    <input name="log" type="text" value="entrez votre pseudo" onBlur="javascript:verif()">
    </td>
    </tr>
    <tr>
    <td>
    mot de passe
    </td>
    <td>
    <input name="mdp" type="password" value="*******"  onBlur="javascript:verif()">
    </td>
    </tr>
    <tr>
    <td colspan="2">
    <center>
    <input type="submit" value="se connecter">
    </center>
    </td>
    </tr>
    </table>
    <?php
    if(isset ( $_GET["erreur"]))
    { 
      if($_GET['erreur']=="log")
    	{
    	  ?>
    		<p class="erreur">le login n'existe pas</p>
    		<?php
    	}
    	 if($_GET['erreur']=="mdp")
    	{
    	  ?>
    		<p class="erreur">mot de passe incorrect</p>
    		<?php
    	}
    }
     
    ?>
    </center>
     
    </body>
    </html>
    voici le code de la page de verification

    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
     
    <?php 
    session_start();
    include("utilisateur_sql.php");
     
    $sql_util=declare_sql();
    $pseudo=$_POST['log'];
    $table_utilisateur=recup_tout($sql_util,$pseudo);
    if($table_utilisateur==false)
    {
     
     header("location:http://127.0.0.1/finance/login.php?erreur=log");
     
    }
    else
    {
     $mot_de_passe=$_POST['mdp'];
     if($mot_de_passe==$table_utilisateur['mdp_md5'])
     {
     
       $_SESSION['id_utilisateur']=$pseudo;
    	 $_SESSION['nom']=$table_utilisateur['nom'];
    	 $_SESSION['prenom']=$table_utilisateur['prenom'];
    	 $_SESSION['budget']=$table_utilisateur['montant'];
    	 $_SESSION['co']=true;
     
    	 //echo "header";
     
     
    	 ?>
    	 header("location:http://127.0.0.1/finance/essai.php");
    	 <?php
     
     }
     else
     {
        header("location:http://127.0.0.1/finance/login.php?erreur=mdp");
     }
    }
     
     
     ?>
    et voici le code de la page essai.php sur laquelle je redirige un utilisateur s'il est bien authentifié.(c est juste une page qui fait un var_dump sur la session pour vérifier).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    session_start();
    var_dump($_SESSION);
    ?>
    essai m'affiche array(0)

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Il est possible que ce soit dû au fait que vous n'utilisiez pas le même nom de serveur au niveau des redirections :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("location:http://127.0.0.1/finance/login.php?erreur=log");
    Puisqu'ici vous utilisez l'adresse mais si vous atteignez d'abord la page à partir du nom de la machine, le cookie, et donc la session, ne seront plus communs.

    Notez que vous obtiendrez le nom de la machine ou adresse de manière dynamique (donc portable) via les variables $_SERVER['SERVER_NAME'] ou $_SERVER['SERVER_ADDR'].

  3. #3
    Membre actif
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Points : 267
    Points
    267
    Par défaut
    J'avoue ne pas bien comprendre l'explication.

    Parce que je suis passé sous WAMP recemment . Sous easy-PHP je faisais comme ça et j'ai jamais eu ce problème.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Lorsque vous êtes sur cette page, quelle adresse est affichée dans votre navigateur (au départ, ie avant toute redirection) ?

    Si vous utilisez des adresses différentes, vous aurez un cookie pour chacune d'entre elles (donc perte de la session). Exemple avec : 127.0.0.1 et localhost. Pour vous ça ne change rien mais en interne le "nom" de serveur associé au cookie n'est plus le même : un cookie sera créé avec pour domaine 127.0.0.1 et l'autre avec localhost.

    Ce n'est qu'une hypothèse ...

  5. #5
    Membre actif
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Points : 267
    Points
    267
    Par défaut
    hé bien ce n'est pas qu'une supposition c'est ça.

    En faite le problème c'est que j'accédé a wamp en tapant dans le navigateur http://localhost/finance. Si je l fait en tapant http://127.0.0.1/finance ça marche.

    merci beaucoup j'ignorai que ça faisait une différence pour le serveur.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par sneb5757
    merci beaucoup j'ignorai que ça faisait une différence pour le serveur.
    Ce n'est pas le serveur qui gère cela ainsi : c'est le client (votre navigateur). Il n'envoie que les données des cookies dont le domaine correspond à celui qui en est à l'origine de leur création (ie lorsque vous faîtes appel à la fonction setcookie en PHP), pour des questions de sécurité notamment.

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

Discussions similaires

  1. Perte de données entre deux pages. ( "Bouton Suivant" et "Précédent" )
    Par Shakuro dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 17/03/2012, 15h36
  2. Perte d'informations entre deux formulaires
    Par Eruil dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/07/2007, 10h12
  3. passage d'information entre deux pages
    Par hamham dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 30/01/2007, 16h36
  4. [VB.NET] Perte de focus entre deux form
    Par toniolol dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/07/2005, 08h00
  5. passage de parametre entre deux page asp
    Par tomtom25 dans le forum ASP
    Réponses: 4
    Dernier message: 01/04/2005, 16h16

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