Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Prosta galeria zdjęć i problem z wyszukiwaniem w tablicy
Forum PHP.pl > Forum > Przedszkole
wachcio
Witam

Piszę a raczej dostosowuję do swoich potrzeb skrypt galerii znaleziony gdzieś w necie i mam pewien problem. Galeria składa się z 3 plików.

index.php
  1. <?
  2. $folder = "./";
  3. $wszystkich="300";
  4.  
  5. $l=0;
  6. foreach (glob($folder."*.jpg") as $fotki) $album[$l++]=$fotki; //szuka plikow w katalogu $folder i zapisuje nazwy do tablicy
  7.  
  8. $na_stronie=$wszystkich; $razem=count($album); /* ile zdjec ma sie pokazac na stronie */
  9.  
  10. $stron=floor($razem/$na_stronie); $stron+=$razem % $na_stronie ? 1:0; /* dzielenie dzięki któremu znamy liczbę stron */
  11.  
  12.  
  13. $strona=$_GET['strona']; if (!isset($strona)) $strona=1;
  14.  
  15.  
  16. $start=($strona-1) * $na_stronie;
  17. $stop=($strona==$stron) ? $razem % $na_stronie: $na_stronie; $stop+=$start;
  18.  
  19. /* Petelka wyswietlajaca zdjecia */
  20. for ($x=$start;$x<$stop;$x++){
  21. $_SESSION['album[$x]'] = $album[$x];
  22.  
  23. echo "<a href=\"duzy.php?fotka_duza=".$album[$x]."\" target=\"_blank\"><img src=\"miniaturka.php?fotka="."{$album[$x]}\"></a> "; /* jako obrazek otwieramy skrypt miniaturka.php z przekazanym parametrem linku do fotki */
  24. }
  25.  
  26. if ($stron>1){ /* jeśli jest więcej niż jedna strona to wyświetla liste */
  27. echo "<br>";
  28. echo "strony: "; for($x=1;$x<=$stron;$x++) {
  29.  
  30. /* Bieżącą strone pogrubimy a pozostale beda linkami z odpowiednim adresem */
  31. if ($strona==$x){echo "<b> $x </b>";} else {echo "<a href=\"index.php?strona=$x\"> $x </a>";}
  32. }
  33. }
  34.  
  35.  
  36. ?>


miniaturka.php

  1. <?
  2. header('Content-type: image/jpeg');
  3.  
  4. /* mozna tu zmienic wielkosc miniaturki*/
  5. define ('SZEROKOSC',150);
  6. define ('WYSOKOSC',150);
  7.  
  8. /* otwieramy zdjecie z podanego w adresie linku */
  9. $orginal=imagecreatefromjpeg($_GET['fotka']);
  10.  
  11. /*
  12. Pobieramy wymiary zdjęcia
  13. */
  14. list($org_szer,$org_wys)=getimagesize($_GET['fotka']);
  15.  
  16. /* Tworzymy nowy obraz o ustalonych wczesniej wymiarach miniaturki */
  17. $minitaturka=imagecreatetruecolor(SZEROKOSC,WYSOKOSC);
  18.  
  19. /* kopiujemy zawartosc zdjecia na miniaturke */
  20.  
  21. imagecopyresampled($minitaturka,$orginal, 0, 0, 0, 0 ,SZEROKOSC,WYSOKOSC,$org_szer,$org_wys);
  22.  
  23. /*
  24. Pokazujemy zdjęcie w przeglądarce. Liczba 80 oznacza jakość zdjęcia
  25. */
  26. imagejpeg($minitaturka,NULL,80);
  27. ?>


oraz duzy.php z którym mam problem

  1. <?
  2. echo"<img src=\"".$_GET['fotka_duza']."\" height=\"75%\" />";
  3. echo "<br>";
  4.  
  5. //sprawdzenie czy tablica zawiera poprawne dane
  6. echo $_SESSION['album[0]']; echo"<br />";
  7. echo $_SESSION['album[1]']; echo"<br />";
  8. echo $_SESSION['album[2]']; echo"<br />";
  9.  
  10. $key = array_search($_GET['fotka_duza'], $_SESSION['album']);
  11. echo 'Aktualny obrazek '.$_GET['fotka_duza'].' ma w tablicy indeks: '.$key;
  12.  
  13. ?>


Poptrzebuję znaleźć indeks aktualnie wyświetlanego obrazka aby móc pod nim zrobić odnośniki do poprzedniego oraz następnego. Niestety zmienna $key jest pusta choć tablica już nie.

Poza tym czemu nie mogę wyświetlić całej tablicy choćby dla sprawdzenia funkcją?
  1. print_r($_SESSION['album']);
xbigos
Nie możesz wyświetlić $_SESSION['album'] bo jest Ona pusta spróbuj print_r($_SESSION['album[0]']). a nie lepiej by było gdyby skrypt Tworzył $_SESSION['album'][0]questionmark.gifquestionmark.gif
wachcio
Dziś ponownie usiadłem do pisania kodu i o dziwo bez zmiany czegokolwiek kod zaczął działać poprawnie smile.gif Prawdopodobnie przez ponowne uruchomienie przeglądarki i nową sesję. Czas rozbudowywać kod o dalsze funkcje oraz wygląd galerii

EDIT:
No i pojawił się problem. Zrobiłem podstawowy skrypt który działał jak należy więc zadowolony przekopiowałem go drugiego katalogu na tym samym serwerze gdzie również mam zdjęcia. A tutaj nagle wyskakuje "Warning: array_search() [function.array-search]: Wrong datatype for second argument in /wachcio/galeria_cf/6D/duzy.php on line 7". Wracam do starego katalogu a tam również ten sam problem. W czym tkwi problem? Skrypt teraz wygląda tak:
  1. <?
  2. //session_start();
  3. echo"<img src=\"".$_GET['fotka_duza']."\" height=\"75%\" />";
  4. echo "<br>";
  5. $album_kopia = $_SESSION['album'];
  6.  
  7. $key = array_search($_GET['fotka_duza'], $album_kopia);
  8. echo '<br />';
  9.  
  10. if ($key>0 && $key<count($album_kopia)-1) {
  11. echo '<a href=duzy.php?fotka_duza='.$album_kopia[$key-1].' name=\"Poprzedni\">Poprzedni</a>';
  12. echo ' ';
  13. echo '<a href=duzy.php?fotka_duza='.$album_kopia[$key+1].' name=\"Nastepny\">Następny</a>';
  14. }
  15.  
  16. if ($key==0) {
  17.  
  18. echo '<a href=duzy.php?fotka_duza='.$album_kopia[$key+1].' name=\"Nastepny\">Następny</a>';
  19. }
  20.  
  21. if ($key==count($album_kopia)-1) {
  22.  
  23. echo '<a href=duzy.php?fotka_duza='.$album_kopia[$key-1].' name=\"Poprzedni\">Poprzedni</a>';
  24. }
  25.  
  26. ?>
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.