SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 07.01.2003, 22:35:27
The_Semmel The_Semmel ist offline
Anfänger
 
Registriert seit: Jan 2003
Alter: 44
Beiträge: 5
Probleme beim Einbinden von Counter

Hallo,

habe folgenden Counter geschrieben:

PHP-Code:
Counter mit Reloadsperre und Bildausgabe

setCookie
("test","test");

class 
counter {
    
    
//Deklaration und teilweise Initialisieren der Variablen
    

    
var $data_file "counter.stats";
var 
$image_dir "images";
var 
$visits;    
var 
$expire 30;
var 
$image_width 11;
var 
$number_count 6;



    
function 
counter() {
        
$this->init();        
    }

    function 
init() {
        Global 
$HTTP_COOKIE_VARS;
        
$this->getStats();
        
//Cookieabfrage, falls nicht gesetzt wird Visits gezählt
        
if ($HTTP_COOKIE_VARS['visit'] != "true") {
            
setCookie("visit","true");
            
$this->visits++;
        } 

        
$this->writeStats();    
    }

    function 
ausgabe() {

//Zahlen mit Bilder versehen
        
$out "";
        for (
$i $this->number_count$i ;$i--) {
            if (
strlen($this->visits) < $i) {
                  
$out .= "<img src="".$this->getImages(0)."">";
            }
            else {
                
$tmp_visits strrev($this->visits);
                
$tmp substr($tmp_visits,$i-1,1);
                
$out .= "<img src="".$this->getImages($tmp)."">";
            }
        }
        echo 
$out;
            
    }

    function 
getStats() {

//Falls nicht  vorhanden wird die datafile erstellt
        
if (!file_exists($this->data_file)) {
            
$fp fopen($this->data_file,"w");
            
$this->visits 0;
        }
        else {
            
$fp fopen($this->data_file,"r");
            
$this->visits trim(fread($fp,1000));
            if (!
is_numeric(trim($this->visits))) $this->visits 0;
        }
        
fclose($fp);
    }

    function 
writeStats() {
        
//Datei wird geöffnet, und Daten werden geschrieben
        
$fp fopen($this->data_file,"w");
        
fwrite($fp,$this->visits);
        
fclose($fp);    
    }

    function 
getImages($img) {
        switch (
$img) {
            case 
"0";
            return 
$this->image_dir."/0.gif";
            break;

            case 
"1";
            return 
$this->image_dir."/1.gif";
            break;

            case 
"2";
            return 
$this->image_dir."/2.gif";
            break;

            case 
"3";
            return 
$this->image_dir."/3.gif";
            break;

            case 
"4";
            return 
$this->image_dir."/4.gif";
            break;

            case 
"5";
            return 
$this->image_dir."/5.gif";
            break;

            case 
"6";
            return 
$this->image_dir."/6.gif";
            break;

            case 
"7";
            return 
$this->image_dir."/7.gif";
            break;

            case 
"8";
            return 
$this->image_dir."/8.gif";
            break;

            case 
"9";
            return 
$this->image_dir."/9.gif";
            break;

            default:
            return 
$this->image_dir."/0.gif";
            break;
        }
    }
}

?> 
Wollte dann das ganze mit

PHP-Code:
<?php
include "counter.class.php";
$c = new Counter();
?>
und

PHP-Code:
<?php
$c
->ausgabe();
?>
in eine Datei einbinden.

Der Counter erscheint zwar, es wird aber folgende error Meldung ausgegeben:

Zitat:
Warning: Cannot add header information - headers already sent....
Hat vielleicht jemand von euch eine Idee was ich falsch gemacht haben könnte?

Gruß und Dankeschön,

Semmel
Mit Zitat antworten
  #2  
Alt 08.01.2003, 08:18:57
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
du hast bereits ein zeichen an den browser gesendet was nicht sien darf. der cookie mus als erstes gesetzt werden und dann darf erst der html-teil folgen.
Mit Zitat antworten
  #3  
Alt 08.01.2003, 16:50:25
The_Semmel The_Semmel ist offline
Anfänger
 
Registriert seit: Jan 2003
Alter: 44
Beiträge: 5
Zitat:
du hast bereits ein zeichen an den browser gesendet was nicht sien darf. der cookie mus als erstes gesetzt werden und dann darf erst der html-teil folgen.
Hallo,

kannst du das bitte genauer erläutern?

Ich bin diese Tage nicht ganz auf der Höhe.

Das Cookie wird doch zuerst gesetzt
PHP-Code:
setCookie("test","test"); 
oder habe ich da was falsch verstanden.

Gruß,

Semmel
Mit Zitat antworten
  #4  
Alt 09.01.2003, 19:06:10
input input ist offline
Anfänger
 
Registriert seit: Jan 2003
Beiträge: 13
mal generell ...

kann mir mal jemand erklären, was mit diesen Pfeilen (->) im Quelltext gemeint ist? Immer wenn die irgendwo auftauchen bin ich vollständig verwirrt.
Vielleicht find ich deshalb auch nicht heraus, an welcher Stelle vom Quelltext bestimmt wird, wie lange der Cookie "haltbar" ist. Oder steht das gar nicht da? Wenn nicht: wie macht man das?

Danke.
input
Mit Zitat antworten
  #5  
Alt 09.01.2003, 19:45:12
Ben20
Guest
 
Beiträge: n/a
Die -> sind bestandteile der Objektorientierten Programmierung unter PHP. Genaugenommen sind das Aufrufe von Objektfunktionen oder Variablen. Das kann man jetzt natürlich noch weiter erläutern, aber für den Anfang reicht der Satz erstmal.

Ein Cookie setzt man ja mit setCookie(). Der Dritte Parameter bestimmt dabei wie lange ein Cookie haltbar ist.


setCookie("MeinKeks", "Wert", time() + 3600);


würde als das Cookie MeinKeks mit dem Wert "Wert" und es ist bis jetzt in einer Stunde haltbar!

@The Semmel: Vor header darf nix stehen auch keine Leerzeile

Also so

----- (= oberste Zeile der Datei)

<?php
setcookie()
?>

wäre es schon falsch. PHP sendet die Leerzeile nämlich an den Browser und danach kannst Du dann weder ein Cookie setzen noch header() verwenden!
Mit Zitat antworten
  #6  
Alt 10.01.2003, 13:59:08
input input ist offline
Anfänger
 
Registriert seit: Jan 2003
Beiträge: 13
und warum ...

finde ich im obigen beispiel die stelle nicht, an der die haltbarkeit des cookies angegeben wird? Heißt das also, dass der cookie ewig lange haltbar wäre?

-----------

und was meint denn dieses $this vor den Pfeilen?

input
Mit Zitat antworten
  #7  
Alt 10.01.2003, 22:49:43
Ben20
Guest
 
Beiträge: n/a
$this ist auch Teil von OOP - Es ist eine Referenz auf das aktuelle Objekt. Wenn der dritte Parameter fehlt ist das Cookie nur solange haltbar bis man den Browser beendet!
Mit Zitat antworten
  #8  
Alt 12.01.2003, 18:30:34
McDoogle McDoogle ist offline
Anfänger
 
Registriert seit: Sep 2002
Ort: Nürnberg
Beiträge: 30
Du scheinst Dich mit Cookies auszukennen.

Wenn ich eine Session starte wird automatisch ein Cookie geschrieben, kann ich von dem die Haltbarkeit festlegen?
Mit Zitat antworten
  #9  
Alt 12.01.2003, 18:46:07
input input ist offline
Anfänger
 
Registriert seit: Jan 2003
Beiträge: 13
@ McDoogle

Schau dir mal diesen Thread an:
http://www.selfphp.com/forum/forum/s...&threadid=2987

Vielleicht hilft dir das ja, aber was bringt dir das überhaupt? Kannst du nicht genausogut einen Cookie nehmen?

input
Mit Zitat antworten
  #10  
Alt 12.01.2003, 20:29:56
Ben20
Guest
 
Beiträge: n/a
Bei Sessions wird nicht immer ein Cookie gesetzt, wenn der User nämlich keine Cookies aktzeptiert, wird die Sessionid per URL weitergeben!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:47:42 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt