Counter will net so wie ich will

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Counter will net so wie ich will

    Also ma wieder nen problem ich habe nen Counter erstellt und fast zum Laufen gebracht, wenn da net noch dieses kleine Problem währe.
    Also hier erstma das skript:

    PHP-Code:

    <?PHP

    // In dem Ersten Bereich kann das Script an eigene Bedürfnisse Angepasst werden

    // Allgemeine Einstellungen
    $grafik_counter ;         // 1=>Grafikcounter, 0=>Textcounter

    $font_size  "4" ;         // Fontgrösse
    $text_color "#000000" ;    // Textfarbe (zb. #000000 für schwarz)

    $back_color "#FFFFFF" ;    // Hintergrundfarbe (zb. #FFFFFF für weiss) ! nur bei grafik_counter = 1 !

    $showuser=1;            // Total Counter Anzeigen ( 1=>Sichtbar / 0=>Unsichtbar )
    $showgestern=1;            // Gestern gesammt User Anzeigen ( 1=>Sichtbar / 0=>Unsichtbar )
    $showheute=1;            // Heute User Anzeigen ( 1=>Sichtbar / 0=>Unsichtbar )
    $showtrend=1;            // Trend Anzeige im Vergleich zu Gestern gleicher Zeit ! ( 1=>Sichtbar / 0=>Unsichtbar ) 
    $showonline=1;            // User Online Anzeigen ( 1=>Sichtbar / 0=>Unsichtbar )

    $onlinetime=3;            // Online Zeit in Minuten
    $reload=24*60;            // Reload Sperre in Minuten ( 24*60 => 24Stunden )

    $startwert=0;            // Hier können Sie den Startwert einstellen. Vor der installation setzen ! Oder einfach 0 lassen.

    // Datenbank Einstellungen
    $db_host 'localhost';     // Datenbankserver (z.b localhost)
    $db_user 'testc';    // Benutzername
    $db_pass 'testc';         // Passwort
    $db_name 'testc';    // Datenbankname

    // Beim erstem Start rufen Sie bitte das Script mit "http://www.ihrehomepage.de/counter.php?install=install" auf


    // ab hier nichts mehr ändern 
    // ab hier nichts mehr ändern 

    // Variablen auslesen
    while (list($key,$val)=each($_GET))  {
         ${
    $key} = $val; }


    // mit der Datenbank verbinden:
    $serverID = @mysql_connect($db_host$db_user$db_pass);
    if(!
    $serverID) {echo "Der DB Server ist im Moment leider nicht erreichbar!"; exit;}
    $datenbank = @mysql_select_db($db_name$serverID);
    if(!
    $datenbank) {echo "Die Datenbank wurde nicht gefunden !"; exit;}


    // Installationsroutine
    if ($install=="install")
        {
        if(!
    $serverID) {echo "<font color=\"#CC0000\">- Der DB Server ist leider nicht erreichbar !</font><br>"; }
        else {echo 
    "<font color=\"#00CC00\">- Der DB Server wurde erfolgreich erreicht !</font><br>";}
        if (!
    $datenbank) {echo "<font color=\"#CC0000\">- Die Datenbank wurde nicht gefunden !</font><br>"; }
        else {echo 
    "<font color=\"#00CC00\">- Die Datenbank wurde gefunden !</font><br>";}    
        
    $anlegen mysql_query("create table Counter (
            id int(11) NOT NULL auto_increment,
            ip varchar(15) NOT NULL default '',
            time int(20) NOT NULL default '0',
            online int(20) NOT NULL default '0',
            PRIMARY KEY  (id)
            ) TYPE=MyISAM COMMENT='Counter by Pawlita' "
    );
        if (!
    $anlegen) {echo "<font color=\"#CC0000\">- Tabelle konnte nicht angelegt werden !</font><br>";}
        else {
        echo 
    "<font color=\"#00CC00\">- Tabelle wurde erfolgreich angelegt !<br>";
        if (
    $startwert 0)
            {
            
    mysql_query("insert into Counter (id, ip, time, online) values ('$startwert', 'Start', '$time', '$time')");
            echo 
    "<font color=\"#00CC00\">- Der Startwert wurde auf $startwert gesetzt !<br>";
            }
        }
        exit;
        }


    // Initialisierung 
    $time=time();
    $ip=$REMOTE_ADDR;

    // Veraltete Einträge löschen
    $anfangGestern mktime(000date(n), date(j), date(Y)) - 24*60*60 ;
    $delete=mysql_query("delete from Counter where time<'$anfangGestern'");
    if (!
    $delete) {echo"Es ist ein Fehler aufgetreten, möglicherweise ist die Tabelle nicht angelegt."; exit;}

    // Reloadsperre und Onlinezeit abfragen und setzen
    $oldreload $time-$reload*60;
    $gesperrt=mysql_query("select id from Counter where ip='$ip' AND time>'$oldreload' order by id desc limit 1");
    if (!
    $gesperrt) {echo"Es ist ein Fehler aufgetreten, möglicherweise ist die Tabelle nicht angelegt."; exit;}
    if (
    mysql_num_rows($gesperrt)==0)
        { 
        
    mysql_query("insert into Counter (ip, time, online) values ('$ip', '$time', '$time')");
        }
    else
        {
        
    $gesperrtID=mysql_result($gesperrt,0,0);
        
    mysql_query("update Counter set online='$time' where id='$gesperrtID'");
        }


    // Abfrage
    if ($showuser==1
        {
        
    // Counterstand ermitteln
        
    $abfrage=mysql_query("select id from Counter order by id desc limit 1");
        
    $user=mysql_result($abfrage,0,0);
        
    mysql_free_result($abfrage);
        
    $Userstring "Total: $user";
        }
    if (
    $showgestern==1)
        {
        
    // gestern
        
    $anfangTagmktime(000date(n), date(j), date(Y)) - 24*60*60 ;
        
    $endeTagmktime(235959date(n), date(j), date(Y)) - 24*60*60 ;
        
    $abfrage=mysql_query("select count(id) from Counter where time>='$anfangTag' AND time<=$endeTag");
        
    $gestern=mysql_result($abfrage,0,0);
        
    mysql_free_result($abfrage);
        
    $Gesternstring "Gestern: $gestern";
        }
    if (
    $showheute==1)
        {
        
    // Heute
        
    $anfangTagmktime(000date(n), date(j), date(Y)) ;
        
    $endeTagmktime(235959date(n), date(j), date(Y)) ;
        
    $abfrage=mysql_query("select count(id) from Counter where time>='$anfangTag' AND time<=$endeTag");
        
    $heute=mysql_result($abfrage,0,0);
        
    mysql_free_result($abfrage);
        
    $Heutestring =  "Heute: $heute";
        }
    if (
    $showtrend==1)
        {
        
    // gestern zur gleichen Zeit
        
    $anfangTagmktime(000date(n), date(j), date(Y)) - 24*60*60 ;
        
    $endeTagtime() - 24*60*60 ;
        
    $abfrage=mysql_query("select count(id) from Counter where time>='$anfangTag' AND time<=$endeTag");
        
    $gestern=mysql_result($abfrage,0,0);
        
    mysql_free_result($abfrage);
        
    $trend $heute $gestern;
        if (
    $trend>0)$trend "+".$trend;
        
    $Trendstring "Trend: $trend";
        }
    if (
    $showonline==1)
        {
        
    // User Online ermitteln
        
    $isonline=$time-($onlinetime*60);  
        
    $abfrage=mysql_query("select count(id) from Counter where online>='$isonline'");
        
    $online=mysql_result($abfrage,0,0);
        
    mysql_free_result($abfrage);
        
    $Onlinestring "Online: $online";
        }
    // Ausgabe
    if ($grafik_counter == 0)
        {
        if (
    $showuser==1$Userstring $Userstring."<br>";
        if (
    $showgestern==1$Gesternstring $Gesternstring."<br>";
        if (
    $showheute==1$Heutestring $Heutestring."<br>";    
        if (
    $showtrend==1$Trendstring $Trendstring."<br>";    
        if (
    $showonline==1$Onlinestring $Onlinestring."<br>";
        echo 
    "<font size=\"$font_size\" color=\"$text_color\">".$Userstring.$Gesternstring.$Heutestring.$Trendstring.$Onlinestring."</font><font size=\"1\" color=\"$text_color\">Pawlita.de</font>";
        }
    else
        {
        
    // Hintergrundsfarbe umwandeln
        
    if( eregi"[#]?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})"$back_color$bc ) )
        { 
    $back_red hexdec$bc[1] ); $back_green hexdec$bc[2] ); $back_blue hexdec$bc[3] ); }
        
    // Textfarbe umwandeln
        
    if( eregi"[#]?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})"$text_color$tc ) )
        { 
    $text_red hexdec$tc[1] ); $text_green hexdec$tc[2] ); $text_blue hexdec$tc[3] ); }

        
    // initialisierung
        
    $maxlen=0;
        if (
    strlen($Userstring)>$maxlen$maxlen strlen($Userstring);
        if (
    strlen($Gesternstring)>$maxlen$maxlen strlen($Gesternstring);
        if (
    strlen($Heutestring)>$maxlen$maxlen strlen($Heutestring);
        if (
    strlen($Trendstring)>$maxlen$maxlen strlen($Trendstring);
        if (
    strlen($Onlinestring)>$maxlen$maxlen strlen($Onlinestring);
        
    $width  = (ImageFontWidth($font_size) * $maxlen)+4;
        
    $zeilen $showuser $showgestern $showheute $showtrend $showonline;
        
    $height = ( $zeilen*ImageFontHeight($font_size) ) +  ImageFontHeight(1)+2;

        
    // Erzeuge Bild in angegebener Größe
        
    $im imagecreate ($width,$height) or die ("Cannot Initialize new GD image stream");

        
    // Hintergrundfarbe
        
    $background_color imagecolorallocate ($im$back_red$back_green$back_blue);

        
    // Textfarbe (evtl. schwarz???)
        
    $text_color imagecolorallocate ($im$text_red$text_green$text_blue);
        
        
    // Bild zusammensetzen
        
    $aktZeile 0;
        if (
    $showuser==1)
                {
    imagestring ($im$font_size2ImageFontHeight($font_size)*$aktZeile$Userstring$text_color); $aktZeile++; }
        if (
    $showgestern==1)
                {
    imagestring ($im$font_size2ImageFontHeight($font_size)*$aktZeile$Gesternstring$text_color); $aktZeile++; }
        if (
    $showheute==1)
                {
    imagestring ($im$font_size2ImageFontHeight($font_size)*$aktZeile$Heutestring$text_color); $aktZeile++; }
        if (
    $showtrend==1)
                {
    imagestring ($im$font_size2ImageFontHeight($font_size)*$aktZeile$Trendstring$text_color); $aktZeile++; }
        if (
    $showonline==1)
                {
    imagestring ($im$font_size2ImageFontHeight($font_size)*$aktZeile$Onlinestring$text_color); $aktZeile++; }
        
    imagestring ($im12ImageFontHeight($font_size)*$aktZeile+2,"Pawlita.de"$text_color);
        
    // Bild erzeugen und ausgeben
        
    header ("Content-type: image/png");
        
    // PNG Bild erzeugen und senden
        
    imagepng($im);
        
    // Bild auf dem Server loeschen
        
    imagedestroy($im);
        }
    ?>

    wen ich da aber nun starten will dann kommt immer folgende Meldung: Es ist ein Fehler aufgetreten, möglicherweise ist die Tabelle nicht angelegt.
    der Link auch nochma: http://andi89.dyndns.org/apex/Counter/counter.php
    danke im Voraus Dennis

  • #2
    Lass Dir doch mal die mysql_error ausgeben, die Du erzeugst
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      wie kann ich mir denn ausgeben lassen ?

      Kommentar


      • #4
        wer die regeln liest und befolgt, weiß bescheid.

        Kommentar


        • #5
          was meinste bitte?

          Kommentar


          • #6
            http://www.php-resource.de/forum/sho...threadid=50454
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              sry aber ich weiß wirklich net,was ich machen soll
              ich bin echter noob in php und deshalb poste ich hir auch also bitte helft mir nen bislle kompetenter und postet net nur so nen dummen Link danke.
              Warum ich den ganzen Quellcode gepostet habe ? weil ivh net weiß wo das pro is ..... aks bitte helft mir

              Kommentar


              • #8
                Ich versuch mal zu übersetzen.
                Deine Fehlermeldung kommt ja offensichtlich von hier:

                PHP-Code:
                // Veraltete Einträge löschen
                $anfangGestern mktime(000date(n), date(j), date(Y)) - 24*60*60 ;
                $delete=mysql_query("delete from Counter where time<'$anfangGestern'");
                if (!
                $delete) {echo"Es ist ein Fehler aufgetreten, möglicherweise ist die Tabelle nicht angelegt."; exit;} 
                Daraus machst du dann mal
                PHP-Code:
                // Veraltete Einträge löschen
                $anfangGestern mktime(000date(n), date(j), date(Y)) - 24*60*60 ;
                $delete=mysql_query("delete from Counter where time<'$anfangGestern'") or die(mysql_error()); 
                und dann postest du hier die Fehlermeldung die du bekommst.

                Und ich glaube, das kommt nicht so gut, wenn du den Hinweis auf die Regeln einen dummen Link nennst.
                ich glaube

                Kommentar


                • #9
                  [...] ich habe nen Counter erstellt und fast zum Laufen gebracht [...]
                  wenn das die wahrheit wäre, dann müsstest du selbst erkennen, um welchen teil des skriptes es sich handelt.

                  befolge doch einfach die paar tipps, die in dem post erklärt werden - code umbrechen, E_ALL, mysql_error() etc.

                  Kommentar


                  • #10
                    Dieser "dumme Link" führt dich zu den hiesigen Regeln, die du bitte umgehend befolgst!

                    Wenn du schon den ganzen Code hinklatscht, dann brich ihn wenigstens um! Keiner liest diesen Brocken, wenn er dabei auch noch ständig links-rechts-scrollen muß.

                    Kommentar


                    • #11
                      -Lies deine mails-

                      also eine Frage habe ich schon noch dazu:
                      du andi89.dyndns.org (ip1, tiscali )hast einen Counter entwickelt.
                      warum fragst Du nicht den Autor davon, pawlita.de (ip2, evanzo)?

                      oder blick ich da nicht durch
                      Zuletzt geändert von mai; 15.06.2006, 23:58.

                      Kommentar


                      • #12
                        Also das ist ein Spezialfall. Die mysql-Fehlermeldung beim DELETE lautete "Table
                        db.Counter does not exist." Das stimmt auch: er hat nämlich den initialisierungs-
                        Aufruf des Skript nicht gemacht. Das wurde inzwischen nachgeholt, url hat er ja
                        angegeben. Im Skript ist noch ein zweiter, subtilerer Fehler, der zur gleichen
                        Fehlermeldung führt, und welcher Fehler auch im Original von pawlita.de drin ist.

                        Kommentar

                        Lädt...
                        X