Webstatt.org - Community seit 2006 - 2012 (2024?)

klickzähler funktioniert nicht

Avatar user-180
11.04.2006 20:09

hi!
ich hab einen klickzähler programmiert, der leider nicht zählt, woran könnte das iegen?

der klickzähler wird mit einem link wie dem da aufgerufen
http://fish.bierquartier.de/fun/klicks.php?ebene_1=1&ebene_2=4&kommentare=1&inhalt=22

<?php

//konfigurations-datei einbinden,
//(enthält mysql-passwürter)
require("config.php"zwinkern;

//funktionsbibliothek einbinden,
//(enthält wichtige funktionen)
include("funktionen.php"zwinkern;

//verbindung zur db herstellen
//mithilfe der daten au der config.php
$verbindung = mysql_connect($host, $user, $pwd) or die("keine verbindung"zwinkern;
mysql_select_db($datenbank) or die("keine datenbank"zwinkern;

//auswahl der tabelle 20_partner
$abfrage_klicks = "SELECT * FROM `20_inhalt` WHERE `id` = '".$_GET['id']."'";
$ergebnis_klicks = mysql_query($abfrage_klicks);


while($row = mysql_fetch_object($ergebnis_klicks)){
if (empty($row->klicks)){
$klicks = "1";
$aendern_klicks = "UPDATE `20_inhalt` Set `klicks` = '".$klicks."' WHERE `id` = '".$_GET['id']."'";
$aenderung_klicks = mysql_query($aendern_klicks) or die(mysql_error());
}

elseif ($row->klicks = "0"zwinkern{
$klicks = "1";
$aendern_klicks = "UPDATE `20_inhalt` Set `klicks` = '".$klicks."' WHERE `id` = '".$_GET['id']."'";
$aenderung_klicks = mysql_query($aendern_klicks) or die(mysql_error());
}

else {
$klicks = $row->klicks + 1;
$aendern_klicks = "UPDATE `20_inhalt` Set `klicks` = '".$klicks."' WHERE `id` = '".$_GET['id']."'";
$aenderung_klicks = mysql_query($aendern_klicks) or die(mysql_error());
}
}


//weiterleitung
//zur eigentlichen seite
$datei = "fun2.php";
$url = $datei."?ebene_1=".$_GET['ebene_1']."&ebene_2=".$_GET['ebene_2']."&alles=0&kommentare=1&inhalt=".$_GET['inhalt']."&seite=".$_GET['seite'];
header("Location: $url"zwinkern;

//schließen der verbindung
//und anzeigen von php-fehlern
mysql_close($verbindung);
echo mysql_error();
?>

may the force be with you. but mostly with me.
user-228
11.04.2006 22:45

wo kommt denn $_GET['id'] her?
zudem kannst du das ganze auch ohne vorher den wert auszulesen updaten:

update `klicks` set `feld`= ´feld`+1 where `id`=$id

zudem solltest du deine $_GET variablen bearbeiten, damit du dir keine sql-injections einfängst.

mysql_real_escapce_string() zB
http://www.php.net/manual/de/function.mysql-real-escape-string.php
gruß, user-228

Avatar user-180
12.04.2006 07:41

hi. danke für deine antwort, user-228.
er funkrioniert soweit . wie baue ich jetzt mysql_real_escape_string ein?

so: mysql_real_escape_string($_GET['inhalt']) oder wie?

may the force be with you. but mostly with me.
Avatar user-182
12.04.2006 08:18

Original von user-180
so: mysql_real_escape_string($_GET['inhalt']) oder wie?


wenn du es diorekt in die query einsetzt, dann so, ja.
sonst davor:
$_GET['inhalt'] = mysql_real_escape_string($_GET['inhalt']);
// und vll noch...
$_GET['id'] = intval($_GET['id']);


ist intval() schneller als mysql_real_escape_string()?

Seid ihr auch schon wix'r? xD