Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Możliwość dodawania punktów tylko raz na 24 godziny

PHP  Założony przez  astranaar.

Witam ;)

Chciałbym aby punkt na dany serwer było można dać raz na 24 godziny.
Oto kod, który narazie udało mi się zlepić:


<?php
include("header.php");
include(
"nav.php");
?>

<article>
 <div class="page-header">
 <h1>Dodawanie Punktu</h1>
 </div>

<?php

if (user::isLogged()) {

 
$user user::getData('''');

 
$wynik mysql_query("SELECT * FROM master_servers")
 or die(
'Błąd zapytania');

 
$id trim($_GET['id']);

 if(!empty(
$id)) {

 
$wynik mysql_query("SELECT * FROM master_servers WHERE id='$id'")
 or die(
'Błąd zapytania');

 if(
mysql_num_rows($wynik) > 0) {

 
$r mysql_fetch_assoc($wynik);
 
$id $r[id];
 
$new $r[points] + 1;
 
 
mysql_query("UPDATE master_servers SET points='$new' WHERE id='$id'")
 or die(
'Błąd zapytania');
 
 echo 
'<div class="alert alert-success" role="alert">Dodałeś punkt serwerowi '.$r[name].'! Zostaniesz przeniesiony do poprzedniej strony.</div>';
 
header("refresh:2;url=index.php");

 }
 }
}

else {
 echo 
'<div style="text-align:center;"><h2>Nie jesteś zalogowany!</h2><br /><h4><a href="login.php"><button type="button" class="btn btn-default">Zaloguj się</button></a> lub <a href="register.php"><button type="button" class="btn btn-default">Zarejestruj</button></a></h4><br /><h4>aby uzyskać dostęp do tej strony!</h4></div>';
}

?>

</article>

<?php
include("footer.php");
?>

Jakieś propozycje? :)
Kodu nie podam ale. Jeżeli masz tabelę z serwerami to możesz dodać do niej kolumnę np. last_vote zapisywać czas ostatniego głosowania. Przy dodawaniu nowego głosu sprawdzasz czy ten czas jest większy niż 24 godziny.

Co do samego kodu który już masz. Sądzę że zwykłe trim() nie jest wystarczającym zabezpieczeniem przed sql injection. Dodatkowo dobrą opcją byłoby użycie mysqli zamiast mysql i metody bind.
Ale jeśli dodam ja jeden punkt serwerowi i przyjdzie następny użytkownik i będzie chciał dodać punkt to dostanie komunikat, że może dopiero za 24 godziny (chyba, że nadal źle rozumiem)
(24.12.2016, 11:27)astranaar napisał(a): Ale jeśli dodam ja jeden punkt serwerowi i przyjdzie następny użytkownik i będzie chciał dodać punkt to dostanie komunikat, że może dopiero za 24 godziny
(24.12.2016, 10:49)astranaar napisał(a): Chciałbym aby punkt na dany serwer było można dać raz na 24 godziny.
Trzeba zadawać poprawnie pytania.

Działanie takie same tylko dodajesz kolumnę do tabeli z użytkownikami.



Użytkownicy przeglądający ten wątek:

2 gości