Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] IE a wyświetlanie oskryptowanej podstrony
Forum PHP.pl > Forum > Przedszkole
demolka666
Witam,
W moim CMSie zawarłam funkcjonalność edycji podpisów i usuwania zdjęć. U mnie wszystko pięknie działa - i w IE, i w Operze. jednym słowem cud, miód i fistaszki. I byłoby cudownie gdyby nie to że mój klient narzeka że po kliknięciu na "Edytuj zdjęcia" on dostaje pustą stronę (jakby div z zawartością się w ogóle nie ładował). Cała reszta mu działa. Korzysta on z IE8.
Jak to możliwe że mnie u mnie na tej samej przeglądarce wszystko działa a u niego nie? Raczej wszystko robi dobrze. O to includowana zawartość problematycznej podstrony:

  1. <?php
  2. $dir = 'galeria/';
  3. $dir2 = 'thumbs/';
  4. include('funkcje/baza.php');
  5.  
  6. $c = 3; //liczba rzędów
  7.  
  8. $i = 0;
  9. $count = 4; //liczba zdjec w rzędzie
  10. $c = $c*$count;
  11. $count--;
  12.  
  13. if(!isset($_GET['s'])){
  14. $s=0;
  15. }
  16. else{
  17. $s = $_GET['s'];
  18. }
  19. echo "<center><h2>Edycja Zdjęć</h2>";
  20. echo("<table cellspacing=\"10\"><tr>");
  21. $zapytanie = "SELECT * FROM foto ORDER by ID DESC LIMIT $s, $c";
  22. $wynik = mysql_query($zapytanie) OR DIE(mysql_error());
  23. while ($row = mysql_fetch_array($wynik)){
  24.  
  25. $foto = $row['foto'];
  26. $id = $row['id'];
  27.  
  28. echo ("<td><img src=\"$dir2$foto\"><br>");
  29. echo ("<a href=\"panel.php?id=picdel&action=delete&d=".$id." \"><img src=\"images/delete.gif\" title=\"Usuń\"></a>");
  30. echo ("<a href=\"panel.php?id=fotoedit&d=".$id." \"><img src=\"images/edit.gif\" title=\"Edytuj\"></a>");
  31. echo ("</td>");
  32.  
  33. if($i < $count){
  34. $i++;
  35. }
  36. else{
  37. echo ("</tr><tr>");
  38. $i = 0;
  39. }
  40. }
  41. echo("</tr></table>");
  42.  
  43. $zapytanie3 = "SELECT * FROM foto";
  44. $wynik2 = mysql_query($zapytanie3) OR DIE(mysql_error());
  45. $z = mysql_num_rows($wynik2); //ilosc wpisow w bazie danych
  46.  
  47. if($s != 0){
  48. echo'<a href="panel.php?id=picdel&s='.$b=$s-$c.'">Nowsze</a>';
  49. }
  50.  
  51. if($s != 0 && $s+$c < $z){
  52. echo" | ";
  53. }
  54.  
  55. if(($s+$c) < $z){
  56. echo '<a href="panel.php?id=picdel&s='.$b=$s+$c.'">Starsze</a>';
  57. }
  58.  
  59.  
  60.  
  61. if(isset($_GET['d'])){
  62. $id = $_GET['d'];
  63. if($_GET['action'] == 'delete'){
  64. $zapytanie2 = "SELECT * FROM foto WHERE id=$id";
  65. $wynik2 = mysql_query($zapytanie2) OR DIE(mysql_error());
  66. while($row2 = mysql_fetch_array($wynik2)){
  67. $del = $row2['foto'];
  68.  
  69. }
  70. unlink("$dir$del");
  71. unlink("$dir2$del");
  72.  
  73. $zapytanie3 = "DELETE FROM foto WHERE id=$id";
  74. mysql_query($zapytanie3) OR DIE (mysql_error());
  75. echo ("Zdjęcie Zostało Usunięte");
  76. echo ("<script language=\"JavaScript\" type=\"text/javascript\">window.location.href = \"panel.php?id=picdel\"</script>");
  77. }
  78. }
  79. echo "</center>";
  80. ?>
