Hallo zusammen!
ich habe ein php-Script geschrieben, das eine Linkliste erzeugt. Diese Linkliste soll nach den beliebtesten Links sortiert werden. Jeder Link hat einen eigenen Wert, der aussagt wie oft er schon angeklickt wurde (mit IP-Sperre). Der Link der am häufigsten angeklickt wurde erscheint ganz oben in der Linkliste. Der mit den wnigsten Klicks ganz unten. Jetzt habe ich irgendwo in dem Script einen Denkfehler. Das Script ist bereits im Einsatz (siehe URL-Link). Der Fehler: Nach einer Weile sind immer neue Datensätze da, bei denen nur die Felder "id", "klicks" und "ip" gefüllt sind. Ich bin das Script immer wieder durchgegangen und konnte keinen Fehler finden und auch nie selbst reproduzieren das neue Datensätze erzeugt werden. Hat einer von euch eine Idee?
Danke und Gruß,
Marcel
Tabelle links:
id url name text klicks ip
1 www.url1.de name1 text1 10 297.145.45.158
2 www.url2.de name2 text2 256 209.167.50.22
3 www.url3.de name3 text3 5 62.155.239.248
<?PHP
$sql_database = "+++";
$sql_host = "+++";
$sql_user = "+++";
$sql_pass = "+++";
$db = mysql_connect($sql_host,$sql_user,$sql_pass) OR DIE ("<br>Keine Verbindung zur SQL-Datenbank!");
mysql_select_db($sql_database,$db) OR DIE ("<br>Konnte Datenbank nicht finden!");
if(isset($id)) {
$count = mysql_query("SELECT * FROM links WHERE id = '$id'");
$wert = mysql_fetch_row($count);
$ip_alt = $wert[5];
$ip_neu = getenv("REMOTE_ADDR");
$link = $wert[1];
if ($ip_alt != $ip_neu)
{
$hits = $wert[4]; $hits++;
$update="REPLACE INTO links SET id = '$wert[0]', url = '$wert[1]', name = '$wert[2]', text = '$wert[3]', klicks = '$hits', ip = '$ip_neu'";
mysql_query($update) OR DIE(" ".mysql_error());
}
header("Location: $link");
exit;
}
$seitentitel = "Treffpage » Start » Links";
$kategorie = "start";
include("/web/header.php");
echo "Die Links in unserer Linkliste sind nach ihrer Beliebtheit sortiert. Das heißt im Klartext: Je öfter ein Link von Besuchern angeklickt wurde, desto
weiter oben steht er in der Linkliste.";
$data = mysql_query("SELECT * FROM links ORDER BY klicks DESC");
$zaehler = "1";
while($zeile = mysql_fetch_row($data)) {
echo "<div style="margin-top: 15px;"><b>$zaehler. <a href="index.php?id=$zeile[0]" target="_blank">$zeile[2]</a></b> ($zeile[4] Aufrufe)<br>
\n$zeile[3]</div>\n";
$zaehler++;
}
include("/web/footer.php");
?>