Problème PHP/JS

Woofy
Invité n'ayant pas de compte PHPfrance

30 oct. 2006, 19:47

Bonjour à vous,

Je suis bloqué sur un problème qui m'épate ... tellement d'ailleurs que je n'ai d'autre choix que de solliciter votre aide :wink:

Voila ... Je suis en train de dev un intranet technique en PHP.
Mon problème se situe sur une page bien précise.

Cette page fait appel à un JavaScript qui génère des onglets associés à des iframes, le tout encapsulé dans mes div pour la mise en page... la dessus aucun soucis. La mise en page est bonne, le JS tourne bien et j'obtiens bien mes onglets ainsi que le border des iframes associées à mes onglets ... mais le contenu des pages appelées en iframe ne s'affiche pas.

Afin de pouvoir y voir plus claire, j'ai activé le "display_errors" (à "On" donc) ... et la .... SURPRISE ! Le contenu apparait bien.
J'ai voulu aller plus loin pour débug ca avec Firefox (et la console JS) .... sous FireFox, que le display_errors de PHP soit On ou Off ... otut s'affiche pour le mieux....

Mais sous IE, mes iframes ne font leur boulot qu'en mode "display_errors = On" ..... et la j'avoue ne rien y comprendre ....

Qu'est-ce qui peut expliquer cette différence de comportement à votre avis ? le fait de mettre le display_errors à On implique-t-il d'autres choses qu'un simple redirect des messages d'erreur ?!

Quelqu'un a-t-il déja rencontré un cas similiaire ?