Pilsener
Bardzo kiepsko napisany skrypt, a co do tego:
Cytat
Jak to możliwe że mnie u mnie na tej samej przeglądarce wszystko działa a u niego nie?
- masz archaiczny kod HTML, który zawsze będzie się różnie zachowywał w nowoczesnych przeglądarkach i nie sposób tego kontrolować. Radzę dostosować kod HTML do obecnych standardów, niech klient skopiuje kod html ze źródła strony i wklei do walidatora:
http://validator.w3.org/#validate_by_input

Generując niepoprawny kod HTML nie możemy wymagać jego poprawnej interpretacji przez browsery.
muniekw
W 81 lini masz
  1. </center>
a gdzie jest początek questionmark.gif
demolka666
Tutaj jest początek
  1. echo "<center><h2>Edycja Zdjęć</h2>";

^^
Tak nie może być? Jeżeli można, to proszę o jakieś wskazówki jak mam uporządkować i ulepszyć kod. winksmiley.jpg Bo nie bardzo wiem z której strony ugryźć.

EDIT: Validator mi nic nie pomaga gdyż wywala "błędy" które wynikają z tego, że nie rozpoznaje składni PHP (np. w echo "pluje się" o cudzysłowia w które ujęte są polecenia echo)

Debugowałam skrypt włączając na początku skryptu funkcje aby wywalał mi wszystkie błędy i nic mi nie znalazł.

Zamieszczę może jeszcze główny dokument do którego powyższy jest includowany:
  1. <?php session_start();
  2. if(!session_is_registered("zalogowany")){
  3. header("location:index.php");
  4. }
  5. ?>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  9. <meta http-equiv="content-Language" content="pl">
  10. <link rel="stylesheet" type="text/css" href="style.css">
  11. <meta name="author" content="Katarzyna Biernat">
  12. <link rel="shortcut icon" href="icon.ico">
  13. <title>Panel administracyjny</title>
  14.  
  15. <script type="text/javascript" src="menu.js"></script>
  16. <script type="text/javascript" src="tiny_mce/tiny_mce.js"></script>
  17. <script type="text/javascript">
  18. tinyMCE.init({
  19. mode : "textareas",
  20. theme : "simple",
  21. language : "pl",
  22. skin : "default",
  23. encoding : "utf8"
  24. });
  25. </script>
  26.  
  27. </head>
  28. <body>
  29.  
  30. <div id="header"><a href="panel.php">
  31. <br><center><h1><font face="Bodoni MT Black, 'Arial Black'">Panel Administracyjny</font><sup><font face="Bodoni MT, 'Arial'" size="2"><i>beta</i></font></sup></h1></center>
  32. <p><a href="logout.php">Wyloguj <?php echo $_SESSION['user']; ?></A></p>
  33. </a></div>
  34. <div id="cont">
  35. <div id="menu">
  36. <br>
  37. <dl id="menu0">
  38. <dt>Strona Główna</dt>
  39. <dd><a href="panel.php?id=edycja&jez=polski&page=glowna">Jęz. polski</a></dd>
  40. <dd><a href="panel.php?id=edycja&jez=angielski&page=glowna">Jęz. angielski</a></dd>
  41. <dd><a href="panel.php?id=edycja&jez=niemiecki&page=glowna">Jęz. niemiecki</a></dd>
  42. <dd class="last"><a href="panel.php?id=edycja&jez=rosyjski&page=glowna">Jęz. rosyjski</a></dd>
  43.  
  44. <dt>Oferta</dt>
  45. <dd><a href="panel.php?id=fotonew">Dodaj produkt</a></dd>
  46. <dd><a href="panel.php?id=picdel">Edytuj produkty</a></dd>
  47. <dd class="last"><a href="panel.php?id=wyglad">Wygląd</a></dd>
  48.  
  49. <dt>Współpraca</dt>
  50. <dd><a href="panel.php?id=edycja&jez=polski&page=wspolpraca">Jęz. polski</a></dd>
  51. <dd><a href="panel.php?id=edycja&jez=angielski&page=wspolpraca">Jęz. angielski</a></dd>
  52. <dd><a href="panel.php?id=edycja&jez=niemiecki&page=wspolpraca">Jęz. niemiecki</a></dd>
  53. <dd class="last"><a href="panel.php?id=edycja&jez=rosyjski&page=wspolpraca">Jęz. rosyjski</a></dd>
  54. <dt>Kontakt</dt>
  55. <dd><a href="panel.php?id=edycja&jez=polski&page=kontakt">Jęz. polski</a></dd>
  56. <dd><a href="panel.php?id=edycja&jez=angielski&page=kontakt">Jęz. angielski</a></dd>
  57. <dd><a href="panel.php?id=edycja&jez=niemiecki&page=kontakt">Jęz. niemiecki</a></dd>
  58. <dd class="last"><a href="panel.php?id=edycja&jez=rosyjski&page=kontakt">Jęz. rosyjski</a></dd>
  59.  
  60. <dt>Użytkownicy</dt>
  61. <dd><a href="panel.php?id=pass">Zmień hasło</a></dd>
  62. <dd class="last"><a href="panel.php?id=user">Utwórz nowego użytkownika</a></dd>
  63.  
  64.  
  65. <script type="text/javascript">
  66. // <![CDATA[
  67. new Menu('menu0');
  68. // ]]>
  69. </script>
  70. </dl>
  71.  
  72.  
  73. </div>
  74. <div id="main">
  75. <div id="tresc">
  76.  
  77. <?php
  78. if(isset($_GET['id'])){
  79. switch($_GET['id']){
  80. //EDYCJA
  81. case "edycja":
  82. include("edycja.php");
  83. break;
  84. //OFERTA
  85. case "picnew":
  86. include("picnew.php");
  87. break;
  88. case "picdel":
  89. include("picdel.php");
  90. break;
  91. case "correct":
  92. include("correct.php");
  93. break;
  94. case "upload":
  95. include("upload.php");
  96. break;
  97. case "fotonew":
  98. include("fotonew.php");
  99. break;
  100. case "edit":
  101. include("edit.php");
  102. break;
  103. case "pass":
  104. include("pass.php");
  105. break;
  106. case "edycja":
  107. include("edycja.php");
  108. break;
  109. case "user":
  110. include("user.php");
  111. break;
  112. case "wyglad":
  113. include("wyglad.php");
  114. break;
  115. case "fotoedit":
  116. include("fotoedit.php");
  117. break;
  118. //KONIEC
  119. default:
  120. include("default.php");
  121. break;
  122. }
  123. }
  124. else{
  125. include("default.php");
  126. }
  127. ?>
  128. </div>
  129. </div>
  130. </div>
  131. <div id="footer">
  132. <!--<a href="logout.php">Wyloguj!</a> -->
  133. <a href="mailto:k.biernat0@gmail.com">Designed & Coded by Katarzyna Biernat</a>
  134. </div>
  135. </body>
  136. </html>

Dodam że wszystkie inne podstrony działają, więc błąd wynika bezpośrednio ze skryptu zamieszczonego na początku tematu.

EDIT 2: Poprawiłam do Center - wsadziłam je do skryptu i wyechowałam (zmieniłam to też na górze w temacie).
mortus
Odnośnie walidacji. Uruchom stronę np. lokalnie i skopiuj źródło strony z przeglądarki do walidatora. Tam będziesz mieć wszystko czarno na białym.
demolka666
@mortus:

wsadziłam to do validatora i wywalił mi mnóstwo błędów związanych z adresami zawierającymi dane do pobrania za pomocą $_GET. Validator radzi mi żeby zamiast takiego adresu:
  1. panel.php?id=edycja&jez=polski&page=glowna

wsadzić taki adres:
  1. panel.php?id=edycja&amp;jez=polski&amp;page=glowna

Czy jest to konieczne? Do tej pory wszystko inne działało ok. Albo inaczej, czy pierwszy adres jest dużym błędem?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.