Ich hatte da mal etwas gemacht aber glaub das lief mit db und ip oder war das standart drin?
Ka aufjedenfall hatte ich da mal was geaendert
Glaub die beste lösung ist das nicht aber bisher lief es immer und noch hatte keiner was gesagt ^^
uostuff.uo-projects.net/uostuff/index.php?topliste
<?php
# Basisscript *unbekannt*
# Angepasst by Lord|Schirmer
# Support www.ilch.de
# Topliste ILCH
defined ('main') or die ( 'no direct access' );
$title = $allgAr['title'].'';
$hmenu = 'Topliste » Abstimmen';
extract($_GET);
extract($_POST);
// Header
$design = new design ( $title , $hmenu, 1);
$design->header();
$tpl = new tpl ( 'topliste/in.htm' );
$ergb = db_query("SELECT * FROM prefix_topliste_config");
$rowb = db_fetch_assoc($ergb);
// Versuche Starten
$client_ip = $_SERVER['REMOTE_ADDR'];
$datum = date("Y-m-d");
$votechecklese2 = db_query("SELECT * FROM ic1_topliste_vote");
$votecheckbb2 = db_fetch_assoc($votechecklese2);
$votechecklese4 = db_query("SELECT * FROM ic1_topliste_vote WHERE ip='$client_ip' AND date='$datum'");
$votecheckbb4 = db_fetch_assoc($votechecklese4);
# Set ip_blocked var
$ip_blocked = 0;
# Run the query to select all IPs
$query21 = mysql_query("SELECT * FROM ic1_topliste_vote");
# Loop through the query rows
while ($row = mysql_fetch_array($query21)) {
# Check if the client IP is in the DB
if (($client_ip == $row['ip']) AND ($datum == $row['date'])) {
# If so, count helper
$ip_blocked++;
}
}
# Was the helper enlarged (meaning IP found)?
if ($ip_blocked >= 1) {
# IP is blocked
} else {
# IP isn't blocked
$sql="INSERT INTO ic1_topliste_vote (ip,date) VALUES ('$client_ip','$datum')";
mysql_query($sql) OR die(mysql_error());
}
// Cookie pruefen
if (($votecheckbb4['abgestimmt'] == 1) AND ($votecheckbb4['date'] == $datum)) {
echo 'Sie können Morgen erst wieder für eine Seite voten!<meta http-equiv="refresh" content="3; URL=index.php?topliste"><br /><br />Sie werden in 3 Sekunden weitergeleitet...<br />Sollten Sie nicht weitergeleitet werden, dann klicken Sie bitte <a href="index.php?topliste">hier</a>.';
}elseif ($votecheckbb4['counter'] >= 3) {
echo 'Sie können Morgen erst wieder für eine Seite voten!<meta http-equiv="refresh" content="3; URL=index.php?topliste"><br /><br />Sie werden in 3 Sekunden weitergeleitet...<br />Sollten Sie nicht weitergeleitet werden, dann klicken Sie bitte <a href="index.php?topliste">hier</a>.';
}else{
switch($menu->getA(2))
{
default:
// Pruefung ob Seite vorhanden
if (db_count_query('SELECT COUNT(*) FROM `prefix_topliste` WHERE `id` = '.$menu->get(2)) == 0)
{wd('index.php?topliste','Diese Seite ist in der Topliste nicht vorhanden!'); break;}
// Abstimmung zeigen
$row = db_fetch_object(db_query("SELECT * FROM prefix_topliste WHERE id=".$menu->get(2)));
if ($_SESSION['authright'] < $rowb['toplist_spamrecht'])
{ $antispam = ''; }
else
{
$antispam = '<style type="text/css">input.captcha{color:#'.$rowb['toplist_spamfont'].';background-color:#'.$rowb['toplist_spamback'].';border:0px;border-bottom:1px #'.$rowb['toplist_spamfont'].' dotted;text-align:center;}</style>';
$antispam .= '<br><table style="background:#'.$rowb['toplist_spamback'].'; text-align:center;" cellspacing="2" cellpadding="2"><tr><td colspan="2" style="color: #'.$rowb['toplist_spamfont'].'"><small>BITTE AUSRECHNEN!</small></td></tr><tr><td><img src="index.php?topliste-captcha" alt="Antispam" /></td><td><input class="captcha" type="text" name="sicherheitscode" size="2" maxlength="2"/></td></tr></table>'; }
$tpl->set('name', $row->name);
$tpl->set('desc', $row->beschreibung);
$tpl->set('rang', $row->rang);
$tpl->set('in', $row->klickin);
$tpl->set('out', $row->klickout);
$tpl->set('designin', $row->design);
$tpl->set('inhaltin', $row->inhalt);
$tpl->set('technikin', $row->technik);
$tpl->set('bild', '<img src="'.$row->bild.'" border="0" width="468" height="60" alt="'.$row->name.'">');
$tpl->set('id', $menu->get(2));
$tpl->set('ANTISPAM', $antispam);
$tpl->set('uname', $_SESSION['authname']);
$tpl->set('ANTISPAMK', (loggedin()?'':get_antispam ('topliste', 0)));
$tpl->out(0);
break;
case 'V':
// Pruefung ob Seite vorhanden
if (db_count_query('SELECT COUNT(*) FROM `prefix_topliste` WHERE `id` = '.$menu->getE(2)) == 0)
{wd('index.php?topliste','Diese Seite ist in der Topliste nicht vorhanden!'); break;}
// Vote pruefen
if ($_SESSION['authright'] < $rowb['toplist_spamrecht'])
{
// Vote speichern ohne Captcha bei Recht
db_query("UPDATE prefix_topliste SET klickin = klickin +1, inhalt = inhalt +".$ininhalt.", design = design +".$indesign.", technik = technik +".$intechnik." WHERE id = ".$menu->getE(2));
$client_ip = $_SERVER['REMOTE_ADDR'];
echo 'Danke das Sie gevotet haben!<meta http-equiv="refresh" content="3; URL=index.php?topliste"><br /><br />Sie werden in 3 Sekunden weitergeleitet...<br />Sollten Sie nicht weitergeleitet werden, dann klicken Sie bitte <a href="index.php?topliste">hier</a>.';
}
else
{
// Captcha pruefen
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "29jfkd921");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if(isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){
unset($_SESSION['rechen_captcha_spam']);
$indesign = escape($_POST['indesign'], 'string');
$intechnik = escape($_POST['intechnik'], 'string');
$ininhalt = escape($_POST['ininhalt'], 'string');
$client_ip = $_SERVER['REMOTE_ADDR'];
$datum = date("Y-m-d");
// Vote speichern
db_query("UPDATE prefix_topliste SET klickin = klickin +1, inhalt = inhalt +".$ininhalt.", design = design +".$indesign.", technik = technik +".$intechnik." WHERE id = ".$menu->getE(2));
db_query("UPDATE prefix_topliste_vote SET abgestimmt = '1', counter = '0' WHERE ip='".$client_ip."' AND date='".$datum."'");
echo 'Danke das Sie gevotet haben!<meta http-equiv="refresh" content="3; URL=index.php?topliste"><br /><br />Sie werden in 3 Sekunden weitergeleitet...<br />Sollten Sie nicht weitergeleitet werden, dann klicken Sie bitte <a href="index.php?topliste">hier</a>.';
}else{
// Captcha Fehler
if ($votecheckbb4['counter'] == 0) {
$client_ip = $_SERVER['REMOTE_ADDR'];
$datum = date("Y-m-d");
db_query("UPDATE prefix_topliste_vote SET counter = counter +1 WHERE ip='$client_ip' AND date='$datum'");
$meldung = "Sie haben noch 2 Versuche";
wd('index.php?topliste-in-'.$menu->getE(2),'Das Ergebnis der Rechnung war falsch oder leer!<br>'.$meldung.'!');
}
if ($votecheckbb4['counter'] == 1) {
$client_ip = $_SERVER['REMOTE_ADDR'];
$datum = date("Y-m-d");
db_query("UPDATE prefix_topliste_vote SET counter = counter +1 WHERE ip='$client_ip' AND date='$datum'");
$meldung = "Sie haben noch 1 Versuche";
wd('index.php?topliste-in-'.$menu->getE(2),'Das Ergebnis der Rechnung war falsch oder leer!<br>'.$meldung.'!');
}
if ($votecheckbb4['counter'] >= 2) {
$client_ip = $_SERVER['REMOTE_ADDR'];
$datum = date("Y-m-d");
$sql="UPDATE ic1_topliste_vote SET abgestimmt='1', counter='0' WHERE ip='$client_ip' AND date='$datum'";
mysql_query($sql) OR die(mysql_error());
$meldung = "Sie können Morgen erst wieder für eine Seite voten!";
wd('index.php?topliste','Das Ergebnis der Rechnung war falsch oder leer!<br>'.$meldung.'!');
}
}
}
break;
}}
$design->footer();
?>
Zuletzt modifiziert von Siggi am 25.08.2013 - 16:45:14