(Désolé de ne pouvoir vous mettre un lien démonstratif, mais l'URL n'est pas routée sur l'extérieur ....)

HELP plz :roll:

Mammouth du PHP | 684 Messages

31 oct. 2006, 11:23

Salut.
Peut etre qu'un bout de code nous aiderais.
Zigz4g

Woofy
Invité n'ayant pas de compte PHPfrance

31 oct. 2006, 12:26

Ca va être plutot difficile de poster un bout de code ...
Le résultat de ma page est issu de l'affichage de 4 ou 5 pages PHP imbriquées en include selont les arguments passés en GET, pour finalement appeler un script JavaScript qui va générer mes iframes.

Je vais mettre ce que je peux pour essayer de vous éclairer un peu :

Déclaration des onglets et iframes dans un div "onglets" par le javascript "tsm.js" :

Code : Tout sélectionner

<script language="javascript" src="./includes/tsm/tsm.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> function tsmInitAll(color1, color2, color3) { with (atsm = new tabStripMenu("onglets","666","100%")) { with(mainStyleOn = new style) { $font_family = "Verdana, Arial, Helvetica, sans-serif"; $font_color = "#F7B310"; $font_size = "11px"; $font_style = "normal"; $font_weight = "bold"; $background_color = "white"; $border_size = "2px"; $border_style = "solid"; $border_color = "black"; $padding = "5px"; } with(mainStyleOff = new style) { $font_family = "Verdana, Arial, Helvetica, sans-serif"; $font_color = "white"; $font_size = "11px"; $font_style = "normal"; $font_weight = "bold"; $background_color = "white"; $border_size = "1px"; $border_style = "solid"; $border_color = "#E8E8E9"; $padding = "5px"; } setMargin(5); setStyles(mainStyleOn,mainStyleOff); // méthode 'setIframes(border=1|0, marginWidth, marginHeight, scroll=yes|no)' setIframes(0,3,3,yes); /*paramètres des iframes*/ addTab("Logs d'Accès","admin/logs/logs_acces.php",color1); addTab("Logs des Utilisateurs","admin/logs/logs_users.php",color2); addTab("Logs des Serveurs","admin/logs/logs_servers.php",color3); build(); } } </script> <BODY onLoad="tsmInitAll('#4A7AAA','#4A7AAA','#4A7AAA'); tsmLoadAll();">
Ensuite dans mon code PHP je n'ai qu'a positionner un div avec comme id "onglets" comme suit :
<div align="center" id="onglets"> </div>
(je précise que j'utilisais déja exactement le même code dans une version v-1 de l'intra, la seule différence est que l'ancienne version avait été commencée par qqun d'autre en faisant une mise en page en tableaux imbriqués, et que j'ai tout repris en div+includes)

Affichage de la source sur la page qui pose problème :

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <title>Refserveur</title> <link href="includes/css/charte.css" rel="stylesheet" type="text/css"></link> <link href="includes/css/si2m.css" rel="stylesheet" type="text/css"></link> </head><script language="javascript" src="./includes/tsm/tsm.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> function tsmInitAll(color1, color2, color3) { with (atsm = new tabStripMenu("onglets","666","100%")) { with(mainStyleOn = new style) { $font_family = "Verdana, Arial, Helvetica, sans-serif"; $font_color = "#F7B310"; $font_size = "11px"; $font_style = "normal"; $font_weight = "bold"; $background_color = "white"; $border_size = "2px"; $border_style = "solid"; $border_color = "black"; $padding = "5px"; } with(mainStyleOff = new style) { $font_family = "Verdana, Arial, Helvetica, sans-serif"; $font_color = "white"; $font_size = "11px"; $font_style = "normal"; $font_weight = "bold"; $background_color = "white"; $border_size = "1px"; $border_style = "solid"; $border_color = "#E8E8E9"; $padding = "5px"; } setMargin(5); setStyles(mainStyleOn,mainStyleOff); // méthode 'setIframes(border=1|0, marginWidth, marginHeight, scroll=yes|no)' setIframes(0,3,3,yes); /*paramètres des iframes*/ addTab("Logs d'Accès","admin/logs/logs_acces.php",color1); addTab("Logs des Utilisateurs","admin/logs/logs_users.php",color2); addTab("Logs des Serveurs","admin/logs/logs_servers.php",color3); build(); } } </script> <BODY onLoad="tsmInitAll('#4A7AAA','#4A7AAA','#4A7AAA'); tsmLoadAll();"> <div id="global"> <table id="tableGlobal"> <tr> <td id="cellHaut" colspan="4" style="background-image:url(includes/css/images/bg-entete.gif)"> <div id="header"> <div class="titre" id="logos" valign="middle" style="padding-left: 10%;"> <table border="0" height="99%" width="99%" style="background-image:url(includes/css/images/bg-entete.gif)"> <tr> <td style="padding-top: 5%;">REFSERVEUR</td> </tr> </table> </div> <div class="titre" style="padding-left: 52%;"> <span id="logos2"></span> </div> </div> <div id="menuHaut"> <div id="menuHaut2"> <div id="menuTop"> <div class="text-blanc" style="position: absolute; left: 10px; padding-top: 1%;"><a href="#" class="text-blanc">Serveurs</a> | <a href="#" class="text-blanc">Matériels Réseau</a> | <a href="#" class="text-blanc">Matériels Divers</a></div><div class="text-admin" style="position: absolute; left: 400px; padding-top: 1%;"><a href="index.php?l=l_h" class="text-blanc">Home</a><span class="text-blanc"> | </span><a href="index.php?l=l_a" class="text-admin">Administration</a></div><div class="text-blanc" style="position: absolute; right: 10px; padding-top: 1%;"><a href="logout.php" class="text-blanc">Déconnexion [ADMIN]</a></div> </div> </div> </div> </td> </tr> <tr> <td id="cellMenuGauche"> <div id="zoneGauche"> <br /><br /> <div id="titreRubGaucheAdmin"> <h2> Administration </h2> </div> <div id="titreSousRubGaucheAdmin"> <h4><a href="index.php?l=l_a&c=c_au">Gestion des Utilisateurs</a></h4> <h4><a href="index.php?l=l_a&c=c_al&tsm=log">Gestion des Logs</a></h4> </div> </div> <p></p></td> <td id="cellPrincipale"> <div id="zonePrincipale"> <div id="articleZonePrincipale"> <br><br><p><div align="center" class="liste-titre"><b><u>ADMINISTRATION DES LOGS :</u></b></div></p> <br> <div align="center" id="onglets"> </div> </div> </div> </td> </tr> <tr> <td id="cellFooter" colspan="4"> <div id="footer"></div> </td> </tr> </table> </div> </body> </html>
J'utilise le module "tsm.js" pour faire mes onglets (trouvé sur http://www.javascriptfr.com/codes/GESTI ... 28703.aspx)

Voila ma fois .... ce qui m'intrigue le plus c'est que :

- Ca marche sous Firefox avec le "display_errors=on" sur mon srv
- Ca marche sous Firefox avec le "display_errors=off" sur mon srv
- Ca marche sous IE avec le "display_errors=on" sur mon srv
- Ca ne marche pas sous IE avec le "display_errors=off" sur mon srv

Du coup j'aimerais bien savoir ce qui fait la différence :

- Entre IE et Firefox pour le type de code que j'utilise
- Entre le fait de mettre le display_errors à on ou off ?! (je vois vraiment pas en quoi ca peut impacter l'affichage ou non d'une page)

ViPHP
ViPHP | 656 Messages

01 nov. 2006, 08:12

Et au moins, a tu une erreur de la part de ta page PHP? Ton script fait-il à un moment la detection du navigateur?

Faudrais regarder les sources du PHPEngine, mais il est pas impossible que display_errors ajoute une entête HTML. Regarde les différences avec Mozilla, dans Page Info.