logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» [PHP] Un script qui marche pas ?
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [PHP] Un script qui marche pas ?  (Lu 6443 fois)
Snake046
Invité
« le: 25 Octobre 2006 à 19:53:14 »

Valà, pour un jeu j'ai besoin d'un script qui permette un combat en plusieurs tours. Le problème, c'est que mes scripts de combats mettent toujours trop de temps à s'éxecuter, voir beaucoup trop de temps. Pour remédier au problème, j'ai pensé que je pouvais jouer des iframes pour pouvoir passer outre la limite de temps.

Donc voici, en gros, comment ça s'organise =>
=> Vérifications des attaques en cours dans la table Combat_T.
=> Si l'attaque à été lancée il y a plus de 3600 secondes, le combat dois avoir lieu (ouverture d'une IFrame pour son execution).

==> Dans cette iframe, une première page vérifie le statut du combat (Si l'attaquant ou le défenseur a encore des troupes : si l'un des deux n'en a plus, celui a qui il en reste est gagnant).
==> Si personne n'a gagné, phase de combat
===> On récupère les troupes, les données concernant chacunes des troupes du joueur, et on fait une phase de combat, puis on retourne à la page qui vérifie si l'un des joueurs à gagné ou non.

==> Si un joueur a gagné, on procède aux modifications qui s'imposent.

Cette portion de script correspond à la première partie : vérification des attaques en cours + ouverture d'une iframe pour chacunes des attaques qui doivent être executées.

Code:
$reponse = mysql_query("SELECT * FROM Combats_T");

while($donnees == mysql_fetch_array($reponse))

{

$TimestampBDD = $donnees['Timestamp'];

$RefTerritoire = $donnees['RefTerritoire'];

$VilleID = $donnees['VilleID'];
$ID_Combat = $donnees['ID_Combat'];


  $Timestamp = time();
  if($Timestamp <= $TimestampBDD + 3600)
    {

  ?>

  <IFRAME SRC="Combat/Launcher_TT.php?ID_Combat=<?php echo($ID_Combat); ?>" heigth="0" width="0" border="0" frameborder="0"></IFRAME><br />

  <?
    }

}
Soit dit en passant, la table Combat_T est vide, alors le contenu du while ne devrait pas s'éxecuter, si ?

Enfin bref... lorsque ce script est présent dans une page (je précise également que le script pour se connecter à la base de donnée est présent dans les pages en questions), la page ne veux plus se charger.

Ce script a-t-il quelque chose qui cloche ?
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 182/55005

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3098

poulping for fun & profit


Voir le profil WWW
« #1 le: 25 Octobre 2006 à 21:43:59 »

je pense que la ligne du timestamp est fausse :
Code:
 if($Timestamp <= $TimestampBDD + 3600)
J'aurai mis :
Code:
 if($Timestamp >= $TimestampBDD + 3600)
Parce que ton code dit que si le timestamp est inferieur a celui de la BDD+3600
Or si j'ai bien suivi il doit etre supérieur... C'est pour ca qu'il n'affiche rien
Pour etre sur fais un truc du genre :
Code:
 if($Timestamp <= $TimestampBDD + 3600)
    {

  ?>

  <IFRAME SRC="Combat/Launcher_TT.php?ID_Combat=<?php echo($ID_Combat); ?>" heigth="0" width="0" border="0" frameborder="0"></IFRAME><br />

  <?
    }
else
{
echo 'ben c'est pas encore ca...' ;
}
Si il t'affiche ton echo c'est que ca vient de ca

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Snake046
Invité
« #2 le: 26 Octobre 2006 à 17:32:50 »

Ya du progrès. Si on veux :p !

En fait maintenant, la page commence à s'afficher, mais elle fait planter le navigateur.

Je suis quand même assez étonné... l'IFRAME va de toute façon être crée lorsqu'il y aura une attaque : en toute logique, il ne devrait m'afficher aucun "C'est pas encore ça", et encore moins d'IFRAMES, pour la bonne raison que la requête SQL ne renverra aucun résultat, la table mise en question étant tout simplement vide.
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 182/55005

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3098

poulping for fun & profit


Voir le profil WWW
« #3 le: 26 Octobre 2006 à 21:20:09 »

= enlevé, probleme réglé

(dans le while ($donnees =  mysql_fetch_array($reponse)) )

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Snake046
Invité
« #4 le: 20 Novembre 2006 à 21:26:16 »

Encore un problème, cette fois-ci sur des redirections.
Je me suis remis sur le projet ce soir, j'ai réparé un bon paquets d'erreurs bêtes (des ; après des conditions... je devais être VACHEMENT fatigué moi), en voici une qui me bloque. Après avoir galéré pour que mes requêtes SQL marchent, la page ne voulait pas se rediriger.

Citation
header("Location : TourDeCombat_Spatial.php?ID_Combat=$ID_Combat");
J'ai trois possibilités de redirections, aucune ne marchent et elles sont construites comme celle-ci.
J'ai essayé avec "location", mais j'ai finalement gardé "Location", vu qu'ils écrivent avec une majuscule sur PHP.net ! Et j'ai également essayé les chemins directs comme relatifs.

La page ne se plaint pas : pas d'erreur, la redirection ne se fait pas, c'est tout.
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 182/55005

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3098

poulping for fun & profit


Voir le profil WWW
« #5 le: 21 Novembre 2006 à 00:33:00 »

En général, les erreurs avec cette fonction, c'est qu'il y a du texte affiché avant, et si je me souviens bien, tu dois placer ca avant tout code html !

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
S0410N3
Administrateur

Profil challenge

Classement : 10/55005

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1260


Voir le profil WWW
« #6 le: 21 Novembre 2006 à 01:49:57 »

header("Location: http://...");

Y a une majuscule et y a pas d'espace avant le ":"

Comme dit the lsd il faut que rien n'ait été écrit avant, c'est-à-dire pas de echo et le <? bien collé au début de fichier (pas de saut de ligne accidentel par exemple). Mais bon je pense que si c'était à cause de ça tu aurais une erreur du type : "Header already sent... blabla".
Journalisée

Enjoy (copyleft de quelqu'un qui a trop parlé)

S0410N3

-------------------------------------------------------------------------------------
La folie est le prix à payer pour le temps passé à être trop lucide.
-------------------------------------------------------------------------------------
http://forum.hardware.fr/hfr/Discussions/Societe/francais-repere-repaire-sujet_19265_1.htm
Snake046
Invité
« #7 le: 21 Novembre 2006 à 13:09:50 »

A la base yavait rien à afficher, mais c'est vrai que j'ai rajouté après pour vérifier le bon fonctionnement du script, qui ne fonctionnait pas. Mais je vais régler ça ! Merci !
Journalisée
CdX

Profil challenge

Classement : 2705/55005

Néophyte
*
Hors ligne Hors ligne
Messages: 5


Voir le profil
« #8 le: 25 Novembre 2006 à 23:27:13 »

tu nous fait un script php pour jouer a star war galaxy ? tain ca pete ca

cf: TourDeCombat_Spatial.php

bon courage en tout cas
Journalisée

Etre conscient que l'on est ignorant est un grand pas vers le savoir.
HNC
Profil challenge

Classement : 3591/55005

Néophyte
*
Hors ligne Hors ligne
Messages: 33


Voir le profil
« #9 le: 26 Novembre 2006 à 15:58:43 »

C'est très courageux de te mettre à un projet à la Ogame (je suppose), mais si t'es seul tu vas en baver.
Bonne chance.
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: