o_O kennst Du die Geschichte von den Glaskugeln?
nicht?
naja, dann lass sie mir Dir kurz erzählen…
Früher gab es viele Leute die sich Magier, Hexen, Zauberer oder Druiden nannten. Alle kannten die Möglichkeit mit Glaskugeln das weiszusagen, was andere ihnen verschwiegen hatten, wenngleich nicht alle diese Fähigkeiten gleichgut nutzen konnten.
Doch leider drehte sich die Welt weiter und zwar gibt es noch immer Leute, die Glaskugeln benutzen können.
Doch leider ging die Firma pleite, die das Weltweite Monopol auf die Glaskugelfabrikation hatte und so konnte niemand mehr nachvollziehen was nicht klappte, wenn ein ander nicht genügend Informationen gab…
auf meiner Webseite versuche ich gerade, einen grafischen
Counter mit PHP einzurichten (ohne Datenbankanbindung).
Weiß jemand, woran das liegen könnte? PHP ist natürlich auf
dem Server aktiv…
Hmmmm. Hmmmm.
Ich habe ja gerade eine neue Glaskugel ausgepackt,
aber die ist nicht justiert. Sie sagt aber
„Der Counter ist .php, der Hoster unterstützt aber
nur <?php> in .html“?
ihr habt ja Recht! Habe gestern Abend nur geglaubt, da es ja lokal funktioniert, daß es an der PHP-Datei ja eigentlich nicht liegen könnte. War wohl schon reichlich spät, sorry.
Auch die Anzeige ist in den verschiedenen Browsern unterschiedlich: Mozilla zeigt gar nichts an, der IE ein Bild, daß er aber nicht findet (das rote x, wenn ihr versteht, was ich meine) und der Opera schreibt „Bild“ hin mit einem Rahmen drumherum.
Warning : fopen(counterdat0.txt): failed to open stream: Permission denied in /home/www/web941/html/counter.php on line 15 Warning: fputs(): supplied argument is not a valid stream resource in /home/www/web941/html/counter.php on line 16
Warning : fclose(): supplied argument is not a valid stream resource in /home/www/web941/html/counter.php on line 17
Das bedeutet, das PHP keine Schreibrechte auf den Ordner hat. Die musst su mit dem FTP-Programm erst setzen.
Weiterhin:
solltest du die in der URL übergebenen Variablen mit $_GET[’’] abrufen
fehlt nach dem else das { }
fehlt der Content-type-Header
ein leeres Array erzeugt man mit $var = array(); aber nicht mit $var[] = array(); denn damit erzeugst du array(0=>array()).
Mein Fehler…
Hallo
Ich habe dir dein Script kaputtkorregiert. Die Klammern nach dem else müssen wieder weg. Sonst wird der aktuelle Wert nicht gespeichert.
<?php : if (isset($\_GET['counternr'])) $counternr=$\_GET['counternr'];
else $counternr=0;
if (isset($\_GET['digits'])) $digits=$\_GET['digits']; else
$digits=0;
if (isset($\_GET['bildname'])) $bildname=$\_GET['bildname'];
else $bildname=0;
$counterfile="counterdat".$counternr.".txt";
if(file\_exists($counterfile))
{
$dat=file($counterfile);
$zaehler=$dat[0]+1;
}
else $zaehler=1;
Hallo
Ich habe dir dein Script kaputtkorregiert. Die Klammern nach
dem else müssen wieder weg. Sonst wird der aktuelle Wert nicht
gespeichert.
Hallo Johannes,
jetzt habe ich wieder das Problem, daß die Grafik nicht angezeigt werden kann und es (bei Direktaufruf) folgende Fehlermeldugen gibt:
Warning: fopen(counterdat0.txt): failed to open stream: Permission denied in /home/www/web941/html/counter.php on line 17
Warning: fputs(): supplied argument is not a valid stream resource in /home/www/web941/html/counter.php on line 18
Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web941/html/counter.php on line 19
Warning: Cannot modify header information - headers already sent by (output started at /home/www/web941/html/counter.php:17) in /home/www/web941/html/counter.php on line 44
Diese Fehlermeldungen sagen mir leider alle nichts, da ich gerade erst anfange, PHP zu lernen und der Counter ist mein erstes Skript… Also sorry für so manche dumme Frage.
Kerstin
<?php :: if (isset($\_GET['counternr'])) $counternr=$\_GET['counternr'];
else $counternr=0;
if (isset($\_GET['digits'])) $digits=$\_GET['digits']; else
$digits=0;
if (isset($\_GET['bildname'])) $bildname=$\_GET['bildname'];
else $bildname=0;
$counterfile="counterdat".$counternr.".txt";
if(file\_exists($counterfile))
{
$dat=file($counterfile);
$zaehler=$dat[0]+1;
}
else $zaehler=1;
auf welchem Stand bleibt der counter stehen?
Auf 1? dann wunderts mich nicht
Deinem Script fehlen offenbar die Schreibrechte um diese Datei anzulegen.
Nochmal: Ist die (text-)Datei auf dem Server vorhanden?
Warning: fopen(counterdat0.txt): failed to open stream:
Permission denied in /home/www/web941/html/counter.php on line
17
Warning: fputs(): supplied argument is not a valid stream
resource in /home/www/web941/html/counter.php on line 18
Warning: fclose(): supplied argument is not a valid stream
resource in /home/www/web941/html/counter.php on line 19
deutet darauf hin, dass das file nicht gefunden und nicht geschrieben werden kann…
Warning: Cannot modify header information - headers already
sent by (output started at
/home/www/web941/html/counter.php:17) in
/home/www/web941/html/counter.php on line 44
ist klar - wenn ne Fehlermeldung kommt können keine Header mehr ausgegeben werden…
Header werden vor dem Seitenaufbau geschickt um dem Browser mitzuteilen, dass es eine Grafik ist oder dass eine andere Seite aufgerufen werden soll oder dass eine .htaccess-Abfrage gestartet werden soll etc…
Diese Fehlermeldungen sagen mir leider alle nichts, da ich
gerade erst anfange, PHP zu lernen und der Counter ist mein
erstes Skript… Also sorry für so manche dumme Frage.
Schreibrechte…
wenn Du mit dem normalen FTP-Commandline-Tool arbeitest sollte ein
> chmod 755 counterscript.php
reichen…
wenn Du einen FTP-Client verwendest dann musst Du selbst danach suchen, wie man das umstellt…
Manche Clients ermöglichen auch Zwischeninputs durch den user…
einfach mal nachgucken…
wenn Du mit dem normalen FTP-Commandline-Tool arbeitest sollte
ein
> chmod 755 counterscript.php
reichen…
Ich denke, dass auf den ganzen Ordner Schreibzugriff erlaubt werden muss, da dort ja neue Dateien angelegt bzw. geändert werden sollen.
Also, Ordner und die enthaltenen counter…txt auf Schreibzugriff für alle stellen. Kann eigentlich jedes FTP-Programm.
Ich denke, dass auf den ganzen Ordner Schreibzugriff erlaubt
werden muss, da dort ja neue Dateien angelegt bzw. geändert
werden sollen.
Also, Ordner und die enthaltenen counter…txt auf
Schreibzugriff für alle stellen. Kann eigentlich jedes
FTP-Programm.
wenn die Datei nicht vorhanden ist und erstellt wird erhält sie die gleichen Rechte wie die Datei, die sie erstellt hat…
Ausser man setzt die rechte explizit anders…
wenn die Datei nicht vorhanden ist und erstellt wird erhält
sie die gleichen Rechte wie die Datei, die sie erstellt hat…
Ausser man setzt die rechte explizit anders…
möglich. Ich bin von Windows ausgegangen, wo die Rechte vom Ordner übernommen werden, nicht von der erstellenden Datei.