Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/09/2011, 15h01   #1
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2011
Messages : 3
Points : 0
Points : 0
Par défaut onbeforeunload et envoi de variable.

bonjour,

J'ai fait quelques recherches sur google, mais je ne trouve pas de solution, c'est pourquoi je me décide à vous poser la question.

Je souhaite utiliser javascript pour déconnecter un joueur de mon jeu en flash grâce à onbeforeunload.

Pour cela, avant le script qui suit j'utilise php grâce auquel je récupère l'ip du joueur. Puis je l'associe au login du joueur ensuite à la connection dans flash, et dans ma bdd j'indique que le joueur est connecté.
A la fermeture de la page j'aimerai que le javascript apelle une page php qui indique à ma bdd que le joueur est parti, en envoyant la variable $ip récupérée bien plus tôt.

Voici le script, il est placé dans les balises HEAD de ma page :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script language="javascript">
		//Avant la fermeture de la page fonction closeIt
		window.onbeforeunload = closeIt;
 
		//Fonction appelé au moment de fermer la page
		function closeIt()
		{
				//L'ip est récupéré avant grâce à php
				var ip = $ip ;
				//je passe la variable en get dans un lien vers ma page php.
				document.location.href="phpi/disconnected.php?ip="+ip;
				//puis j'ouvre une box d'alerte 
				alert("déconnection du jeu !");
		}
 
</script>
Et j'ai plusieurs problèmes.

- Le script tel quel fonctionne sous ie, sous firefox, mais pas avec chrome. Je ne comprend pas pourquoi ! Car je vois que d'autres font fonctionner onbeforeunload sans soucis avec chrome !
- Est il possible d'envoyer cette variable en POST et pas en GET (parce que c'est crade l'envoi de variable en GET dans mon cas, à la fermeture de la page, car ça ouvre une page transitive façon spam...
- Pendant tout mes tests j'ai constaté qu'il était indispensable d'utiliser "alert("déconnection du jeu !");" pour appeler une page... Sinon ça ne fonctionnai pas. Est il possible de faire ça de façon transparente sans avoir à créer une alert?

Voilà, je n'utilise jamais de javascript, pourtant ça ressemble pas mal à l'as... Si quelqu'un pouvait me répondre ou m'aiguiller ça m'aiderait franchement.

Merci à tous !
mouffles est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 15h03   #2
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 690
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 690
Points : 5 763
Points : 5 763
Bonjour,

Avant toute chose, nous n'utilisons plus cette syntaxe :

Code html :
<script language="javascript">

Mais bien celle-ci :

Code html :
<script type="text/javascript">
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 15h06   #3
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2011
Messages : 3
Points : 0
Points : 0
Je vais corriger ça !
Merci Vermine !
mouffles est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 15h09   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Bonsoir,

Envoie les données avec AJAX de façon synchrone.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 15h33   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
location.href n'est pas une propriété de document mais de window ...

Code :
1
2
3
window.location.href 
ou 
self.location.href
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 15h48   #6
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2011
Messages : 3
Points : 0
Points : 0
D'accord et merci SpaceFrog, c'est corrigé. C'est le genre de choses que je ne sais pas car je ne connais pas le javascript comme je l'avais déjà écrit

Merci à andry.aime, après quelques recherches autour des événements synchrones, je vois que :

-L'AJAX me permet d'envoyer des données en post
- Si ma fonction est synchrone avec un delay le onbeforeunload fonctionnera sous chrome, et sans boxe d'alert sur tout les navigateurs.

Bon il me reste à regarder comment ça marche vu que je n'ai jamais touché à l'AJAX, mais merci à tous.
mouffles est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h43.


 
 
 
 
Partenaires

Hébergement Web