Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Automatyczne odświeżenie strony
Forum PHP.pl > Forum > Przedszkole
Pranks
Witam!
Moja strona zaczyna się od takiego skryptu:
  1. <?php
  2. $uchwyt=mysql_connect('mysql5-2.perso','*******','*********')
  3. or die('Nieudane połączenie z bazą danych?');
  4. mysql_select_db('********')
  5. or die('Nie udało się wybrać bazy danych?');
  6. $link=mysql_query("SELECT * FROM nagrania ORDER BY id desc");
  7. $akcja=$_GET['akcja'];
  8. $id=$_GET['id'];
  9. if (isset($_COOKIE[$id]))
  10. {
  11.  
  12. }
  13. else
  14. {
  15. if ($akcja=='plus')
  16. {
  17. setCookie($id,$id);
  18. $wynik=mysql_query("UPDATE nagrania SET ocena=ocena+1 WHERE id='$id'");
  19. }
  20. if ($akcja=='minus')
  21. {
  22. setCookie($id,$id);
  23. $wynik=mysql_query("UPDATE nagrania SET ocena=ocena-1 WHERE id='$id'");
  24. }
  25. }
  26. ?>

Oczywiście ten skrypt musiałem dodać jeszcze przed tagami META, ponieważ cookies się krzaczy winksmiley.jpg Jest to skrypt na ocenienie każdego nagrania, tak jak na bash.org.pl, tylko ja nie używam ajaxa, bo się nie znam. No i problem wygląda następująco:
W BODY mam 2 linki do każdego nagrania, jeden +, a drugi -. Żeby osoba 2 razy nie mogła zagłosować to dodałem cookies po oddaniu głosu. Cały problem leży w tym, że po oddaniu głosu strona oczywiście się odświeża, bo musi wejść w link "nagrania.php?id=**&akcja=plus/minus" i po wejściu na stronę linki do głosowania są aktywne. Dopiero po ponownym odświeżeniu strony linki nie są już aktywne. Jedyne rozwiązanie jakie znalazłem, to aby strona automatycznie się odświeżyła, albo żeby przeszło na stronę "nagrania.php". Więc jak i gdzie umieścić umieścić jakiś skrypt?

Z góry dzięki za pomoc!
Blame
Siema!
Po pierwsze to masz trochę złą konstrukcję(puste if) nie lepiej dodać "!" przed isset? Po drugie jest coś takiego jak elseif(dwa razy używasz if) Po trzecie nie filtrujesz danych pobieranych z GET'a i wpadających do bazy. Popracuj nad tym. Podam ci jeszcze kod z moimi podpowiedziami:
  1. <?php
  2. $uchwyt=mysql_connect('mysql5-2.perso','*******','*********')
  3. or die('Nieudane połączenie z bazą danych?');
  4. mysql_select_db('********')
  5. or die('Nie udało się wybrać bazy danych?');
  6. $link=mysql_query("SELECT * FROM nagrania ORDER BY id desc");
  7. $akcja=$_GET['akcja'];
  8. $id=$_GET['id'];
  9. if (!isset($_COOKIE[$id]))
  10. {
  11. if ($akcja=='plus')
  12. {
  13. setCookie($id,$id);
  14. $wynik=mysql_query("UPDATE nagrania SET ocena=ocena+1 WHERE id='$id'");
  15. }
  16. elseif ($akcja=='minus')
  17. {
  18. setCookie($id,$id);
  19. $wynik=mysql_query("UPDATE nagrania SET ocena=ocena-1 WHERE id='$id'");
  20. }
  21. }
  22. ?>


Co do przekierowania poczytaj sobie o funkcji header.
Pranks
Dzięki, problem rozwiązany!
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.