In mijn strijd een sterk verouderde website te reanimeren stuit ik op een hardnekkige fout in een samenwerkende functie.
De functie kijkt in de database of een IP aanwezig is, wanneer niet dan stapt deze keurig door maar als het IP wel aanwezig is dient er gerekend te worden of dat afgerond 1 dag terug is...
Hier gaat het helaas fout en ik zie even niet de fout...
Wie kan mij op een spoor helpen?
De functie kijkt in de database of een IP aanwezig is, wanneer niet dan stapt deze keurig door maar als het IP wel aanwezig is dient er gerekend te worden of dat afgerond 1 dag terug is...
Hier gaat het helaas fout en ik zie even niet de fout...
Wie kan mij op een spoor helpen?
PHP:
function heeft_gestemt($conn)
{
// kijk of een een log bestand voor deze gebruiker aanwezig is.
if (is_ingelogd())
{
// als de gebruiker ingelogd is ook het userid veld in de log controleren (wordt nog niet gebruikt).
$sql = "SELECT * FROM cpl_stemlijst_log WHERE userid = '{$_SESSION['user']['userid']}' ORDER BY logid DESC LIMIT 1;";
$result = mysqli_query($conn, $sql);
if ($result)
{
if (mysqli_num_rows($result) > 0)
{
return mysqli_result($result, 0, 'date');
}
}
}
else
{
$sql = "SELECT * FROM cpl_stemlijst_log WHERE ipadres = '{$_SERVER['REMOTE_ADDR']}' ORDER BY logid DESC LIMIT 1;";
$result = mysqli_query($conn, $sql);
if ($result)
{
if (mysqli_num_rows($result) > 0)
{
while($rowData = mysqli_fetch_array($result)){
return $rowData["date"];} #date() uit database
}
}
}
// er zijn nog geen logs van deze gebruiker.
return false;
}
/**
* Controleer of de huidige bezoeker nog wel mag stemmen.
*
*/
function kan_stemmen($conn)
{
// er kan maximaal maar een keer gestemt worden?
if (stemlijst_var('eenmalig_stemmen', true))
{
// controleer of de bezoeker al heeft gestemt.
if (!heeft_gestemt($conn))
{
// de gebruiker heeft nog niet gestemt, dus mag dit nog doen.
return true;
}
}
// er mag meerdere malen gestemt worden, maar alleen na een bepaalde tijd.
else
{
// kijk wanneer de gebruiker voor het laatst heeft gestemt.
$laatst_gestemt = heeft_gestemt($conn);
if (!$laatst_gestemt)
{
// de gebruiker heeft nog niet gestemt, dus mag dit nog doen.
return true;
}
// kijk hoelang een gebruiker moet wachten voordat er opnieuw gestemt kan worden.
$stem_wacht_tijd = stemlijst_var('stem_wacht_tijd'); # 1 dag
// controleer of de gebruiker nu mag stemmen.
$verlopen_dagen = round((time() - $laatst_gestemt) / (24 * 3600));
if ($verlopen_dagen >= $stem_wacht_tijd)
{
return true;
}
}
// de gebruiker mag niet meer stemmen.
return false;
}