Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Skrypt galerii
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Turson
Poszukuję skryptu działającego w galerii, który:
- ma możliwość oddania głosu na zdjęcie ( skala 1-5 / 1-10 )
- oblicza średnią z głosów
- pozwala na głosowanie raz na 24h z jednego IP

Pozdrawiam. Mile widziane gotowe skrypty, lub linki do nich.
marian2299
To raczej do działu "Gotowe rozwiązania" ;/.
Turson
Znalazłem coś takiego
  1. <form method="post" action="<?php echo $_SERVER[&#8217;PHP_SELF’]; ?>">
  2. <select name="glosowanie">
  3. <option value="1">1</option>
  4. <option value="2">2</option>
  5. <option value="3">3</option>
  6. <option value="4">4</option>
  7. <option value="5">5</option>
  8. </select>
  9. <input type="submit" value="glosuj" name="submit" />
  10. </form>
  11.  
  12. <?php
  13. $glosowanie = isset($_POST[&#8216;glosowanie’]) ? $_POST[‘glosowanie’] : 0;
  14. $nazwa_pliku = "plik_glosowanie";
  15. $czy_glosowano = false;
  16. $suma_punktow = 0;
  17. $suma_glosowan = 0;
  18.  
  19. $ip = getenv(&#8216;REMOTE_ADDR’);
  20.  
  21. // Odczyt pliku tekstowego
  22. $stare_glosowania = file($nazwa_pliku.&#8216;.txt’);
  23.  
  24. // Suma glosow i glosowan
  25. foreach ($stare_glosowania as $value) {
  26. $jedno_glosowanie = explode(&#8216;:’,$value);
  27.  
  28. // Sprawdzenie czy numer IP jest taki sam jak IP aktualnego glosowania
  29. if ($ip == $jedno_glosowanie[0]) $czy_glosowano = true;
  30. $suma_glosowan++;
  31. $suma_punktow += $jedno_glosowanie[1];
  32. }
  33.  
  34. // Jezeli glosowanie jest udane zapisz dane do pliku txt
  35. if ((!$czy_glosowano) && ($glosowanie > 0)){
  36. $f = fopen($nazwa_pliku.".txt","a+");
  37. fwrite($f,$ip.&#8216;:’.$glosowanie."\n");
  38. fclose($f);
  39. $suma_glosowan++;
  40. $suma_punktow+=$glosowanie;
  41. }
  42.  
  43. echo "Aktualna srednia po $suma_glosowan glosowaniu to: "
  44. .substr(($suma_punktow/$suma_glosowan),0,3)."
  45. ";
  46. ?>

Ale tu jest coś źle bo ciagle mi blędy wywala. Prosze o pomoc mellow.gif
piotrooo89
to popraw to tajemnicze coś. i będzie ok. błąd? co sie dzieje?
Turson
http://turson.pl/php/galeria.php
Tutaj mozna sprawdzic, jakie bledy wywala. Prosze o pomoc, aby skrypt dzialal.
muniekw
A masz stworzony ten plik "galeria.txt"?? Bo w skrypcie masz w 15 linijce coś takiego
Kod
$nazwa_pliku = "plik_glosowanie";
Turson
Mam stworzony.
Galeria.php (gdzie jest cały kod) i galeria.txt (puste). Prosze o pomoc.
piotrooo89
tu wpisz: $nazwa_pliku = "plik_glosowanie"; -> $nazwa_pliku = "galeria";

nadaj odpowiednie chmody, do pliku. aha i czy masz poprawną ścieżkę do tego pliku?
Turson
Nadałem CHMODY, nadal nie działa, mam tak:
  1. <form method="post" action="<?php echo $_SERVER[&#8217;PHP_SELF’]; ?>">
  2. <select name="glosowanie">
  3. <option value="1">1</option>
  4. <option value="2">2</option>
  5. <option value="3">3</option>
  6. <option value="4">4</option>
  7. <option value="5">5</option>
  8. </select>
  9. <input type="submit" value="glosuj" name="submit" />
  10. </form>
  11.  
  12. <?php
  13. $glosowanie = isset($_POST[&#8216;glosowanie’]) ? $_POST[‘glosowanie’] : 0;
  14. $nazwa_pliku = "php/galeria";
  15. $czy_glosowano = false;
  16. $suma_punktow = 0;
  17. $suma_glosowan = 0;
  18.  
  19. $ip = getenv(&#8216;REMOTE_ADDR’);
  20.  
  21. // Odczyt pliku tekstowego
  22. $stare_glosowania = file($nazwa_pliku.&#8216;.txt’);
  23.  
  24. // Suma glosow i glosowan
  25. foreach ($stare_glosowania as $value) {
  26. $jedno_glosowanie = explode($value);
  27.  
  28. // Sprawdzenie czy numer IP jest taki sam jak IP aktualnego glosowania
  29. if ($ip == $jedno_glosowanie[0]) $czy_glosowano = true;
  30. $suma_glosowan++;
  31. $suma_punktow += $jedno_glosowanie[1];
  32. }
  33.  
  34. // Jezeli glosowanie jest udane zapisz dane do pliku txt
  35. if ((!$czy_glosowano) && ($glosowanie > 0)){
  36. $f = fopen($galeria.txt,"a+");
  37. fwrite($f,$ip.$glosowanie."\n");
  38. fclose($f);
  39. $suma_glosowan++;
  40. $suma_punktow+=$glosowanie;
  41. }
  42.  
  43. echo "Aktualna srednia po $suma_glosowan glosowaniu to: "
  44. .substr(($suma_punktow/$suma_glosowan),0,3)."
  45. ";
  46. ?>

Wyskakujące błędy:
Kod
Warning: file(php/galeria�txt�) [function.file]: failed to open stream: No such file or directory in /home/Turson/domains/turson.pl/public_html/php/galeria.php on line 28

Warning: Invalid argument supplied for foreach() in /home/Turson/domains/turson.pl/public_html/php/galeria.php on line 31

Warning: Division by zero in /home/Turson/domains/turson.pl/public_html/php/galeria.php on line 50
zegarek84
Cytat
// Odczyt pliku tekstowego
$stare_glosowania = file($nazwa_pliku.‘.txt’);

a to pogróbione to co blink.gif
no i niżej:
Cytat
// Jezeli glosowanie jest udane zapisz dane do pliku txt
if ((!$czy_glosowano) && ($glosowanie > 0)){
$f = fopen($galeria.txt,"a+");

nie podałeś całego kodu - za pewne masz gdzieś zdefiniowaną zmienną $galeria, ale czy zdefiniowałeś gdzieś stałą txt?? - gdyż jeśli nie to powinno być:
$galeria.'.txt' - ps - całego kodu to dokładnie nie chce mi się przeglądać gdyż nie cały tutaj zamieściłeś - numery lini od komunikatów błedu znacznie się różnią ;p

ps.
normalna kropka między zmiennymi łączy jako ciąg tekstowy zmienne ale nie wstawia się wtedy kropka w tym ciągu...
Turson
Podałem cały kod. Możesz go poprawić? Proszę.

Odświeżam temat.

refresz

refresZ

odświeżam

refresz

ref
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-2024 Invision Power Services, Inc.