PHP Tutorials, PHP lernen, PHP Forum, PHP Community and more ... MyWebsolution.de!

Sidebar

Home News Tutorials Workshops Tipps Artikel Gästebuch Sitemap Pascal Landau

Suche

Members

Forum Login Registrierung

Statistik

Statistikbereich
Jetzt1
Heute442
Gestern391
Gesamt2386257

PHP Ratingsystem - Vor Mehrfachbewertungen schützen

Autor Flitze
Klicks 83303
Rating für PHP Ratingsystem
  7.7 von 10
Bewertungen417
Stand 20.06.2010
Keywords:
PHP Rating System, PHP Ranking System Tutorial, PHP Rating Tutorial, PHP Bewertungssystem, PHP Ranking erstellen, Rating System Tutorial, PHP Ranking System, Mehrfachbewertungen schützen, Schutz, viele Bewertungen, Witze Bewertung, Bewertungssystem

Amazon: PHP 5.3 und MySQL 5.1
Breadcrumb:
Tutorials » PHP Ratingsystem » PHP Ratingsystem - Vor Mehrfachbewertungen schützen
Seite : 1 2 3 4 5 6 7 Bewerten
Article Wizard - deutscher Article Spinner

Schutz vor Mehrfachbewertung

[ADSENSE_LINE]
Um einer Manipulation durch mehrfache Bewertung durch denselben Benutzer vorzubeugen, bauen wir nun noch einen Spamschutz in die Datei rate_witz.php ein. Dieser speichert die IP des Users und den Witz, den er bewertet hat in der zu Beginn erstellen Datenbanktabelle IP_Locks. Will der User nun den gleichen Witz erneut bewerten, wir eine Abfrage dieser Datenbanktabelle eine Ergebniszeile liefern und wir können die Bewertung blockieren. Da eine IP normalerweise nicht dauerhaft einen User zugeordnet ist und wir die Datenbanktabelle nicht unnötig zumüllen wollen, wird außerdem noch das Datum der Bewertung gespeichert. Dadurch kann der Eintrag nach einer gewissen Zeitspanne (z.B. 24 Stunden) gelöscht werden. Die rate_witze.php wird nun folgendermaßen erweitert:

PHP:
<?php
    
// Prüfen, ob ID und Punktzahl übergeben wurden
    
$rate = isset($_POST['Bewertung'])?(int)$_POST['Bewertung']:0;
    
$id = isset($_POST['ID'])?(int)$_POST['ID']:0;

    
// IPs löschen, die älter als 24 Stunden sind
    
$sql "DELETE FROM
                IP_Locks
            WHERE
                DATE_SUB(NOW(), INTERVAL 1 DAY) > Datum
           "
;
    
mysql_query($sql) OR die(mysql_error()."<pre>".$sql."</pre>");

    
// Prüfen, ob User-IP und Witz-ID in IP_Locks gespeichert sind
    
$sql "SELECT
                COUNT(*)
            FROM
                IP_Locks
            WHERE
                IP = '"
.mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."' AND
                ID = '"
.mysql_real_escape_string($id)."'
           "
;
    
$result mysql_query($sql) OR die(mysql_error()."<pre>".$sql."</pre>");
    
$ip_locked mysql_result($result0);

    
// Prüfen, ob die ID gültig ist
    
$sql ="SELECT
                COUNT(*)
           FROM
                Witze
           WHERE
                ID = '"
.mysql_real_escape_string($id)."'
           "
;
    
$result mysql_query($sql) OR die(mysql_error()."<pre>".$sql."</pre>");
    
$id_valid mysql_result($result,0);
    
    
// IP noch gesperrt?
    
if($ip_locked)
        echo 
"<p>Sie haben diesen Witz bereits bewertet.</p>";
    
// ID valide?
    
elseif(!$id_valid)
        echo 
"<p>Die gewählte Witz-ID ist ungültig.</p>";
    
// Prüfen, ob die Punktzahl im erlaubten Bereich liegt
    
elseif($rate<OR $rate>5)
        echo 
"<p>Sie können nicht weniger als 1 oder mehr als 5 Punkte vergeben.</p>";
    else{
        
// Update Rating
        
$sql "UPDATE
                    Witze
                SET
                    Rating_Summe = Rating_Summe+"
.$rate.",
                    Rating_Anzahl = Rating_Anzahl+1
                WHERE
                    ID = '"
.mysql_real_escape_string($id)."'
               "
;
        
mysql_query($sql) OR die(mysql_error()."<pre>".$sql."</pre>");
        
// IP für diesen Witz sperren
        
$sql "INSERT INTO
                    IP_Locks
                SET
                    IP = '"
.mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."',
                    ID = '"
.mysql_real_escape_string($id)."',
                    Datum = NOW()
               "
;
        
mysql_query($sql) OR die(mysql_error()."<pre>".$sql."</pre>");
        echo 
"<p>Sie haben den Witz erfolgreich mit ".$rate." Punkten bewertet.</p>";
    }
    echo 
"<p>Zurück zur <a href=\"show_witze.php\">Witzeanzeige</a></p>";
?>

Die aktuelle IP-Adresse eines Users findet sich in der Variable $_SERVER['REMOTE_ADDR'], diese wird bei der erfolgreichen Bewertung in IP_Locks gespeichert.

Zurück zur vorigen Seite:
PHP Ratingsystem - Beispiel: Witze Ratingsystem Bewertung Speichern
Bewerten

»» Zurück zum Menu

Suchmaschinenoptimierung

Suchmaschinenoptimierung (SEO - Search Engine Optimization)

Ranking

Tutorials (13)

8.6
8.4
8

Workshops (3)

8.8
8.7
7.6

Tipps (12)

7.2
6.7
6.5

Artikel (32)

8.4
8
7.2

RSS Feeds

Full Feed Tutorials Workshops Tipps Artikel

Twitter

Follow me on Twitter

Partner & Links


Valid HTML 4.01 Transitional
Valid CSS
nach oben

Diese Seiten unterstützen MyWebsolution:
 
© MyWebsolution.de
2006-2024