Marcel: Denkfehler im PHP-Script

Beitrag lesen

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 &raquo; Start &raquo; 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");
?>