Willkommen in der Webstatt Zum Webstatt Blog und Stories
fish fish am 11.04.06 22: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");

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

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

//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"){
$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");

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

netcup.de Warum gibt es hier Werbung?
leo am 12.04.06 00: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ß, leo

fish fish am 12.04.06 09:41

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

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

Franky Franky am 12.04.06 10:18

Quote
Original von fish
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()?

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt