2009-05-28 8 views
0

Lorsque j'actualise mon application Flex, la page ne conserve pas son état et revient à la page de connexion. Je ne sais pas pourquoi cela se produit, Voici ma peiece de session de traitement de code.Problème de session lors de l'actualisation

fonction publique doLogin ($ nom d'utilisateur, mot de passe $) {

 include("connection.php"); 
     session_start(); 
     session_register("session"); 


     $query = "SELECT * 
        FROM users 
        WHERE username = '".mysql_escape_string($username)."' 
        AND password = '".mysql_escape_string($password)."'"; 
     $result = mysql_fetch_array(mysql_query($query)); 
     if(!$result) { 
     session_unset(); 
     return 'no'; 
     } 
     else 
      { 
     $session['id']=session_id(); 
     $session['username']=$username; 
     return 'yes'; 
      } 
     } 

    public function Logout() { 

    session_start(); 
    session_register("session"); 
    session_unset(); 
    session_destroy(); 
    return 'logout';   
    } 

dois-je faire quelque chose sur mon volet Flex qui charge après une connexion réussie.

Répondre

0

votre problème ici est

else 
        { 
      $session['id']=session_id(); 
      $session['username']=$username; 
      return 'yes'; 
        } 
      } 

$ session ne se définit pas ... si vous voulez stocker quelque chose dans le tableau de la session utiliser _SESSION

$
0

Une fois la connexion établie, redirigez-la vers une autre page.

Par exemple

if(doLogin($user,$pass) == 'yes') 
{ 
    Header("Location: index.php"); 
    exit; 
} 
0

Par refresh voulez-vous dire recharger la page (F5). Si oui, c'est la raison! Un rechargement/rafraîchissement va tout réinitialiser. Donc, quel que soit votre état de départ (login) sera affiché lorsque vous rechargez/actualisez. Si vous souhaitez conserver l'état des applications, chaque fois que l'état change, vous devez enregistrer ses détails dans une base de données puis, lorsque l'utilisateur accède à la page de démarrage, recharger sa session. Si le navigateur est actualisé/rechargé (ou tombe en panne, etc.), vous n'avez aucun moyen de déconnecter l'utilisateur. Vous devez donc revenir au dernier état connu lorsque la page de connexion est touchée. Cela aurait bien sûr d'importants problèmes de sécurité si l'utilisateur ne se connectait pas correctement.

0

Maintenez-vous l'ID de session dans votre application Flex et envoyez-le avec de nouvelles demandes?

Pouvez-vous tester & confirmer que le même ID de session est renvoyé à partir de vos scripts PHP à chaque requête dans Flex?

Conservez-vous l'ID de session dans un cookie en dehors de votre application Flex? Si ce n'est pas le cas, vous perdrez votre identifiant de session lors de l'actualisation de la page. Vous aurez besoin de stocker dans le stockage local ou dans un cookie, et y accéder lorsque votre application flexible commence.

Questions connexes