Już kilka błędów naprawiałem, ale z tym chyba sobie nie poradzę.
A tak poza tym - co robić, aby takich błędów nie robić?questionmark.gif

Kod panelu admina:
  1. <?php //charset=iso-8859-2
  2. if((($_SERVER['PHP_AUTH_USER']==$login) && ($_SERVER['PHP_AUTH_PW']==$pass)) || ($HTTP_COOKIE_VARS[&#092;"F3Kartki\".$security] == $login.$pass.$security)) {
  3. if(!$_GET['co']) {
  4. <table cellpadding=\"2\" cellspacing=\"1\" class=\"table\" style=\"background-color: green\" align=\"center\">
  5. <tbody>');
  6. //generowanie nadkategorii:
  7. if($czytaj=opendir(&#092;"../list\")) {
  8. while(false !== ($nadk=readdir($czytaj))) {
  9. if($nadk != &#092;".\" && $nadk != \"..\") {
  10. if(is_dir(&#092;"../list/\".$nadk)) {
  11. echo('<tr><td class=\"dth\" style=\"text-align: left\"><b>');
  12. if(file_exists(&#092;"../list/\".$nadk.\".txt\")) {
  13. include(&#092;"../list/\".$nadk.\".txt\"); }
  14. else { echo($nadk); }
  15. echo('</b>
  16. </td>
  17. <td class=\"dth\" colspan=\"2\">
  18. <a href=\"javascript:pyt=confirm('Czy na pewno chcesz skasować nadkategorię '.$nadk.' i usunąć wszystkie podkategorie i kartki, które tam się znajdują?&#092;nAktualnie musisz ręcznie usunąć wszystkie podkategorie i kartki z tej nadk
  19. tegorii.'); if(pyt) { location='index.php?idstr=ekat&amp;co=usunnadk&amp;nadk='.$nadk.'' }
  20. else { void(0); }\">usuń</a></td></tr>');
  21. foreach (glob(&#092;"../list/\".$nadk.\"/*.php\") as $podk) {
  22. $nowy_podk=str_replace(&#092;"../list/\".$nadk.\"/\",\"\",$podk);
  23. $nowy_podk=str_replace(&#092;".php\",\"\",$nowy_podk);
  24. include($podk);
  25. $sfk=sizeof($kartka);
  26. echo('<tr><td class=\"dt1\"><b>&nbsp;&middot; <a href=\"javascript:document.all.h'.$nowy_podk.'.style.display='block'; ');
  27. if(sizeof($kartka)>0) {
  28. for($ii=0;$ii<sizeof($kartka);$ii++) {
  29. echo('document.all.t'.$nowy_podk.$ii.'.style.display='block';'); } }
  30. echo('void(0);\">'.$nav[1].'</a></b></td>
  31. <td class=\"dt1\">Kartek: <b>'.sizeof($kartka).'</b></td>
  32. <td class=\"dt1\" align=\"center\">
  33. <a href=\"javascript:pyt=confirm('Czy na pewno chcesz usunąć tą podkategorię?nPrzed usunięciem usuń wszystkie kartki, które się w niej znajdują!nJeśli w katalogu podkategorii będą pliki, nie zostanie on usunięty.'); if(pyt) { location='index.php?idstr=ekat&amp;co=usunpodk&amp;podk='.$podk.'&amp;nadk='.$nadk.'' }
  34. else { void(0); }\">usuń</a> &middot; <a href=\"index.php?idstr=ekat&amp;co=edytujpodk&amp;podk='.$podk.'&amp;nadk='.$nadk.'\">edytuj</a></td></tr>');
  35. for($i=0;$i<sizeof($kartka);$i++) {
  36. echo('<tr id=\"t'.$nowy_podk.$i.'\"');
  37. if(!$_GET['wszystko']) { echo(' style=\"display: none\"'); }
  38. echo('><td class=\"dt2\" style=\"text-align: left; font-size: 14px\">
  39. <b><input type=\"checkbox\" name=\"usun_kartke_'.$i.'_'.$kartkal[$i].'\" /> &bull; '.$kartka[$i].'</b>
  40. </td><td class=\"dt2\">...</td>
  41. //Gdzieś tu jest ten cholerny problem
  42. //Pętla dodająca kartki do listy kartek
  43. <td class=\"dt2\"><a href=\"index.php?idstr=ekat&amp;co=usun&amp;gdzie=kartka&amp;nadk='.$nadk.'&amp;podk='.$podk.'&amp;e='.$i.'\">usuń</a></td></tr>');
  44. unset($kartka[$i]); }
  45. echo('<tr id=\"h'.$nowy_podk.'\"');
  46. if(!$_GET['wszystko']==&#092;"t\") {
  47. echo(' style=\"display: none\"'); }
  48. echo('><td class=\"dt2\" colspan=\"3\" style=\"text-align: left\">&nbsp;<b>Ilość kartek: </b><select size=\"1\" name=\"ile_kartek_dodac_'.$nadk.$nowy_podk.'\">
  49. <option selected=\"selected\">1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option>
  50. </select>
  51. <input type=\"button\" value=\"Dodaj kartki\" onclick=\"location='index.php?idstr=ekat&amp;co=dodajkartki&amp;nadk='.$nadk.'&amp;podk='.$nowy_podk.'&amp;ile='+document.all.ile_kartek_dodac_'.$nadk.$nowy_podk.'.selectedIndex\" />
  52. &nbsp;&nbsp;&nbsp;(<a href=\"javascript:document.all.h'.$nowy_podk.'.style.display='none'; '); if($sfk>0) { for($ii=0;$ii<$sfk;$ii++) { echo('document.all.t'.$nowy_podk.$ii.'.style.display='none'; '); } } echo('void(0);\">ukryj kartki</a>)
  53. </td></tr>'); }
  54. echo('<tr><td class=\"dt1\" colspan=\"3\">
  55. &nbsp;<b>Ilość: </b>
  56. <select size=\"1\" name=\"ile_podk_dodac_'.$nadk.'\">
  57. <option selected=\"selected\">1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option>
  58. </select> 
  59. <input type=\"button\" value=\"Dodaj podkategorie\" onclick=\"location='index.php?idstr=ekat&amp;co=dodajpodk&amp;nadk='.$nadk.'&amp;ile='+document.all.ile_podk_dodac_'.$nadk.'.selectedIndex\" />
  60. </td></tr>');
  61. echo('<tr><td style=\"height: 1px; background-color: green\" colspan=\"3\"></td></tr>');
  62. } } } closedir($czytaj);
  63. } echo('
  64. <tr><td class=\"dth\" colspan=\"3\"><input type=\"button\" value=\"Dodaj nadkategorię\" onclick=\"pyt=prompt('Podaj nazwę dla nowej nadkategorii.'); pyt2=prompt('Podaj nazwę folderu, w którym mają być pliki nadkategorii.'); if(pyt!=null && pyt2!=null) { location='index.php?idstr=ekat&amp;co=dodajnadk&amp;nazwanadk='+pyt+'&amp;nazwakatnadk='+pyt2 } else { alert('Dodanie nowej kartki było niemożliwe!'); }\" /> <input type=\"button\" value=\"Usuń zaznaczone kartki\" onclick=\"submit()\" style=\"width: 180px\" />
  65. </td></tr>
  66. </tbody>
  67. </table>
  68. '); } } /* koniec */
  69. ?>


Objawy:
W podkategorii 123 Powinno się wyświetlić 5 kartek, a wyświetlają się tylko 3.
W podkategorii wakacje powinna być 1 kartka, a wyświetla się 3. (na liczniku 4).

Jak rozwiązać ten problem?questionmark.gif

Dołączam także:
- zdjęcie:


- plik danych podkategorii 123:
  1. <?php //charset=iso-8859-2
  2. $nav=Array(&#092;"ee\",\"123\");
  3. ?><?php 
  4. $kartka[0]=&#092;"nazwa\"; 
  5. $kartkal[0]=Array(&#092;"lokalizacja\",\"roz\",\"roz2\"); 
  6. $data=&#092;"24.07.2004 19:26\"; 
  7. $kartka[1]=&#092;"nazwa\"; 
  8. $kartkal[1]=Array(&#092;"lokalizacja\",\"roz\",\"roz2\"); 
  9. $data=&#092;"24.07.2004 19:26\";
  10. $kartka[2]=&#092;"qwe\"; 
  11. $kartkal[2]=Array(&#092;"qwe\",\"we\",\"er\"); 
  12. $data=&#092;"24.07.2004 19:37\"; 
  13. $kartka[3]=&#092;"tryrty\"; 
  14. $kartkal[3]=Array(&#092;"tyuytu\",\"uyu\",\"yuyuyuyu\"); 
  15. $data=&#092;"24.07.2004 19:37\"; 
  16. $kartka[4]=&#092;"uiouio\"; 
  17. $kartkal[4]=Array(&#092;"uy\",\"yy\",\"hhhh\"); 
  18. $data=&#092;"24.07.2004 19:37\";  ?>

Wartości zmiennych są tylko testowe.

Do moderatorów: TO nie jest gotowy skrypt - robię go ja...

Już jest OK. Problemem było wstawianie sizeof($kartka) w pętli FOR i skryptach JS, zamiast $sfk (zmienna incjonowana jest odrazu po otworzeniu pliku z danymi).
Gdy pod koniec instrukcji FOR usuwana jest tablica zmiennej, odejmowana jest od sizeof($kartka)...

To tak, gdyby ktoś miał podobny problem.