Bonjour,

J'ai pour projet de créer un jeu par navigateur (il ne reste que le dev à faire) avec PHP/MySql et ajax

L'objectif de l'utilisation d'ajax et d'éviter de tout recharger et de ne modifier que ce qui change

De même, je compte séparer le "moteur" des éléments liés aux "mondes". Un monde représentant un nombre X de joueurs jouant ensemble et chaque monde étant indépendant les uns des autres.

Toujours dans le but d'optimiser et de faciliter la maintenance, tout en permettant une bonne gestion des charges des serveurs, je propose dans mon exemple de mettre les images sur un serveur, le moteur du jeu sur un autre etc...

Or, je suis confronté à un aspect que je ne maitrise pas franchement...

Si tous mes fichiers sont sur le même serveur, je peux transmettre la session via l'URL, même via ajax.

Par contre, si ma page principale se trouve sur un serveur "serv1" et que je charge via ajax un fichier sur un autre serveur "serv2", je ne sais pas transmettre la session et cela ne semble pas fonctionner non plus

Voici un extrait des code sources permettant de mieux comprendre mon explication...

Fichier page.js sur le serveur_ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
function page(NumPage, session) {
    var html = $.ajax({
  url: 'http://serveur_distant/page1.php?PHPSESSID='+session+'&page=' + NumPage,
  async: false
 }).responseText;
    document.getElementById("content").innerHTML = html;
}
Fichier index.php sur 'monserveur_ici'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Tralala début de fichier html...
Avec bien sur chargement de page.js
<div id="content">
 
Ici la page central du jeu qui change
 
</div>
<!-- Un des bouton 'action' -->
 
<li><a onclick="page('supplying','<?php echo session_id(); ?>');"><?php echo _('Approvisionnement'); ?></a></li>
Fichier page1.php sur le serveur_distant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<?php
/* test de chargement de page avec ajax
 * la sécurité n'y est pas regardée pour ce teste 
 */
 
// session_start();
echo "Click sur page numéro : ".$_GET['page'];
//echo "Click sur page numéro : ".$_GET['page']." avec la session > ".$_GET['PHPSESSID'].' <';
//echo "<BR>Le session actuelle est > ".session_id()." <";
//Echo "<br>pseudo = ".$_SESSION['pseudo'];
 
?>
Quand je clique sur le bouton, le message disparait, mais rien ne s'affiche alors que je devrais lire
"Clik sur page..."

Impossible à faire ? dangereux ? Problème de config des serveur ?

Merci de vos commentaires

PS : page1.php fait parti d'une page du jeu qui modifie alors les info entre les balises <div id="content">

Voilou
Guiliguili


EDIT : j'ai trouvé, avec AJAX cross-domain... Je ne cherchais pas au bon endroit.
Merci