Version imprimable du sujet
Cliquez ici pour voir ce sujet dans son format original |
Forum TourDeJeu > Programmer > Firefox? Xhtml? |
Ecrit par: -=[ X-ZoD ]=- Dimanche 15 Mai 2005 à 01h31 |
bha j'ai un problem : les membres qui navigent sous firefox ne peuvet jouer corectement car apereement il y a des fonctions php ou mysql [aller savoir laquelle des deux] qu'il ne prend pas en compte... j'ai vaguement entendu parler de metre le format xhtml au lieu de php pour ke firefox prenne en compte.... peut on m'eclairere sur le sujet? |
Ecrit par: gorgu Dimanche 15 Mai 2005 à 03h50 |
![]() MySQL a des données PHP tourne sur le serveur pour lire les données puis il crée des pages html firefox sais lire le html. php et mysql n'ont rien a voir dans le fait que tes pages sont pleines d'erreurs d'html... firefox sais trés bien lire le html même mieux que internet explorer là où il y a une difference a la limite s'est sur l'interpretation du javascript. sans la page qui "bug" on ne pourra pas t'aider. |
Ecrit par: xaero Dimanche 15 Mai 2005 à 04h20 |
ou du html pas propre eventuellement mais faut vraiment le vouloir pour faire qqe chose qui ne passe pas sous firefox. |
Ecrit par: Arckam Dimanche 15 Mai 2005 à 10h28 | ||
J'ai l'impression que tu fais un grosse soupe avec tout des termes que tu ne comprends pas ![]() En plus de ce que t'on dit les posteurs précédents, php et xhtml n'ont rien à voir ensemble. c'est un peu comme si tu parlais de changer ta voiture et de la remplacer par des poires ![]() Php construit tes pages. Il renvoie au navigateur du texte (une page) qui peut être formatté en html (ou pas), en xhtml (ou pas), ou en pdf (...), ou en xul, ou en... bref, tu vois le principe ![]() Si firefox te pose un soucis c'est que toi tu as commis des erreurs, pas MySQL ou php. |
Ecrit par: -=[ X-ZoD ]=- Dimanche 15 Mai 2005 à 14h06 |
bha tiens je me coucherai moins bete ce soir... donc si je comprends bien, le php sert a etablir le lien entre la page et la base de donee ... pour ensuite, si besoin est, le retranscrire en language pris en charge par le navigateur. cela ne me servirai a rien de vous donner le code de la page je pense car il ne renvoie aucun message d'erreur et que la page est plutot grande... le but de la page est le suvant : - le joueur doit metre un nombre de soldats en production - la page enregistre la demande et renvoie l'heure a laquelle le soldat sera pret. fonctionnement du code: - il compare la date et l'heure d'aujorud'hui a l'heure de fin de production enregistrée. - tant que la date d'aujourd'hui est inférieur à la date de fin de production, on ne peut construire d'autres soldat [car production en cours]. - lorsque la date d'aujoud'hui est > a la date de fin de production il met a jour la bdd en ajoutant les soldats produits et annule la date de fin de production [car fini]. interpretation des navigateurs: - IE suis le code nickel. - Firefox permet la mise en production, mais meme si le temps n'est pas fini, non seulement il annule la production mais en plus il ne prends pas en compte les nouveaux soldats.... au final grace a vous je vois que le problem ne peut venir que d'une parcelle du code php qui est trop fouareux pour etre accepté par firefox mais juste assez pour que IE le prenne en compte. je vai devoir analysé chak mouvement de php pas a pas en courant a droite a gauche entre la page web et la bdd.... je vous tiens au courant les gars...si ya d'autres idés je suis preneur |
Ecrit par: Corentin Dimanche 15 Mai 2005 à 14h21 |
Je ne programme pas en php mais j'ai l'impression que tu fais encore fausse route : Si ton code php passe sous IE alors il n'a pas de problème. Le php n'est pas interprété par ton explorateur mais par le serveur : vas sur une page et demande à voir le code source. Tu ne vois que du html, c'est à dire le résultat de ton php qu'a obtenu le serveur. La source php reste chez le serveur et n'est interprétée que par lui. Si tu as une différence entre deux naviguateurs ça doit venir du Html. Je ne m'y connais pas alors je peux me planter, mais je pense que c'est ton html que tu devrais vérifier |
Ecrit par: Arckam Dimanche 15 Mai 2005 à 17h13 |
Tu ne te plante pas Corentin, tu as parfaitement raison. La seule chose qui pourrait être interpretée par firefox et IE c'est du javascript. Et je suppose que tu n'utilises pas de JS pour gérer ça (enfin, quand je dis je suppose, j'en suis sur, sinon tu va devoir tout recommencer ![]() |
Ecrit par: gorgu Dimanche 15 Mai 2005 à 17h41 |
![]() ![]() ![]() au secours... |
Ecrit par: -=[ X-ZoD ]=- Dimanche 15 Mai 2005 à 18h02 |
lol mais c'est louche....la page s'affiche nickel...c'est au niveau des enregistres sur la bdd qu'il refuse.. :| sauf si peut etre encor firefox ne prend pas en compte la fonction "date" mais selon vos dire ce ne peut etre ça. j'ai du mal a comprendre pourquoi est ce que c'est a cause d'un pti prob ds le html que le php ne fonctionne pas :| en plus vous avez raison le html interprété par IE devrait etre le mm pour firefox....et je n'utilise pas de JS mais alors le prob vient d'ou ...je vai dvenir fou ![]() ![]() ![]() ![]() ![]() |
Ecrit par: Nonothehobbit Dimanche 15 Mai 2005 à 19h48 |
Problème de session/cookie, ou si ton code se sert de popup automatique. Il n'y a rien de tout ça ? Tu peux pas nous montrer une page qui merde sous FF et marche très bien sous IE ? |
Ecrit par: gorgu Dimanche 15 Mai 2005 à 22h21 |
je penses que tu as un soucis qui n'a absolument rien a voir avec firefox... a tu reproduit le bug? a tu firefox d'installé? a tu trouver le bug seul? un joueur? bref... jusqu'a maintenant ton message n'a aucun sens. |
Ecrit par: -=[ X-ZoD ]=- Lundi 16 Mai 2005 à 06h16 | ||
le reste du code est trop long et importe peu... le code php au niveau duquel il refuse de fonctionner est en rouge... comme expliqué precedement soit elle ne prend pas en compte la date, ou encors ya une partie du php qui foire.... est ce qu j'ai reprodui le bug? oui sur une autre page...d'ailleur je crois que ce soit les deux seulles pages qui passent pas oui j'ai firefox d'installé [je savai pas que l'on pouvai l'utiliser sans l'installé] oui c'eest moi qui ait trouvé le bug...ce serai iresponsable de ce basé uniquement sur les dires d'un joueur sans verifier soi meme. |
Ecrit par: Arckam Lundi 16 Mai 2005 à 10h28 |
erm, c'est un peu brouillon comme code, m'enfin il y a autant de style que de programmeur ![]() A chaud, sans m'être plongé dedans je vois des choses bizzares. * Tu as des session_start() à plusieurs endroits... m'enfin tu n'as peut-être pas de doublons hein, c'est juste qu'en général on ne le met qu'une fois, au début du fichier. * Tu inclus des fichiers à pleins d'endroits différents... mais jamais avec des include_once (ex: db_param.php). Tu es sur de ne pas inclure plusieurs fois le même ? Personellement je rassemble au maximum mes include. Quand je ne peux pas j'utilise des include_once (ou require_once). * Tu utilise le login comme clé étrangère dans ta table. Ce qui force MySQL à faire une recherche full text. C'est la plus lente des façons. Tu devrais peut-être utiliser un identifiant numérique ![]() * Une bêtise, proprietair dans armee_construction demande un E ![]() * Pour ton problème... comment es tu sur que le problème vienne de là? |
Ecrit par: gorgu Lundi 16 Mai 2005 à 11h22 |
... c'est une catastrophe ton code ![]() ouverture fermeture de la connexion base de données toutes les 3 lignes... c'est pas bon du tout. tu as $login = $_SESSION['login']; ... inutil de le refaire toutes les 10 lignes ![]() une page qui te donnera une idée d'une structure propre. http://www.jouer.org/Php/Faire-son-Propre-Jeu-chapitre-3-PHP-00027.html je ne sais pas comment t'expliquer mais l'explorateur NE peut PAS etre en cause dans ton probléme et cela c'est le seul truc sure à 100% ![]() bon courage |
Ecrit par: J-B Lundi 16 Mai 2005 à 12h47 |
Je vais essayer (à mon tour ![]() Tout d'abord, en simplifiant un poil, un navigateur ne sait lire que du HTML (ou du javascript comme sité plus haut). Il n'a aucune idée de ce que peut bien être du PHP ou du MySQL! A fortiori, il ne peut pas faire d'erreur en interprétant du PHP ou en accédant à ta base donnée. Cela dit, de deux choses l'une : - soit ton erreur vient effectivement du PHP/MySQL, et alors les navigateurs n'y sont pour rien. Seul le serveur web (fourni par ton hébergeur a priori) lie/accéde au PHP et au MySQL. Le navigateur n'y accède jamais! - soit ton erreur vient du HTML. Dis autrement : - le navigateur (Firefox et IE) fait une requête au serveur web, cad demande à voir une page de ton site (il envoie le nom de la page et éventuellement des informations contenus dans un formulaire ou dans des cookies). - le serveur web (la machine sur lequel se trouve tes sources PHP et ta base de donnée MySQL), en fonction de ces informations, interprète le PHP (en accédant si besoin est à la base de donnée), génère un fichier purement HTML (en tout cas dans ton cas) et finalement l'envoie sur internet jusqu'au navigateur qui a fait la requête. - le navigateur reçoit la page HTML et l'affiche. C'est plus clair? ![]() Quant à savoir d'où vient l'erreur... Un lien vers la page qui pose problème pourrait peut-être nous aider à t'aiguiller vers la solution... Peut-être... ![]() |
Ecrit par: -=[ X-ZoD ]=- Lundi 16 Mai 2005 à 15h39 |
- bha pour les session start ça doit dater de depuis que j'ai commencé le php et je suis pas revenu par la suite pour "aléger". - effectivement ela ne devrait servir a rien de mettre plusisuers include..mais dan sle cas de mon db_param [c'est grace a lui que ma conection a la bdd se fait] c'est un type sur le forum de php debutant qui ma dit qu'il fallait fermer les conections a avec la bdd des que possible ... du coup je refermait a la fin du code php et reouvrais [d'ous la repetition de ce include] quand j'en commençais une autre. - donc aerement une recherche par login necessite plus de ressources que si on fait par id par exemple......oki merci pour l'info. - je pense qu'il vient de la car [si on part de mon explication plus haut] : il execute la requete ...mais ensuite kan on revien sur la page il doit comparer la date avec celle enregistrée et si elle n'est pas atteinte alors il continue d'afficher l'heure de fin .. dans ce cas present quand on revien avant l'heure de fin , il n'affiche pas ... ce qui a priori devrait vouloir dire que la date est atteinte mais il n'efectue pas non plus les enregistrement nécessairs... gorgu pardonne mes ptites erreur j'ai commencé le php ya 4 moi ![]() pour ce qui est des conection au serveur bha comme jlai di plus haut c'est un type qui me l'avai conseilé...moi naif je l'ai cru ![]() pour ce qui est de savoir que le navigateur n'interpretai que le html j'avai cru comprendre cela...mais cette fois je suis assuré que c'est bien ce que j'avai compris.. le lien vers la page qui pose l'erreur? http://www.eternal-war.org/gerersonarmee.php oui oui je suis debutant donc ne me blamer pas trop au niveau de mon incompetence momentanée ![]() mais en tout cas je vous remerci de votre aide j'en aprend toujoru un peu plus |
Ecrit par: Oelita Lundi 16 Mai 2005 à 16h01 |
Toujours procéder par étapes pour savoir d'où vient le probleme... dans ton cas : - vérifie le code HTML produit en regardant le source HTML de ta page produite (tu obtiens ça dans le navigateur dans une option du genre "afficher la source") - vérifie que tout est ok dans la base de données : va dans phpmyadmin et vérifie que les enregistrements contiennent les bonnes données dans les bons champs. Fais cela avant la demande, pendant la production, et après l'heure dite. - si le probleme vient du non-enregistrement des données dans la base, alors ajoute des traces de debug dans ton code PHP lors de cet enregistrement, du genre echo de la requête SQL envoyée. Tu pourras alors voir exactement ta requête finale à l'écran, la copier-coller et la lancer à la main dans phpmyadmin pour voir le message d'erreur que tu obtiens. - si tu ne trouves toujours pas d'où ça vient, mets petit à petit plein de code en commentaire pour te centrer sur le truc qui ne marche pas |
Ecrit par: -=[ X-ZoD ]=- Lundi 16 Mai 2005 à 17h20 | ||
ouais c'est bien ce que j'avai l'intention de faire ^^ j'atends jsute que la motivation me vienne...car j'essaie de pas trop negliger mon taff en cours....tant bien que mal sinon j'aimerais votre avis....aperement il n'et pas pratique d'ouvrire et fermer une conexion a la bdd comme je le fais[c a dire plus d'une fois dans la page] je pense faire en truc du genr
concretement la question est : estce que je peux ouvrire la conexion dans une parcelle de code php pis la fermer dans une autre parcelle de code ? |
Ecrit par: Arckam Lundi 16 Mai 2005 à 18h02 |
Personellement je ne travaille pas du tout comme toi ![]() J'ai un objet DB qui me permet de gérer toutes les intéractions avec mes données. J'ouvre la connexion lors de la constructions de mon objet, je la ferme manuellement lorsque j'ai terminé tous les traitement. Je profite également pour gérer mes erreurs proprement. Note également qu'il est possible d'enregistrer directement la fonction que php utilisera comme destructeur (si on veut) de ta connexion. A ce moment là, je présume qu'il ferme tout lui même. Je n'ai plus les détails en tête, mais tout se trouve dans les commentaires (en anglais) de la doc officielle. Et enfin, pour répondre à ta question, oui, tu dois pouvoir, en tout cas (sans avoir essayé) je ne vois pas pourquoi tu ne pourrais pas dans la mesure ou un include() ne correspond en fait qu'à une copie du fichier inclus dans le fichier incluant. |
Ecrit par: Nonothehobbit Lundi 16 Mai 2005 à 18h23 |
Peut-être si tu arrivais à reproduire le code sur une page où on n'a pas besoin de s'identifier on pourrait t'aider. Mais pour l'instant on ne peut te donner que des indices... |
Ecrit par: Oelita Lundi 16 Mai 2005 à 18h44 | ||
oui. |
Ecrit par: -=[ X-ZoD ]=- Lundi 16 Mai 2005 à 20h03 |
http://www.eternal-war.org/pagebug.txt si vous arrivez a vous y retrouver ![]() |
Ecrit par: Vorgat Lundi 16 Mai 2005 à 20h05 |
Euh… ça donne quoi, à part un mal de crâne énorme ? |
Ecrit par: Nonothehobbit Lundi 16 Mai 2005 à 20h34 |
Une crampe au doigt. ![]() |
Ecrit par: Oelita Lundi 16 Mai 2005 à 21h48 | ||
On ne fera rien avec ton code php : tu dois procèder toi-même, par étapes, en traçant ce que tu fais avec des echo, et tu trouveras l'origine réelle du souci. Là, peut-être qu'on pourra t'aider à le résoudre. |
Ecrit par: Draedrus Mardi 17 Mai 2005 à 00h09 |
merde c'est le bordel organisé ce code, ya combien de lignes la dedans ? tu pouvais pas diviser un peu ? O_o une hiérarchie au niveau de if ça aidrait aussi, et comme dit plus haut ça vient pas du navigateur c'est franchement impossible. |
Ecrit par: -=[ X-ZoD ]=- Mardi 17 Mai 2005 à 12h24 | ||||
oui tinkiete j'y ai deja pensé..il faut juste que je trouve le temps de mle faire...j'ai mis le lien car on me le demandait... avec les cours : les profs nou metent la pression en fin d'anné ... et je ne sais mm pas si je passerai en deuxieme annee :'( alors bon jatends de trouver un creno pour m'y mettre.. merci a tous quand meme ![]() |