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

Applets Java Discussion :

Perte de variable $_SESSION PHP suite getInputStream Java


Sujet :

Applets Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Perte de variable $_SESSION PHP suite getInputStream Java
    Bonjour,

    J'ai un petit site de jeu online utilisant un applet Java pour la partie client et des scripts PHP pour la partie serveur.

    Mon soucis est le suivant : lorsque j'appelle mon script PHP via mon Applet, mes variables de session PHP (valorisés lors de la connection) sont détruites (notamment l'id utilisateur $_SESSION['CurrentUserId']).

    Voici le code de l'Applet lancant le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    URL URL = new URL(getDocumentBase(), str_url_update);
    try{
      URLConnection connex = URL.openConnection();
      connex.setDoOutput(true);
      connex.setDoInput(true);
      connex.connect();
      connex.getInputStream();
    }
    catch (IOException exception2){System.out.println("IO errors occur.");}
    Le script est en erreur suite à la perte de la variable qui est utilisée dans un SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sat Apr 12 15:21:07 CEST 2008 Thread_Update URL to open : http://monsite.com/game/script.php5?tableid=1
    [Fatal Error] :2:2: The markup in the document following the root element must be well-formed.
    Parse errors occur.
    Exception in thread "Thread-27" java.lang.NullPointerException
    	at test$Thread_Update.run(test.java:1002)
    Je soupçonne un problème de connections (la connection lancée depuis Java écrasant la session créée par le PHP).

    Si vous avez une idée, je suis preneur.

    PS : Le script lancé depuis le navigateur fonctionne parfaitement.
    PS 2 : Je n'ai pas le soucis avec EasyPHP en local...

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    tu dois mettre le session id de php en paramètre de l'url. Les objet URL de java ne gèrent pas les cookies, et donc le seul moyen de passer des paramètres au script php (y compris l'id de session), c'est par les paramètres de l'url.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ok, je vois à peu près ce que tu veux dire, d'autant plus qu'au début du script PHP, je fais un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (session_id() == "")
    {
    	session_start();
    }
    Donc du coup il doit créer une nouvelle session mais mes données de l'ancienne sont perdues.

    Pour résumé il faudrait que j'appelle quelque chose du genre :
    monsite.com/game/script.php5?phpsessid=eb6u64mob30satc6oisf0lqeo3&tableid=1
    Mais après dans mon script PHP j'en fais quoi ?

    J'imagine quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    session_id( $_GET['phpsessid'] );
    session_start();
    En attendant, je suis passé sur un système de lecture écriture des infos dont j'ai besoin dans un fichier xml... J'ai ré-écrit la session PHP lol...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bon j'ai essayé mais c'est pas très concluant... sic

    J'ai ajouté un paramètre à mon applet dans la page, je le récupère dans mon init(), il est envoyé dans mon url.

    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
     
    public void init(){
    (...)
    if (getParameter("phpsessid") == null)
    {
    	str_g_phpsessid = "";
    }
    else
    {
    	str_g_phpsessid = getParameter("phpsessid");
    }
     
    String str_url_update = str_g_url_update.replace("<TableId>", int_g_table_id+"").replace("<PHPSessId>", str_g_phpsessid);
    URL URL = new URL(getDocumentBase(), str_url_update);
    System.out.println(new Date()+" Thread_Update URL to open : "+URL.toString());
    Je le voit bien dans la console Java.

    Dans le PHP j'ai ajouté ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    session_id( $_GET['phpsessid'] );
    session_start();
    En faisant un echo sur le paramètre je le vois bien valorisé.

    Toutefois, j'ai toujours mon erreur...

    Et après toute ma session est en vrac.

    Je vais continuer sur ma ré-écriture des fonctions save/load d'info sur un fichier xml.

Discussions similaires

  1. Passer des variables de PHP vers Java
    Par marooh dans le forum Général Java
    Réponses: 1
    Dernier message: 12/04/2013, 19h20
  2. perte de valeur de variable dans php
    Par GYK dans le forum Langage
    Réponses: 3
    Dernier message: 02/10/2009, 12h11
  3. [PHP/JavaScript] Variable php dans script Java
    Par Flushovsky dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2006, 19h51
  4. Modifier variable php suite à un clique
    Par budiste dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 29/11/2005, 16h06
  5. [FLASH MX2004] Recuperation variable de PHP
    Par gchanteux dans le forum Flash
    Réponses: 11
    Dernier message: 10/05/2005, 19h16

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