rernanded
Erfahrenes Mitglied
Moin,
folgendes php funktioniert nicht. Es werden keine Einträge (votings) eingetragen und es findet auch kein ip-Abgleich(d.h. bereits 1mal in den letzten 24 Std. gevotet) statt.
Das Script ist nicht von mir, ich soll nur mal wieder den Fehler finden. Leider klappt das aber nicht wie gewünscht.
Moni
DB-Tabellen-Struktur:
id int(11) AUTO_INCREMENT - PRIMARY
gid int(11)
ts timestamp ON UPDATE CURRENT_TIMESTAMP()
ip text utf8 general_ci
votedate datetime
folgendes php funktioniert nicht. Es werden keine Einträge (votings) eingetragen und es findet auch kein ip-Abgleich(d.h. bereits 1mal in den letzten 24 Std. gevotet) statt.
Das Script ist nicht von mir, ich soll nur mal wieder den Fehler finden. Leider klappt das aber nicht wie gewünscht.
Moni
DB-Tabellen-Struktur:
id int(11) AUTO_INCREMENT - PRIMARY
gid int(11)
ts timestamp ON UPDATE CURRENT_TIMESTAMP()
ip text utf8 general_ci
votedate datetime
PHP:
<form action="votingwithiptester.php" method="post">
<input name="gid" size="11" maxlength="11" type="text">
<input type="submit" value="vote">
</form>
<br />
<?php
error_reporting(E_ALL);
$gid = $_POST['gid'];
$ip = $_SERVER['REMOTE_ADDR'];
$firstvotedate = date('Y-m-d H:i:s');
include_once('serverconnection.php');
$dbc = mysqli_connect($servername, $username, $password, $dbname);
$q = " SELECT * FROM votingwithip WHERE gid = '$gid' ";
$r = mysqli_query($dbc, $q);
while ($row = mysqli_fetch_array($r)) {
if ($row['ip'] !== $ip) { // If ip not exists, go ahead and vote.
$q2 = " INSERT INTO votingwithip (gid, votedate, ip) VALUES ('$gid', '$firstvotedate', '$ip') ";
$r2 = mysqli_query($dbc, $q2);
if ($r2) {
echo 'Thank you for voting.';
} else {
echo 'There is a problem with your vote.';
}
}
elseif ($row['ip'] === $ip) {
// If ip exists, check date of last time voting.
// Define the two dates.
$votedate = $row['votedate'];
$now = date('Y-m-d H:i:s');
// Calculate hours between the dates.
$diff = round((strtotime($now) - strtotime($votedate)) / (60 * 60));
// Create variable for when user can return.
$return = '24' - $diff;
if ($diff > '24') { // Allow to vote once every 24 hours.
$q3 = " INSERT INTO votingwithip (gid, votedate, ip) VALUES ('$gid', '$now', '$ip') ";
$r3 = mysqli_query($dbc, $q3);
// Display outcome of insert query.
if ($r3) {
echo 'Thank you for voting, please come back in 24 hours to vote again!';
} else {
echo 'There is a problem with your vote:' . mysqli_error($dbc) . ' in reference to query ' . $q3;
}
} else {
echo 'Sorry, you\'ve already voted in the past 24 hours, please come back again in ' . $return . ' hours.';
}
}
} // End of while loop.
mysqli_close($dbc);
exit();
?>
Zuletzt bearbeitet: