Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z stronicowaniem
Forum PHP.pl > Forum > Przedszkole
-anonim-
Mam problem, mam taki kod na stronicowanie:
  1.  
  2. $count=3; //wyników na strone
  3. $offset=0; //obecnie wyświetlana strona
  4.  
  5. if(isset($_GET['count'])) //jeśli wybrano za pomocą GET ilość wyników
  6. {
  7. $count = $_GET['count'];
  8. }
  9. if(isset($_GET['offset'])) //jeśli wybrano kolejne strony z wynikami
  10. {
  11. $offset = $count*$_GET['offset'];
  12. }
  13.  
  14. // zapytanie zwracające ilosc rekordów z tabeli
  15. $sql = 'SELECT COUNT(*) FROM `tabela`';
  16. $result = mysql_query($sql);
  17. $r = mysql_fetch_array($result);
  18. //podział wyników na strony
  19. $pages = ceil($r[0]/$count);
  20. //wybranie wyników dla bieżących parametrów offset
  21. $select = 'SELECT * FROM `tabela` ORDER BY `id` desc LIMIT '.$count.' offset '.$offset.';';
  22.  
  23.  
  24. $q=mysql_query($select)or die(mysql_error());
  25. while($row=mysql_fetch_array($q))
  26. {
  27. //wyświetlanie rekordów z tabeli za pomocą zmiennej $row
  28. }
  29.  
  30.  
  31. echo "<b>kolejne strony</b>";
  32.  
  33. for($i=0;$i<$pages;$i++) //wyswietlanie numerów stron
  34. {
  35. if($i*$count==$offset)
  36. {
  37. echo ' '.$i.' ';
  38. }else{
  39. echo '<a href="index1.php?count='.$count.'&amp;offset='.$i.'"> '.$i.' </a>'; //tworzenie odnośnika z odpowiednimi parametrami offset i count
  40. }
  41. }


Ale chcialbym zrobic zeby "kolejne strony" wyswietlaly sie od 1, a nie od 0, w adresie 0 mi nie przeszkzadza ale w tej liscie stron dziwnie wyglada strona 0, a wiec co musze zmienic?
YaQzi
  1. echo '<a href="index1.php?count='.$count.'&offset='.$i.'"> '.($i + 1).' </a>'; //tworzenie odnośnika z odpowiednimi parametrami offset i count


ale napisz to inaczej bo sql inject boli w tym wypadku. Zobacz co będzie jak ktoś Ci w linku zamiast counta liczbowego wstawi coś ala: '0 offset 0 UNION SELECT login, password FROM user' smile.gif Praktycznie udostępniasz w ten sposób swoją bazę danych na świat.

Gość
a jak mozna to w prosty sposob zabezpieczyc?
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.