formulaire dans une iframe = erreur [please help me ^^]

formulaire dans une iframe = erreur [please help me ^^] - PHP - Programmation

Marsh Posté le 22-04-2008 à 15:29:24    

Bonjour,  
 
Je me permets de vosu soliciter afin de vous faire part d'un problème que je n'arrive pas à résoudre.  
 
J'avais une application en page pleine et pour des question d'ergonomie, j'ai placé ces pages au sein même d'une iframe ; cependant, dès que je valide un des formulaires présents, j'ai soit une page blanche (firefox), soit une page erreur Internet Explorer cannot display the webpage (IE) !!! Pourtant je n'avais pas changé la moindre ligne de code.  
 
J'ai ensuite décidé de mettre un id et un name à mon iframe :  
 
<iframe width="100%" height="470" frameborder="no" name="theframe" id="theframe"></iframe>  
 
et aux formulaires :  
 
<form action="'.$Action.'" method="post" name="form1" id="form1" target="theframe"> (l'action étant le nom de la page)  
 
si je mets le lien récupéré par $Action dasn mon navigateur, la page s'affiche sans soucis, hors lorsque je valide mon formulaire, j'ai toujorus l'erreur indiquée ci-dessus !!!  
 
Auriez-vous des idées sur ce qui se passe ?  
 
(n'hésitez pas à me demander des précisions, c'est juste que le programme fait des dizaines de milliers de lignes [PHP] et que je sais pas les parties qui pourraient vous intéresser pour m'aider à résoudre ce mystère ^^).

Reply

Marsh Posté le 22-04-2008 à 15:29:24   

Reply

Marsh Posté le 22-04-2008 à 15:52:13    

pas besoin du target normalement, le problème doit être dans ton script qui gère le formulaire.

Reply

Marsh Posté le 22-04-2008 à 15:58:48    

Voici le code de la page généré - hors de cet iframe, le formulaire ce valide sans le moindre soucis :
 
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />  
<script src="../javascript/lib/prototype.js" type="text/javascript"></script>  
<script src="../javascript/src/scriptaculous.js?load=effects" type="text/javascript"></script>  
</head>  
<body><link href="style/formulaires.css" rel="stylesheet" type="text/css" />  
 
<table width="100%" border="0" align="center" cellpadding="5" cellspacing="1">  
<tr>  
<td align="left" bgcolor="#FFFFFF" class="text">  
<form name="form1" method="post" action="index.php?id=news.php&idnews=22">  
<p class="reponse">Vous créez ici, un nouveau groupe d'articles. </p>  
<table width="100%" border="0" cellpadding="0" cellspacing="1">  
<tr>  
<td width="172" class="titrebleu">Titre : </td>  
<td width="1212"><input name="titre" type="text" class="inputtext" id="titre" value="Tutoriaux"></td>  
</tr>  
<tr>  
<td width="172" class="titrebleu">Nombre de news par page :</td>  
<td><input name="nb" type="text" class="inputtext" id="nb" value="20"/></td>  
</tr>  
<tr>  
<td colspan="2"><p>  
<label>  
<span class="reponse">  
<br />  
</span><span class="titrebleu">Type d'articles</span><span class="reponse"><br />  
<br />  
<input type="radio" name="ordre" id="radio" />  
</span></label>  
<span class="reponse">Actualités -  
<label>  
<input type="radio" name="ordre" id="radio2" value="1" />  
</label>  
FAQ / Article -  
<label>  
<input type="radio" name="ordre" id="radio3" value="2" />  
</label>  
Téléchargement</span></p>  
<p class="titrebleu">Affichage des commentaires</p>  
<p>  
<label>  
<span class="reponse">  
<input type="radio" name="comment" id="radio4" value="2" />  
</span></label>  
<span class="reponse">Oui (uniquement les identifiés) -  
<label>  
<input type="radio" name="comment" id="radio5" value="1" checked/>  
</label>  
oui (tout le monde) -  
<label>  
<input type="radio" name="comment" id="radio6" />  
</label>  
Non</span><br>  
  </p></td>  
</tr>  
<tr>  
<td colspan="2" align="left">  
<div align="left">  
<p>  
<span class="reponse">Choisir le template d'articles à appliquer :</span><br />  
</p>  
</div>  
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#5B93D7">  
<tr>  
<td height="31" align="left" background="img/fondbarre.jpg" class="titreblanctableau">  Titre</td>  
</tr>  
<tr>  
<td bgcolor="#FFFFFF" class="reponse"><input name="type" type="radio" value="news.tpl" />  
news.tpl <font color=green>(ouvert à l'écriture)</font></td>  
</tr>  
<tr>  
<td bgcolor="#FFFFFF" class="reponse"><input name="type" type="radio" value="support.tpl" />  
support.tpl <font color=green>(ouvert à l'écriture)</font></td>  
</tr>  
<tr>  
<td bgcolor="#FFFFFF" class="reponse"><input name="type" type="radio" value="Tutoriaux" checked />  
Tutoriaux <font color=green>(ouvert à l'écriture)</font></td>  
</tr>  
</table>  
<br />  
<br /></td>  
</tr>  
<tr>  
<td colspan="2"><input name="idnews" type="hidden" id="idarticle" class="inputtext" value="22">  
<input name="Submit" type="submit" class="inputtext" value="Valider"></td>  
</tr>  
</table>  
<p> </p>  
<p>  </p>  
</form></td>  
</tr>  
</table>  

Reply

Marsh Posté le 22-04-2008 à 16:11:23    

un exemple en live serait plus parlant
ou un message d'erreur (essaye firebug, tu gagneras du temps pour la phase de debug)
 
PS: utilise la balise code pour poster du code

Reply

Marsh Posté le 22-04-2008 à 16:29:47    

je ne peux malheureusement pas faire de live mais je vais tout vous fournir.
 
De un, on a le visuel global :
 

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>Panoptik 3</title>
  5. <style type="text/css">
  6. <!--
  7. body {
  8. background-color: #000000;
  9. margin-left: 0px;
  10. margin-right: 0px;
  11. }
  12. .txt_12_white, a.txt_12_white {
  13. font-family: Arial, Helvetica, sans-serif;
  14. font-size: 12px;
  15. color: #FFFFFF;
  16. text-decoration:none;
  17. }
  18. #cache {
  19. position:absolute;
  20. left:310px;
  21. top:185px;
  22. width:842px;
  23. height:391px;
  24. z-index:1;
  25. }
  26. -->
  27. </style>
  28. <script src="../javascript/lib/prototype.js" type="text/javascript"></script>
  29. <script src="../javascript/src/scriptaculous.js?load=effects" type="text/javascript"></script>
  30. <script src="../javascript/bulle.js" type="text/javascript"></script>
  31. <script>
  32. window.onresize = replaceframe;
  33. function replaceframe()
  34. {
  35.  if (document.body)
  36.  {
  37.   var largeur = (document.body.clientWidth);
  38.  }
  39.  else
  40.  {
  41.   var largeur = (window.innerWidth);
  42.  }
  43.  cach.left = Math.round((largeur/2)-620);
  44.  cach.visibility = "visible";
  45. }
  46. </script>
  47. </head>
  48. <body>
  49. <DIV ID="tip"
  50. style="position:absolute; visibility:hidden; z-index:800;
  51. background:#000000; width:200px; height:auto; padding:4px; text-align:left;
  52. border:1px solid white;filter : alpha(opacity=80); -moz-opacity : 0.8; opacity : 0.8; color:white;font-family:arial;font-size:12px"></DIV>
  53. <div id="cache" style="visibility:visible">
  54.   <table width="1260" border="0" cellspacing="0" cellpadding="0" id="tableofcache">
  55.     <tr>
  56.       <td width="11" height="34"><img src="../template/back-office/img/top-left-frame.png" width="11" height="34" /></td>
  57.       <td align="left" valign="middle" background="../template/back-office/img/top-frame.png"><img src="../template/back-office/img/logo-p3-small.png" width="82" height="29" /></td>
  58.       <td align="right" valign="middle" background="../template/back-office/img/top-frame.png"><a href="javascript:void(0);" onClick="cach.visibility = 'hidden';cach.display = 'none';"><img src="../template/back-office/img/close.png" width="29" height="18" border="0"/></a></td>
  59.       <td width="19"><img src="../template/back-office/img/top-right-frame.png" width="19" height="34" /></td>
  60.     </tr>
  61.     <tr>
  62.       <td background="../template/back-office/img/middle-left-frame.png">&nbsp;</td>
  63.       <td colspan="2" bgcolor="#FFFFFF" style="border:solid 1px black"><iframe width="100%" height="470" frameborder="no" name="theframe" id="theframe"></iframe></td>
  64.       <td background="../template/back-office/img/middle-right-frame.png">&nbsp;</td>
  65.     </tr>
  66.     <tr>
  67.       <td height="19"><img src="../template/back-office/img/bottom-left-frame.png" width="11" height="19" /></td>
  68.       <td colspan="2" background="../template/back-office/img/bottom-frame.png">&nbsp;</td>
  69.       <td><img src="../template/back-office/img/bottom-right-frame.png" width="19" height="19" /></td>
  70.     </tr>
  71.   </table>
  72. </div>
  73. <table width="1280" border="0" align="center" cellpadding="0" cellspacing="0">
  74.   <tr>
  75.     <td height="720" valign="top" background="../template/back-office/img/winwallpaper.jpg"><table width="100%" border="0" cellspacing="0" cellpadding="0">
  76.       <tr>
  77.         <td height="38" background="../template/back-office/img/barre.png" align="right"><a href="index.php?security=1"><img src="img/security_bad.png"  onMouseOver="bulle('<font color=yellow>Critique</font><br/>Vous devez impérativement supprimer le dossier installation pour vous protèger !!! (cliquez sur le bouclier pour le supprimer)',event,50);" onMouseOut="couic();" border="0"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
  78.       </tr>
  79.     </table>
  80.       <table width="100%" border="0" cellspacing="10" cellpadding="0">
  81.         <tr>
  82.           <td width="117" height="117" align="center" valign="middle" class="txt_12_white" onMouseOver="this.style.background='url(../template/back-office/img/background-option-select.png)'" onMouseOut="this.style.background='url()'"><div align="center"><a href="index.php?id=contenuliste.php" onClick="cach.visibility = 'visible';cach.display = 'block';" target="theframe" class="txt_12_white"><img src="../template/back-office/img/content.png" width="64" height="64" border="0" onClick="new Effect.Puff(this); window.setTimeout('Effect.Appear(\'img1\', {duration:.3})',1000);" id="img1"/><br />
  83.           Gestion des contenus</div></td>
  84.           <td width="117" align="center" valign="middle" class="txt_12_white" onMouseOver="this.style.background='url(../template/back-office/img/background-option-select.png)'" onMouseOut="this.style.background='url()'"><div align="center"><img src="../template/back-office/img/news.png" alt="" width="64" height="64" /><br />
  85.           Gestion des actualit&eacute;s</div></td>
  86.           <td>&nbsp;</td>
  87.         </tr>
  88.       </table></td>
  89.   </tr>
  90. </table>
  91. <script>
  92. var nava = (document.layers);
  93. var dom = (document.getElementById);
  94. var iex = (document.all);
  95. if (nava)
  96. {
  97.  cach = document.cache;
  98. }
  99. else if (dom)
  100. {
  101.  cach = document.getElementById("cache" ).style;
  102. }
  103. else if (iex)
  104. {
  105.  cach = cache.style;
  106. }
  107. if (document.body)
  108. {
  109.  var largeur = (document.body.clientWidth);
  110. }
  111. else
  112. {
  113.  var largeur = (window.innerWidth);
  114. }
  115. cach.left = Math.round((largeur/2)-620);
  116. cach.visibility = "visible";
  117. </script>
  118. </body>
  119. </html>


 
et de deux on a l'intérieur de l'iframe appelée
 

Code :
  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
  4. <script src="../javascript/lib/prototype.js" type="text/javascript"></script> 
  5. <script src="../javascript/src/scriptaculous.js?load=effects" type="text/javascript"></script> 
  6. </head> 
  7. <body><link href="style/formulaires.css" rel="stylesheet" type="text/css" /> 
  8. <table width="100%" border="0" align="center" cellpadding="5" cellspacing="1"> 
  9. <tr> 
  10. <td align="left" bgcolor="#FFFFFF" class="text"> 
  11. <form name="form1" method="post" action="index.php?id=news.php&idnews=22"> 
  12. <p class="reponse">Vous créez ici, un nouveau groupe d'articles. </p> 
  13. <table width="100%" border="0" cellpadding="0" cellspacing="1"> 
  14. <tr> 
  15. <td width="172" class="titrebleu">Titre : </td> 
  16. <td width="1212"><input name="titre" type="text" class="inputtext" id="titre" value="Tutoriaux"></td> 
  17. </tr> 
  18. <tr> 
  19. <td width="172" class="titrebleu">Nombre de news par page :</td> 
  20. <td><input name="nb" type="text" class="inputtext" id="nb" value="20"/></td> 
  21. </tr> 
  22. <tr> 
  23. <td colspan="2"><p> 
  24. <label> 
  25. <span class="reponse"> 
  26. <br /> 
  27. </span><span class="titrebleu">Type d'articles</span><span class="reponse"><br /> 
  28. <br /> 
  29. <input type="radio" name="ordre" id="radio" /> 
  30. </span></label> 
  31. <span class="reponse">Actualités - 
  32. <label> 
  33. <input type="radio" name="ordre" id="radio2" value="1" /> 
  34. </label> 
  35. FAQ / Article - 
  36. <label> 
  37. <input type="radio" name="ordre" id="radio3" value="2" /> 
  38. </label> 
  39. Téléchargement</span></p> 
  40. <p class="titrebleu">Affichage des commentaires</p> 
  41. <p> 
  42. <label> 
  43. <span class="reponse"> 
  44. <input type="radio" name="comment" id="radio4" value="2" /> 
  45. </span></label> 
  46. <span class="reponse">Oui (uniquement les identifiés) - 
  47. <label> 
  48. <input type="radio" name="comment" id="radio5" value="1" checked/> 
  49. </label> 
  50. oui (tout le monde) - 
  51. <label> 
  52. <input type="radio" name="comment" id="radio6" /> 
  53. </label> 
  54. Non</span><br> 
  55.   </p></td> 
  56. </tr> 
  57. <tr> 
  58. <td colspan="2" align="left"> 
  59. <div align="left"> 
  60. <p> 
  61. <span class="reponse">Choisir le template d'articles à appliquer :</span><br /> 
  62. </p> 
  63. </div> 
  64. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#5B93D7"> 
  65. <tr> 
  66. <td height="31" align="left" background="img/fondbarre.jpg" class="titreblanctableau">  Titre</td> 
  67. </tr> 
  68. <tr> 
  69. <td bgcolor="#FFFFFF" class="reponse"><input name="type" type="radio" value="news.tpl" /> 
  70. news.tpl <font color=green>(ouvert à l'écriture)</font></td> 
  71. </tr> 
  72. <tr> 
  73. <td bgcolor="#FFFFFF" class="reponse"><input name="type" type="radio" value="support.tpl" /> 
  74. support.tpl <font color=green>(ouvert à l'écriture)</font></td> 
  75. </tr> 
  76. <tr> 
  77. <td bgcolor="#FFFFFF" class="reponse"><input name="type" type="radio" value="Tutoriaux" checked /> 
  78. Tutoriaux <font color=green>(ouvert à l'écriture)</font></td> 
  79. </tr> 
  80. </table> 
  81. <br /> 
  82. <br /></td> 
  83. </tr> 
  84. <tr> 
  85. <td colspan="2"><input name="idnews" type="hidden" id="idarticle" class="inputtext" value="22"> 
  86. <input name="Submit" type="submit" class="inputtext" value="Valider"></td> 
  87. </tr> 
  88. </table> 
  89. <p> </p> 
  90. <p>  </p> 
  91. </form></td> 
  92. </tr> 
  93. </table>


 
Pour le debug malheureusement il n'y a aucun bug !!! Ca renvoit un code source vide donc page blanche sous firefox et Internet Explorer cannot display the webpage sous IE. Sous Safari rien en se passe.
 
Par contre, je suis étonné mais en rélféchissant mon formulaire de connexion fonctionne !!!
 
code de ce formulaire de connexion :
 

Code :
  1. <html>
  2.  <head>
  3.  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  4.  <script src="../javascript/lib/prototype.js" type="text/javascript"></script>
  5.  <script src="../javascript/src/scriptaculous.js?load=effects" type="text/javascript"></script>
  6.  </head>
  7.  <body>
  8.    <script>
  9.     function pan_alert(text) { alert(text); }
  10.    </script>
  11.  <link href="style/formulaires.css" rel="stylesheet" type="text/css" />
  12.                     <table width="100%"  border="0" align="center" cellpadding="5" cellspacing="1">
  13.              <tr>
  14.                    <td align="left" bgcolor="#FFFFFF" class="text">
  15.                      <span class="titreviolet">Connexion</span>
  16.                     <table width="100%" border="0" cellpadding="5" style="border:solid 1px gray">
  17.                    <tr>
  18.                    <td align="left">
  19.                        
  20.             <table width="100%" border="0" cellpadding="0" cellspacing="1"  style="border:solid 1px white" onmouseover="this.style.backgroundColor='#CCEEFF';this.style.border='solid 1px #AACCDD'" onmouseout="this.style.backgroundColor='white';this.style.border='solid 1px white'"><form name="form1" method="post" action="index.php?id=contenuliste.php">
  21.                 <tr>
  22.                   <td colspan="3" height="5"></td>
  23.                 </tr>
  24.                 <tr>
  25.                   <td width="66" height="66" background="img/fondcompte.gif" align="center"><img src="img/avatar/admin.jpg" width="50" height="50" border="1" /></td>
  26.                   <td width="10">&nbsp;</td>
  27.                   <td valign="top"><span class="titrepseudo">Admin</span><br />
  28.                       <span class="reponse">Super administrateur<br />
  29.                       <input name="pswd" type="password" class="inputtext" id="pswd" maxlength="30" />
  30.                       <input name="Submit3" type="submit" class="inputtext" value="ok" />
  31.                       <input name="pseudo2" type="hidden" class="inputtext" id="pseudo2" value="admin" maxlength="30" />
  32.                   </span></td>
  33.                 </tr>
  34.                 <tr>
  35.                   <td colspan="3" height="5"></td>
  36.                 </tr></form>
  37.               </table>
  38. <table width="100%" border="0" cellpadding="0" cellspacing="1" style="border:solid 1px white" onmouseover="this.style.backgroundColor='#CCEEFF';this.style.border='solid 1px #AACCDD'" onmouseout="this.style.backgroundColor='white';this.style.border='solid 1px white'" >
  39.                   <form name="form1slim" method="post" action="index.php?id=contenuliste.php"><tr>
  40.                     <td colspan="3" height="5"></td>
  41.                   </tr>
  42.                   <tr>
  43.                     <td width="66" height="66" background="img/fondcompte.gif" align="center"><img src="img/avatar/2.jpg" alt="" width="50" height="50" border="1" /></td>
  44.                     <td width="10">&nbsp;</td>
  45.                     <td valign="top"><span class="titrepseudo">slim</span><br />
  46.                         <span class="reponse">
  47.     <br /><input name="pswd" type="password" class="inputtext" id="pswd" maxlength="30" />
  48.                         <input name="Submit2" type="submit" class="inputtext" value="ok" />                       
  49.                         <input name="pseudo2" type="hidden" id="pseudo2" value="slim" /></span></td>
  50.                     </tr>
  51.                   <tr>
  52.                     <td colspan="3" height="5"></td>
  53.                   </tr></form>
  54.                 </table>
  55.                               </td>
  56.                             </tr>
  57.                           </table>
  58.                         </td>
  59.                       </tr>
  60.                     </table>


 
Lui vérifie de façon classique le mot de passe et reroote à la page appelée dans l'iframe avec mise en session d'un utilisateur $_SESSION['pseudoA'].
 
Désolé d'avoir omis ce point, mais je viens à peine de faire attention au fait que seul ce formulaire ne fait aucune erreur !!!
 
Ai-je été assez explicite ?

Reply

Marsh Posté le 22-04-2008 à 16:59:20    

essaye de limiter le code aux portions intéressante, là ça devient un peu lourd en affichage et lecture
 
par défaut ta page ne charge rien dans l'iframe (pas d'attribut src), donc normal qu'il n'y ait rien dedans

Reply

Marsh Posté le 22-04-2008 à 17:16:13    

Voici donc le code limité aux portions intéressantes :
 
page contenant l'iframe (la page se charge lorsque l'on clique sur l'image
 

Code :
  1. <table width="1260" border="0" cellspacing="0" cellpadding="0" id="tableofcache">
  2.     <tr>
  3.       <td width="11" height="34"><img src="../template/back-office/img/top-left-frame.png" width="11" height="34" /></td>
  4.       <td align="left" valign="middle" background="../template/back-office/img/top-frame.png"><img src="../template/back-office/img/logo-p3-small.png" width="82" height="29" /></td>
  5.       <td align="right" valign="middle" background="../template/back-office/img/top-frame.png"><a href="javascript:void(0);" onClick="cach.visibility = 'hidden';cach.display = 'none';"><img src="../template/back-office/img/close.png" width="29" height="18" border="0"/></a></td>
  6.       <td width="19"><img src="../template/back-office/img/top-right-frame.png" width="19" height="34" /></td>
  7.     </tr>
  8.     <tr>
  9.       <td background="../template/back-office/img/middle-left-frame.png">&nbsp;</td>
  10.       <td colspan="2" bgcolor="#FFFFFF" style="border:solid 1px black"><iframe width="100%" height="470" frameborder="no" name="theframe" id="theframe"></iframe></td>
  11.       <td background="../template/back-office/img/middle-right-frame.png">&nbsp;</td>
  12.     </tr>
  13.     <tr>
  14.       <td height="19"><img src="../template/back-office/img/bottom-left-frame.png" width="11" height="19" /></td>
  15.       <td colspan="2" background="../template/back-office/img/bottom-frame.png">&nbsp;</td>
  16.       <td><img src="../template/back-office/img/bottom-right-frame.png" width="19" height="19" /></td>
  17.     </tr>
  18.   </table>


 
le formulaire devant se valider :
 

Code :
  1. <table width="100%" border="0" align="center" cellpadding="5" cellspacing="1">
  2. <tr>
  3. <td align="left" bgcolor="#FFFFFF" class="text">
  4. <form name="form1" method="post" action="index.php?id=news.php&idnews=22">
  5. contenu avec input classiques
  6. </form></td>
  7. </tr>
  8. </table>


 
et le formulaire de connexion qui fonctionne !!! Mais dès qu'il est validé plus aucun autre formulaire fonctionne !!! Je rappelle que sans l'iframe, totu passe sans le moindre soucis !!!
 

Code :
  1. <form name="form1" method="post" action="index.php?id=contenuliste.php">
  2.                 <tr>
  3.                   <td colspan="3" height="5"></td>
  4.                 </tr>
  5.                 <tr>
  6.                   <td width="66" height="66" background="img/fondcompte.gif" align="center"><img src="img/avatar/admin.jpg" width="50" height="50" border="1" /></td>
  7.                   <td width="10">&nbsp;</td>
  8.                   <td valign="top"><span class="titrepseudo">Admin</span><br />
  9.                       <span class="reponse">Super administrateur<br />
  10.                       <input name="pswd" type="password" class="inputtext" id="pswd" maxlength="30" />
  11.                       <input name="Submit3" type="submit" class="inputtext" value="ok" />
  12.                       <input name="pseudo2" type="hidden" class="inputtext" id="pseudo2" value="admin" maxlength="30" />
  13.                   </span></td>
  14.                 </tr>
  15.                 <tr>
  16.                   <td colspan="3" height="5"></td>
  17.                 </tr></form>


 
J'espère que ça te permettra de mieux visualiser la globalité comme ça.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed