Zoooombie
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -45%
PC Portable LG Gram 17″ Intel Evo Core i7 32 Go ...
Voir le deal
1099.99 €

Tchat actualisation auto

4 participants

Aller en bas

Tchat actualisation auto Empty Tchat actualisation auto

Message  Spiritus Dim 9 Déc - 18:34

Bonjour,
Serais t'il possible d'avoir un tchat qui s'actualise automatiquement ( avec ajax/javascript)

Spiritus

Messages : 8
Date d'inscription : 09/12/2012

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Xenos Dim 9 Déc - 18:50

Plutôt que de se focaliser sur le chat, qui est annexe, ne serait-il pas possible d'abord de supprimer ces fichues redirections qui ont lieu à chaque page où on envoie une commande?
Si on se connecte, on arrive sur la page qui se charge d'ouvrir la session, et une fois la page affichée, le site web essaye de nous rediriger. Si on lancer un bâtiment, pareil. Si on convertit des villageois, pareil...

A croire que le contenu de la page web est envoyé d'abord, et qu'ensuite la commande (login, construction, villageois) est traitée par le serveur qui, alors, demande au client de recharger la page...
Non seulement c'est deux fois trop lourd (car le serveur envoie 1 fois la page, puis fait la commande, puis recharge la page et donc la renvoie), mais en plus, si notre navigateur est bien configuré pour éviter les déboires et les publicités à tout va, Firefox va bloquer la redirection et demander l'autorisation avant de recharger la page. C'est lourd, c'est inutile, et cela ne fait clairement pas professionnel. De plus, tant qu'on n'a pas suivit la redirection, on conserve la page "telle qu'elle était avant d'exécuter la commande", autrement dit, avec des données obsolètes.

Donc, est-ce qu'il serait d'abord possible de changer un peu l'ordre des lignes de code PHP pour d'abord faire exécuter au serveur les commandes demandées, et ensuite, envoyer la BONNE page au client?
Xenos
Xenos

Messages : 43
Date d'inscription : 29/11/2012

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Admin Lun 10 Déc - 1:47

Alors pour le chat auto, on va le faire Smile

Xenos : là actuellement c'est comme tu dis, la page envoie pour exécution, puis exécution puis redirection
mais tu es bien obligé que la page envoie pour exécution, non ?
sinon ajax/javascript ?
Admin
Admin
Admin

Messages : 73
Date d'inscription : 26/11/2012

https://zoooombie.forumactif.org

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Xenos Lun 10 Déc - 8:25

Non, y'a pas de redirection si tu exécute d'abord puis affiche ensuite.

A mon avis, dans ton code, tu as, pour l'instant, les parties suivantes:
- Récupération des données
- Execution
-Echo des donnée récupérées

Or, les données ont été récupérées avant d'exécuter les commandes demandées à la page, d'où la redirection requise. Il te faut simplement de mieux découper:
- Récupération des données requises pour la commande
- Exécution de la commande
- Récupération des données à afficher
- Echo pour l'affichage

Et il n'y a plus de redirection.
Aucun site web ne fait comme tu le fais actuellement (une redirection à chaque page à laquelle on a demandé de faire une commande).
Xenos
Xenos

Messages : 43
Date d'inscription : 29/11/2012

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Admin Lun 10 Déc - 9:43

Attend, je suis pas sur de comprendre
Mon code est comme ça

appelle de la page ou se situe le code php à exécuter

code de la page sur laquelle est le joueur --> formulaire à exécuter

Le joueur envoie le formulaire, ça s'exécute dans la page où se trouve le code php donc avant d'afficher le formulaire et après ça s'affiche

Donc théoriquement là je suis bon non ?
Admin
Admin
Admin

Messages : 73
Date d'inscription : 26/11/2012

https://zoooombie.forumactif.org

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Xenos Lun 10 Déc - 12:37

Théoriquement oui, mais en pratique, la page qui est affichée donne des données obsolètes, donc je suppose que les données qui sont affichées ont été récupérées AVANT d'exécuter la commande dans le code PHP.

Si t'as besoin d'aide pour le code PHP, n'hésite pas à me demander (car sans code, j'vais avoir du mal à te dire exactement où ca va pas).
Xenos
Xenos

Messages : 43
Date d'inscription : 29/11/2012

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Admin Lun 10 Déc - 23:43

merci pour ta proposition d'aide, bon voilà un exemple de nos codes (j'ai enlevé ce qui étais inutile) :

Code:
<?
   session_start();
      
   include 'batiment_fonction.php';
?>

<div class="">
   <form action="batiment.php" method="post">
      <input type="submit" name="achat_maison" id="achat_maison" value="augmenter" />
   </form>
</div>

Et ensuite dans fonction_batiment.php, tu as :

Code:
if(isset($_POST['achat_maison']))
{            
      
    Le code augmente le niveau de la maison
                     
    Le code retire le prix de la maison à l'or du joueur
      
    ?>
    <meta http-equiv="Refresh" content="0;url=batiment.php">
    <?php
}
Qu'en penses tu ?
Admin
Admin
Admin

