Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Limit głosowania
Forum PHP.pl > Forum > Przedszkole
Omin
Wiatm.
Chciałbym ustawić na swojej stronie limit wysyłania formularza do głosowania lecz nie za bardzo wiem jak to zrobić.
Chodzi mi o to, że osoba głosująca mogłaby zagłosować 5 razy w ciągu dnia.
Próbowałem z zablokowaniem IP dla użytkownika lecz nie za bardzo mi to wychodziło.
Byłbym wdzięczny jeśli mógłby ktoś podpowiedzieć jak to zrobić.
Pozdrawiam
trueblue
Albo głosowanie z logowaniem (choć mogą być zakładane multikonta), albo evercookies.
Omin
Logowanie odpada, poczytam jeszcze o tym evercookies


Nie za bardzo wiem jak się za to zabrać..
to mój kod, który chciałbym żeby się uruchomił jeśli formularz będzie wysłany mniej niż 5 razy w ciągu dnia:

  1. if (isset($_POST['akcja2'])){
  2. $przechwycone2=$_POST['akcja2'];
  3. $sql = "UPDATE `zdjecia` SET `Wynik`=`Wynik`+1 WHERE `image_id`='$przechwycone2'";
  4. mysql_query($sql) or die('BŁĄD:'.mysql_error());
  5.  
  6. }


Formularz:
  1.  
  2. <form method="POST" action="index.php">
  3. <?php echo '<input type="hidden" value=" '.$img2.'; " name="akcja2">' ?>
  4. <button type="button" class=" btn btn-default btn-lg przycisk_wielkosc">
  5. <input class="btn btn-default btn-lg btn-block" type="submit" name="submit" value="Głosuj!" />
  6. </button>
  7. </form>
  8.  
olszam
Może zrób coś w rodzaju by wysyłalo na maila jakiś link potwierdzający, i sprawdzać po mailu czy wszystko sie zgadza. Mało bezpieczna metoda bo zawsze można stworzyć nowego maila ale chyba ludzie mają lepsze żeczy do roboty niż tworzenie multum niepotrzebnych maili, można i dodatkowo zabezpieczyć np. by po ip jeszcze sprawdzał, więc jak sprawdzasz maila i ip, jak nie wykorzystał tego limitu 5 na dzień i głosuje z innego komputera lub korzysta z innego maila to jakiś filtr zastosować ew. jakoś ifem sprawdzić.
trueblue
Cytat(olszam @ 29.07.2016, 14:55:44 ) *
ale chyba ludzie mają lepsze żeczy do roboty niż tworzenie multum niepotrzebnych maili

smile.gif))
Omin
Ogólnie na tej stronie chodzi o to by głosować na jedno z dwóch zdjęć, które się pojawia i chce uniknąć spamu.
Na stronie mam zakładkę ranking gdzie są wynikii poszczególnych zdjęć.
Chcę by użytkownik wszedł na stronę, oddał kilka głosów na losowe zdjęcia, które się mu pojawią i to wszystko, bez żadnego wpisywania maila, logowania się itd.

Dziękuję za wszystkie odpowiedzi wink.gif
Pozdrawiam


Stworzyłem coś takiego:
  1. $data = date('Y-m-d');
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3.  
  4. if (isset($_POST['akcja'])){
  5. mysql_query ("INSERT INTO `ip_adresy`(`ip`, `czas`) VALUES ('$ip','$data')");
  6. $spr = mysql_query ("SELECT `ip`,`czas`,COUNT('ip') AS 'liczbaip' FROM `ip_adresy` WHERE `ip`= '$ip' AND `czas` = CURDATE()");
  7. $spr_sprawdzenie = mysql_fetch_row($spr);
  8. if ($spr_sprawdzenie[2] < 5 && $spr_sprawdzenie[1] = $data) {
  9. $przechwycone=$_POST['akcja'];
  10. $sql = "UPDATE `zdjecia` SET `Wynik`=`Wynik`+1 WHERE `image_id`='$przechwycone'";
  11. mysql_query($sql) or die('BŁĄD:'.mysql_error());
  12. }
  13. else{
  14. echo "Już głosowałeś";
  15. }
  16.  
  17.  
  18. }



  1. <form method="POST" action="index.php">
  2. <?php echo '<input type="hidden" value=" '.$img2.'; " name="akcja2">' ?>
  3. <button type="button" class=" btn btn-default btn-lg przycisk_wielkosc">
  4. <input class="btn btn-default btn-lg btn-block" type="submit" name="submit" value="Głosuj!" />
  5. </button>
  6. </form>




Jak mając ten kod sprawić by
  1. <input class="btn btn-default btn-lg btn-block" type="submit" name="submit" value="Głosuj!" />
miał dopisane disabled wtedy gdy warunki wyżej nie spełniają wymagań?
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.