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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
07.01.2003, 22:35:27
|
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 > 0 ;$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
|
08.01.2003, 08:18:57
|
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.
|
08.01.2003, 16:50:25
|
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
|
09.01.2003, 19:06:10
|
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
|
09.01.2003, 19:45:12
|
|
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!
|
10.01.2003, 13:59:08
|
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
|
10.01.2003, 22:49:43
|
|
$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!
|
12.01.2003, 18:30:34
|
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?
|
12.01.2003, 18:46:07
|
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
|
12.01.2003, 20:29:56
|
|
Bei Sessions wird nicht immer ein Cookie gesetzt, wenn der User nämlich keine Cookies aktzeptiert, wird die Sessionid per URL weitergeben!
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:32:03 Uhr.
|