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 : 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
<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 !