Pagina 1 din 1
Voteaza odata in ziua curenta
Scris: Mar Dec 31, 2013
de cadou
Sincer nu stiu cum sa pun conditia ca cineva sa poata vota dupa ora 24 la 24 de ore de la ultimul vot.
Deci de exemplu daca cineva voteaza pe data de 30 decembrie ora 23:50 - sa mai poata vota si pe 31 decembrie ora 00:05 , iar urmatoru vot pe 1 ianuarie ora 00:01
Deci cumva trebuie sa compar data din baza de date cu data reala.
Timpul e in format: 1388476699
Cod: Selectaţi tot
setlocale(LC_TIME, array('ro.utf-8', 'ro_RO.UTF-8', 'ro_RO.utf-8', 'ro', 'ro_RO', 'ro_RO.ISO8859-2'));
date_default_timezone_set('Europe/Bucharest');
$timp = time();
$row['votdateadd'] > $timp
Iar in baza de date timpul este adaugat mai mare cu 24 de ore( in secunde ... )
Ajutor.
Voteaza odata in ziua curenta
Scris: Mar Dec 31, 2013
de MarPlo
Salut
Practic, votul sa se poata acorda o singura data in ziua curenta, indiferent la ce ora a votat in ziua precedenta.
Pentru asta, se compara ca votul dat plus 24 ore sa nu depaseasca timpul Timestamp cand se termina ziua.
Cod: Selectaţi tot
$end_day = strtotime('tomorrow', time()) - 1;
if(($row['votdateadd'] + 86400) < $end_day) {
echo 'vot';
}
- Daca in baza de date timpul este deja adaugat cu 24 de ore in plus ( in secunde), scoate " + 86400" din acest cod.
Re: Voteaza odata in ziua curenta
Scris: Sâm Ian 04, 2014
de cadou
Am testat codu e ok.
Inca ceva
Vreau ca si ip-ul sa fie o conditie, am tot modificat dar tot nu am dat de cap.
Adica 1 vot/ip/cont/dupa ora 00.00.
Adica daca eu de pe contu xxx dau vot la profilu yyy cu ip-ul zzz
si mai am un cont 111 si dau vot la profilul yyy cu ip-ul zzz sa nu mai mearga sa mai votez profilu yyy de pe alt cont daca am acelasi ip !
tot codul meu de vot este asa:
Cod: Selectaţi tot
<?php session_start(); include('../conectare.php');
setlocale(LC_TIME, array('ro.utf-8', 'ro_RO.UTF-8', 'ro_RO.utf-8', 'ro', 'ro_RO', 'ro_RO.ISO8859-2'));
date_default_timezone_set('Europe/Bucharest');
$ip = $_SERVER["REMOTE_ADDR"];
if(isset($_POST['pentru'])){
if(isset($_SESSION['nume'])){
$dl = $_SESSION['nume'];
$dela = strtolower($dl);
$pt = $_POST['pentru'];
$pentru = strtolower($pt);
$timp = time();
$cerere = mysql_query("SELECT * FROM `membri` WHERE `nume` = '$pentru'");
$rand = mysql_fetch_assoc($cerere);
$cer = mysql_query("SELECT * FROM `vot-profil` WHERE `votdela` = '$dela' AND `votpentru` = '$pentru' order by votid DESC LIMIT 1");
$row = mysql_fetch_assoc($cer);
$end_day = strtotime('tomorrow', time()) - 1;
//daca nu merge sa votezi
if($dela == $row['votdela'] AND $pentru == $row['votpentru'] AND (($row['votdateadd'] + 86400) > $end_day))
{
echo 'Ai mai votat acest user';
}
else {
$newplus = $rand['vot-plus'] + 1;
$votat = mysql_query("UPDATE `membri` SET `vot-plus` = '$newplus' WHERE `nume` = '$pentru'");
$addvot = mysql_query("INSERT INTO `vot-profil` (`votdela`, `votpentru`, `votdateadd`, `votip`) VALUE ('$dela', '$pentru', '$timp', '$ip')");
if($votat && $addvot) {echo 'Multumesc pentru vot';}
else {echo 'eroare';}
}
}
}
// daca e delogat
else { echo 'Pentru a vota trebuie sa fi logat'; }
?>
Voteaza odata in ziua curenta
Scris: Sâm Ian 04, 2014
de MarPlo
Poti crea un tabel in care sa inregistrezi pe fiecare rand: ip-ul, id-ul/ profilul pe care l-a votat si timpul.
Apoi, inainte de a adauga votul:
1. Se sterg inregistrarile care nu sunt din ziua curenta.
2. Se selecteaza id-urile /profile votate de acel ip.
3. Se verifica inregistrarile selectate. Daca profilul a mai fost votat, se afiseaza mesaj; daca nu, se adauga votul, si se face Insert si in acest tabel, ip-ul, profilul-votat, si timpul.
- Asta e ca iddee, la partea de cod nu ma mai bag (incerc sa ma las).
Voteaza odata in ziua curenta
Scris: Sâm Ian 04, 2014
de cadou
Aha ok. multumesc de timpul acordat si pasul de inceput !