php klickcounter mit mysql

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • php klickcounter mit mysql

    Ich habe bereits eine Funktionierende Linkiste auf MYSQL basis gei-nei.de.vu/links.html jetzt wollte ich noch einen klickcounter einbauen jedoch habe ich da noch ein kleiners problem da er meine Datenbankspalte in der die Klicks gezählt werden nicht updatet

    Die Datei mit dem Code zum Updaten der Datenbank:

    Quellcode

    1. <?php
    2. require("config.php");
    3. if($_GET['ID'] != "") {
    4. $id = $_GET['ID'];
    5. $sel = mysql_query("SELECT * FROM $table WHERE ID='$id'");
    6. $row = mysql_fetch_assoc($sel);
    7. $clicks = $row['clicks'];
    8. $url = $row['absender'];
    9. if($clicks) {
    10. $clicks = $clicks+1;
    11. mysql_query("UPDATE $table SET clicks='$clicks' WHERE ID='$id'");
    12. }
    13. echo '<META http-equiv="refresh" content="0; URL=\"".$url."\">';
    14. }
    15. else {
    16. echo '<META http-equiv="refresh" content="0; URL=\"".$hauptpfad."\" target=\"_blank"\>';
    17. }
    18. ?>
    Alles anzeigen


    Und jetzt noch die config.php

    Quellcode

    1. <?php
    2. $db_host = "localhost";
    3. $db_user = "root";
    4. $db_password = "";
    5. $db = "php";
    6. $hauptpfad = "127.0.0.1";
    7. $table = "linkliste";
    8. $conn = mysql_connect ($db_host, $db_user, $db_password);
    9. $db_select = mysql_select_db($db, $conn);
    10. ?>
    Alles anzeigen


    Danke für eure Antworten
    MFG sepp
  • wenn mysql etwas nicht tut, gibts ja immer fehlermeldungen
    Die bekommst du natürlich nicht zu sehen, wenn du direkt weiterleitest.
    Nimm daher zur Entwicklung die Weiterleitung nochmal raus und schau ob du eine Fehlermeldung erhältst

    Folgender Befehl reicht übrigens vollkommen aus um den Count zu erhöhen. Ein vorheriges Auslesen entfällt

    Quellcode

    1. mysql_query("UPDATE $table SET clicks=`clicks`+1 WHERE ID='$id'");
  • Ich hab den Code meiner Datei etz abgeändert sehe allerdings in meiner mysql datenbank immer noch keine Veränderung des zählers

    Quellcode

    1. <?php
    2. require("config.php");
    3. if($_GET['ID'] != "") {
    4. $id = $_GET['ID'];
    5. $sel = mysql_query("SELECT * FROM $table WHERE ID='$id'");
    6. $row = mysql_fetch_assoc($sel);
    7. $clicks = $row['clicks'];
    8. $url = $row['absender'];
    9. mysql_query("UPDATE $table SET clicks=`clicks`+1 WHERE ID='$id'");
    10. echo '<META http-equiv="refresh" content="0; URL=\"".$url."\">';
    11. }
    12. //else {
    13. // echo '<META http-equiv="refresh" content="0; URL=\"".$hauptpfad."\" target=\"_blank"\>';
    14. //}
    15. ?>
    Alles anzeigen
  • Scho schaut des bei mir aus: -


    - phpMyAdmin SQL Dump
    -- version 2.8.0.3
    -- http://www.phpmyadmin.net
    --
    -- Host: localhost
    -- Erstellungszeit: 25. November 2006 um 18:13
    -- Server Version: 5.0.20
    -- PHP-Version: 5.1.2
    --
    -- Datenbank: `php_buch`
    --

    -- --------------------------------------------------------

    --
    -- Tabellenstruktur für Tabelle `gastbuch`
    --

    CREATE TABLE `gastbuch` (
    `ID` int(10) unsigned NOT NULL auto_increment,
    `absender` char(255) default NULL,
    `clicks` int(11) NOT NULL default '1',
    `pruef` tinyint(2) default '-1',
    PRIMARY KEY (`ID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='gaestebuch' AUTO_INCREMENT=17 ;

    --
    -- Daten für Tabelle `gastbuch`
    --

    INSERT INTO `gastbuch` VALUES (14, 'http://127.0.0.1/phpmyadmin', '', 'test betreff', '2006-11-11', 0, 1);
  • "sepp" schrieb:

    an dem liegts net die habe scho lang gändert

    Was ist denn bei dir eine lange Zeitspanne?
    Zwischen der Zeit, zu der du den Code gepostet hast und dem Zeitpunkt des Datenbank Postings liegt ne 3/4h

    aber egal.. du leitest ja immernoch weiter..
    nimm mal alle Weiterleitungen raus und schau dann ob du nen mysql fehler hast

    Mit einer konkreten Meldung können wir mehr anfangen.
    Außerdem solltest du sicherheitshalber alle Spalten und Tabellennamen mit `` klammern

    UPDATE `$table` SET `clicks`=`clicks`+1 WHERE `ID`='$id'
  • Ist zwar keine Antwort auf deine Frage, aber dein Code ist unsicher und lässt SQL-Injections zu. Du solltest zumindest addslashes() oder besser mysql_real_escape_string() verwenden.

    http://dev.mysql.com/doc/refman/5.0/en/mysql-real-escape-string.html
    http://de2.php.net/manual/en/function.mysql-real-escape-string.php
    http://de2.php.net/manual/en/function.addslashes.php
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]