Witam
Niedawno zaczełem serializować dane przed zapisem do pliku i z wiązku z tym napisałem sobie prostą księgę gości. Ale mam problem. Wszystki chodziło mi ok newsy sie wyświetlały i stronicowały poprostu chodziło tak jak ma chodzić, ale jak poprawiłem kilka rzeczy naraz to przestało chodzić. Mienowicie jak są newsy stroniowane np co 5 newsów na strone to te 5 newsów są takie same (klonują się) i nie wyświetlają się wszystkie. Kombinowałem już tydzień z tym ale nie moge sobie dać rady sad.gif Jak by ktoś mógł przejżeć ten kod. Oto on:

index.php (odpowiedzialny za wyświetlanie i dodawanie:
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  5.  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  7. <link rel="stylesheet" type="text/css" href="style.css" />
  8. <body xml:lang="pl">
  9. <?php
  10. require_once 'functions.php';
  11. require_once 'config.php';
  12.  
  13. $ksiega = show($wpisy_db);
  14. $wynik = array_reverse($ksiega);
  15.  
  16. for($i=0; $i < count($wynik); $i++) {
  17. $temp = 
  18. <div id="wpis_main"> 
  19. <div id="wpis_title">_AUTOR_</div> 
  20. <div id="wpis_text">_WPIS_</div> 
  21. <div id="wpis_title">_CZAS_ <a href="mailto:_MAIL_">[e-mail]</a> <a href="gg:_GG_">[gg]</a></div> 
  22. </div><div id="wpis_puste"></div>';
  23. }
  24.  
  25. stronicowanie($wynik, $temp, 4);
  26.  
  27. debug($ksiega);
  28.  
  29. form();
  30.  
  31. if($_GET['action'] == 'add') {
  32. $ksiega[] = array( 'czas' => $datazform, 'autor' => $nickzform, 'wpis' => $wpiszform, 'gg' => $ggzform, 'mail' => $mailzform, 'ip' => $ipzform);
  33. $wpis = serialize($ksiega);
  34. zapis($wpisy_db, $wpis);
  35. }
  36. ?>
  37. </body>
  38. </html>
  39. <?php ob_end_flush(); ?>


PLik functions.php (plik ze wszystkimi funkcjami:

  1. <?php
  2.  
  3. /////////////////////////////////
  4. /////formularz dodawania wpisów
  5. /////////////////////////////////
  6. function form() {
  7. global $PHP_SELF, $ipzform, $datazform;
  8.  
  9. <div id="wpis_main">
  10. <form action="'.$PHP_SELF.'?action=add" method="post">
  11. <table width="350">
  12. <tr>
  13. <td width="60">nick</td>
  14. <td width="245"><input type="text" name="nickzform" /></td>
  15. </tr>
  16. <tr>
  17. <td width="60">gg</td>
  18. <td width="245"><input type="text" name="ggzform" /></td>
  19. </tr>
  20. <tr>
  21. <td width="60">e-mail</td>
  22. <td width="245"><input type="text" name="mailzform" /></td>
  23. </tr>
  24. <tr>
  25. <td width="60">wpis</td>
  26. <td width="245"><textarea cols="40" rows="3" name="wpiszform"></textaera></td>
  27. </tr>
  28. </table>
  29. <input type="submit" value="Dodaj wpis" />
  30. </form></div><p></p>';
  31. $nickzform = trim(htmlspecialchars($_POST['nickzform']));
  32. $ggzform = trim(htmlspecialchars($_POST['ggzform']));
  33. $mailzform = trim(htmlspecialchars($_POST['mailzform']));
  34. $wpiszform = trim(htmlspecialchars($_POST['wpiszform']));
  35. $ipzform = $_SERVER['REMOTE_ADDR'];
  36. $datazform = date('d.m.Y, G:i:s');
  37. }
  38.  
  39. /////////////////////////////////
  40. /////wyswietlanie wpisów
  41. /////////////////////////////////
  42. function show($plik) {
  43.  
  44. if(file_exists($plik)) {
  45.  
  46. $fp = fopen($plik, 'r'); 
  47. flock($fp, LOCK_SH);
  48. $surowe = fread($fp, filesize($plik)); 
  49. flock($fp, LOCK_UN);
  50. fclose($fp);
  51.  
  52. $ksiega = unserialize($surowe);
  53. return $ksiega;
  54. }
  55. else{
  56. echo 'Nie znaleziono pliku '.$plik; }
  57. }
  58.  
  59. /////////////////////////////////
  60. /////dodawanie wpisów
  61. /////////////////////////////////
  62. function zapis($plik, $wpis) {
  63.  
  64. if(file_exists($plik)) {
  65.  
  66. $write = fopen($plik, 'w');
  67. flock($write, LOCK_EX);
  68. fwrite($write, $wpis);
  69. flock($write, LOCK_UN);
  70. fclose($write);
  71.  
  72. echo '
  73. <div id="wpis_main">
  74. <div id="wpis_title">Dodano twój komentarz kliknij:<br /><a href="index.php?page=1">Zobacz wpis</a><br />Aby zobaczeć twój wpis</div></div>';
  75. }
  76. else{
  77. echo 'Nie znaleziono pliku '.$plik; }
  78. }
  79.  
  80. /////////////////////////////////
  81. /////stronicowanie wpisów
  82. /////////////////////////////////
  83. function stronicowanie($tablica, $dane, $per_page) {
  84. global $wynik;
  85.  
  86. $max = count($tablica);
  87. $page = $_GET[page]; 
  88. $first = $per_page * ($page - 1); 
  89. $last = $first + $per_page;
  90. $ile = round(($max/$per_page)+0.49); 
  91.  
  92. if($page < 0 || $page > $ile) {
  93. header('Location: index.php?page=1');
  94. }
  95. else {
  96. for ($i = $first; $i < $last && $i< $max; $i++) {
  97. $dane = str_replace('_AUTOR_', $wynik[$i]['autor'], $dane);
  98. $dane = str_replace('_WPIS_', $wynik[$i]['wpis'], $dane);
  99. $dane = str_replace('_CZAS_', $wynik[$i]['czas'], $dane);
  100. $dane = str_replace('_MAIL_', $wynik[$i]['mail'], $dane);
  101. $dane = str_replace('_GG_', $wynik[$i]['gg'], $dane);
  102. echo $dane;
  103. }
  104.  
  105. if($ile <= 1){
  106. }
  107. else {
  108. echo '<div id="mainnews"><div id="news"><center>';
  109. for ($i = 1; $i <= $ile; $i++){
  110.  if($i != $page) { 
  111.  echo '<b><a href="index.php?page='.$i.'">'.$i.' </a> </b>'; 
  112.  }
  113.  else { 
  114.  echo '<font color="red"><b>'.$i.' </b></font>'; 
  115.  }
  116. }
  117. echo '</center></div></div>';
  118. }
  119. }
  120. }
  121.  
  122. /////////////////////////////////
  123. /////debug wpisów
  124. /////////////////////////////////
  125. function debug($tablica) {
  126. if(isset($_GET['debug'])) {
  127. echo '<pre>'. print_r($tablica, 1).'</pre>';
  128. }
  129. }
  130. ?>


No i skromny konfig:

  1. <?php
  2. $PHP_SELF = 'index.php';
  3. $wpisy_db = 'date/wpisy.txt';
  4. ?>



Z góry WIELKIE THX