Messages : 73
Date d'inscription : 26/11/2012

https://zoooombie.forumactif.org

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Xenos Mar 11 Déc - 15:11

J'en pense que la ligne
<meta http-equiv="Refresh" content="0;url=batiment.php">
n'a rien à faire là.

Une fois les actions faites, après l'include, il suffit d'aller piocher dans la BDD les données à afficher et dans la suite du code, de les afficher. Car je pense que, pour l'instant, les données sont récupérées d'abord, puis les commandes dans le include sont exécutées, et enfin, les données (récupérées en début de page et non-changées par le include) sont affichées: elles sont donc obsolètes. d'où la nécéssité soit:

- De modifier les données non seulement dans la BDD via le fichier inclus, mais aussi de les modifier dans le script PHP, autrement dit, exécuter la requète SQL qui va bien pour changer le nombre de maisons mais également incrémenter la variable $maisons du script PHP

soit
- De ne pas récupérer les données SQL en début de script, de faire le include dans lequel la BDD est modifiée (le include fait sa petite requête SQL pour ajouter des maisons), et seulement après les include, récupérer les données de la BDD, données qui seront alors à jour (si tu utilises des transactions SQL, alors il faut bien commiter la transaction des modifications dans le include avant d'aller récupérer les données SQL à afficher)
Xenos
Xenos

Messages : 43
Date d'inscription : 29/11/2012

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Admin Mar 11 Déc - 18:15

Yeeeeeeah, c'est bon, ça marche : la page ne se recharge plus à l'achat !

Merci merci merci Xenos Wink

EDIT : problème --> quand on envoie le formulaire et qu'on manque d'or, d'habitant, ... ça remet sur une page avec une écriture tout petite depuis que j'ai fait le changement :s
Admin
Admin
Admin

Messages : 73
Date d'inscription : 26/11/2012

https://zoooombie.forumactif.org

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Xenos Mar 11 Déc - 18:59

Non, ca a l'air de marcher... Ca affiche une page blanche avec la boite d'alerte "pas assez d'habitant" et la page est ensuite affichée...
Le soucis vient probablement du fait que la balise script avec le alert est placée dans le html/head.
Au lieu d'envoyer directement le "alert", crée une fonction javascript et appelle-là quand la page est chargée:

html/head/script:
function chargementpasok()
{
alert(...); //Si jamais y'a pas d'erreur, il suffit de laisser une fonction toute vide)
};

html/body:
attribut "onload"="javascript:chargementpasok();"

Normalement, la fonction javascript sera appelée quand le body sera chargé, autrement dit, quand la page sera chargée (aka quand toutes les balises HTML du body seront reçues, ce qui n'implique pas que les images soient déjà chargées mais dans le cas présent, on s'en moque de cette précision).
Xenos
Xenos

Messages : 43
Date d'inscription : 29/11/2012

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  haza Mar 11 Déc - 19:19

Je comprend rien c'est du charabia votre truc ^^
haza
haza

Messages : 50
Date d'inscription : 26/11/2012
Age : 32
Localisation : Grenoble

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Spiritus Ven 14 Déc - 10:11

Pour le tchat, tu as ajax/jvascript ou jquery

Spiritus

Messages : 8
Date d'inscription : 09/12/2012

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Xenos Ven 14 Déc - 10:47

Pour ton histoire de texte petit, cela vient effectivement du fait que tu envoie un "script/alert()" au client avant d'envoyer le contenu du tag "body". Ducoup, firefox (peut-etre que les autres navigateurs font pareil) est obligé de créer un "body" temporaire, le temps d'afficher ton "alert()", puis ensuite, il réceptionne le reste de la page.

Voici le code HTML effectif envoyé au client (buggé donc):

Code:


      <script>
      alert('Vous n\'avez pas assez d\'habitant disponible !');
      </script>
       <!DOCTYPE html>

<html>
   <head>
      <meta charset="utf-8" />
      <title>Zoooombie</title>
      <link rel="stylesheet" type="text/css" href="Includes/style.css">
      <link rel="shortcut icon" href="Includes/zombie_fav.png" type="image/png"/>
      <link rel="shortcut icon" type="image/png" href="Includes/zombie_fav.png" />
      <link rel="icon" href="Includes/zombie_fav.png" type="image/png"/>
   </head>
   <body>
      <div class="tout">
         

            <table class="haut">
[/code]

Le document n'est donc pas valid HTML5 (ni XML d'ailleurs) puisque le script/alert() est envoyé avant même d'ouvrir le tag html/body.
Pour corriger le soucis, il te suffit d'envoyer d'abord le html/ puis le html/head, puis d'ouvrir le html/body, et seulement à ce moment là, d'ajouter le script/alert()
Xenos
Xenos

Messages : 43
Date d'inscription : 29/11/2012

Revenir en haut Aller en bas

Tchat actualisation auto Empty Re: Tchat actualisation auto

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum