Stworzyłem sobie stronkę gdzie potrzebny jest dostęp. Problem w tym, że mi się loguje tylko na raz (aż nie przejdę na inną strone lub ją odświeżę):

  1. <?php
  2.  
  3. $title='Instrukcje';
  4. include ('dodatki/bonus.php');
  5. include ('meta.php');
  6. include ('gora_logo.php');
  7. lewe_menu ();
  8. open_title();
  9. polacz_baza();
  10. if(!isset($_SESSION["instrukcje"]))
  11. {
  12. $_SESSION["instrukcje"]=0;
  13. }
  14.  
  15. function logowanie () {
  16. echo 'W celu dostępu do działu plików należy się zalogować.<form action="instrukcje.php" method="post">
  17. Login: <input type="text" name="login" /><br />
  18. Hasło: <input type="password" name="haslo" /><br />
  19. <input type="submit" name="submit" value="wyślij" />
  20. </form>';
  21. }
  22. if($_SESSION["instrukcje"]!=1)
  23. {
  24. if(!empty($_POST["login"]) || !empty($_POST["haslo"]))
  25. {
  26. $pytanie=mysql_query("select * from users where login = '".htmlspecialchars($_POST["login"])."'
  27. AND haslo = '".htmlspecialchars($_POST["haslo"])."'") or die (mysql_error());
  28. $licz_pyt=mysql_num_rows($pytanie);
  29. if($licz_pyt>0)
  30. {
  31. $_SESSION["instrukcje"]=1;
  32.  
  33. }
  34. else
  35. {
  36. logowanie();
  37. echo 'Podano złe dane!!!';
  38. }
  39. }
  40. else
  41. {
  42. logowanie();
  43. }
  44.  
  45. }
  46. if($_SESSION["instrukcje"]==1)
  47. {
  48.  
  49. $strona = $_GET['strona'];
  50. if($strona == FALSE)
  51. {
  52. $strona = 0;
  53. }
  54.  
  55.  
  56. $ile_na_stronie = 5;
  57. $query = mysql_query("SELECT * FROM instrukcje"); //zamienić * na id
  58. $wszystkie = mysql_num_rows($query);
  59. $strony = ceil($wszystkie/$ile_na_stronie);
  60.  
  61. if (isset($_GET['strona']) && !is_numeric($_GET['strona']))
  62. {
  63. echo 'Strona nie istnieje';
  64. }
  65. else
  66. {
  67. $instrukcje = mysql_query("SELECT * FROM instrukcje ORDER by tytul ASC LIMIT ".$strona.", ".$ile_na_stronie.";");
  68. //zmienna $rekord jest przypisana wierszowi (rekordowi) zmiennej $news a następnie pobieranie danych z konkretnych kolumn (komórka po komórce)
  69. if (mysql_num_rows($instrukcje)>0)
  70. {
  71.  
  72. WHILE ($rekord = mysql_fetch_assoc ($instrukcje))
  73. {
  74. $tytul = $rekord['tytul'];
  75. $opis = $rekord['opis'];
  76. $wykladowca = $rekord['wykladowca'];
  77. $plik = $rekord['plik'];
  78. $rozmiar = $rekord['rozmiar'];
  79. //funkcja nl2br odpowiada za odpowiednie wyświetlanie po przez użycie np. znaków następnej linii
  80. echo '<table align="center" border="1" width="90%" style="border: 2pt dotted #4169E1;"><tr><td class="text"><font color="#FF0000"-><h2>_||_&nbsp;'.$tytul.'&nbsp;_||_</h2></font>
  81. Informacje: '.($opis).'
  82. <a href="./upload/'.($plik).'"><img src="./grafika/pobierz.gif" align="right" border="0"></a><br />
  83. Wykładowca: '.($wykladowca).'<br />
  84. Rozmiar: '.($rozmiar).' kB<br />
  85. </td></tr></table><br />';
  86. echo("<p align=\"center\"><br />| ");
  87. for($i = 0; $i < $strony; $i++)
  88. {
  89. $int = $i+1;
  90. echo "<a href=instrukcje.php?strona=".$i*$ile_na_stronie.">".$int."</a> | ";
  91. }
  92. }
  93. }
  94. else
  95. {
  96. echo 'Chwilowo nie ma dostępnych plików';
  97. }
  98.  
  99. }
  100. echo '<br /></p>';
  101.  
  102.  
  103. }
  104.  
  105.  
  106. close_title();
  107. include ('./stopka.php');
  108.  
  109. ?>


Z kolei gdy zamienię ten urywek kodu np. na echo 'aaaa'; to już nie ma problemu. Można przejśc na inną stronę lub odświeżyć i problem znika:

  1. $strona = $_GET['strona'];
  2. if($strona == FALSE)
  3. {
  4. $strona = 0;
  5. }
  6.  
  7.  
  8. $ile_na_stronie = 5;
  9. $query = mysql_query("SELECT * FROM instrukcje"); //zamienić * na id
  10. $wszystkie = mysql_num_rows($query);
  11. $strony = ceil($wszystkie/$ile_na_stronie);
  12.  
  13. if (isset($_GET['strona']) && !is_numeric($_GET['strona']))
  14. {
  15. echo 'Strona nie istnieje';
  16. }
  17. else
  18. {
  19. $instrukcje = mysql_query("SELECT * FROM instrukcje ORDER by tytul ASC LIMIT ".$strona.", ".$ile_na_stronie.";");
  20. //zmienna $rekord jest przypisana wierszowi (rekordowi) zmiennej $news a następnie pobieranie danych z konkretnych kolumn (komórka po komórce)
  21. if (mysql_num_rows($instrukcje)>0)
  22. {
  23.  
  24. WHILE ($rekord = mysql_fetch_assoc ($instrukcje))
  25. {
  26. $tytul = $rekord['tytul'];
  27. $opis = $rekord['opis'];
  28. $wykladowca = $rekord['wykladowca'];
  29. $plik = $rekord['plik'];
  30. $rozmiar = $rekord['rozmiar'];
  31. //funkcja nl2br odpowiada za odpowiednie wyświetlanie po przez użycie np. znaków następnej linii
  32. echo '<table align="center" border="1" width="90%" style="border: 2pt dotted #4169E1;"><tr><td class="text"><font color="#FF0000"-><h2>_||_&nbsp;'.$tytul.'&nbsp;_||_</h2></font>
  33. Informacje: '.($opis).'
  34. <a href="./upload/'.($plik).'"><img src="./grafika/pobierz.gif" align="right" border="0"></a><br />
  35. Wykładowca: '.($wykladowca).'<br />
  36. Rozmiar: '.($rozmiar).' kB<br />
  37. </td></tr></table><br />';
  38. echo("<p align=\"center\"><br />| ");
  39. for($i = 0; $i < $strony; $i++)
  40. {
  41. $int = $i+1;
  42. echo "<a href=instrukcje.php?strona=".$i*$ile_na_stronie.">".$int."</a> | ";
  43. }
  44. }
  45. }
  46. else
  47. {
  48. echo 'Chwilowo nie ma dostępnych plików';
  49. }
  50.  


Mi się wydaje, że po prostu w tym kawałku gubi
Kod
$_SESSION["instrukcje"]=1;
, ale nie wiem dlaczego