![]() |
IIS:PHP "Permission denied..."!
folgendes Problem: ich hab einen Counter in einem PHP Skript eingebaut, allerdings bringt der Browser Fehlermeldungen. Im internen Browser vom Editor PHP Coder funktioniert es.
Ohne Counter funktioniert es. Die Einstellungen am IIS sollten eigentlich stimmen. der Source: <?php $countfile = "count.dat"; if(! file_exists($countfile)){ $fd = fopen($countfile,"w+"); $count=0; } else { $fd = fopen($countfile,"r+"); $count = fgets($fd,100); if (! $count) $count=0; } rewind($fd); $count++; fwrite ($fd, $count); fclose ($fd); echo "<html> <head> <title>Gironimo's Site</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"> <link rel=\"stylesheet\" href=\"styles.css\" type=\"text/css\"> </head> <body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#000000\" vlink=\"#000000\" alink=\"#000000\"> <table width=\"100%\" border=0 cellspacing=0 cellpadding=0 height=100% align=center> <tr> <td> <div align=\"center\"> <img src=\"/images/gironimo.jpg\" width=493 height=162></p> <font color=\"#666666\"><font size=\"1\" class=\"noformat\">SEND ME AN <a href=\"mailto:gironimo20@gmx.at\">E-MAIL</a>!</font></font></p> </div> </td> </tr> <tr> <td><div align=\"center\">Sie sind der " . $count . ". Besucher</div> </td> </tr> </table> </body> </html>" ?> die Fehlermeldungen: Warning: fopen("count.dat", "r+") - Permission denied in G:\Inetpub\wwwroot\php\index.php on line 8 Warning: Supplied argument is not a valid File-Handle resource in G:\Inetpub\wwwroot\php\index.php on line 9 Warning: Supplied argument is not a valid File-Handle resource in G:\Inetpub\wwwroot\php\index.php on line 14 Warning: Supplied argument is not a valid File-Handle resource in G:\Inetpub\wwwroot\php\index.php on line 18 Warning: Supplied argument is not a valid File-Handle resource in G:\Inetpub\wwwroot\php\index.php on line 19 Kann der IIS nicht auf externe Dateien zugreifen? Der Include-Befehl funktioniert auch nicht, ich hab nämlich probiert, den Counter in einem externen File einzubinden. Aber ich hab gehört, dass der Include-Befehl unter Windows generell nicht funktioniert.(?) Der Link: Mein php-Testserver Thx for any advice Gironimo |
Re: IIS:PHP "Permission denied..."!
Zitat:
Aber auch ohne Test sagt er die ja eh alles ..... Zitat:
Die restlichen Fehler sind Folgefehler, da Du den Filehandle nach dem öffnen nicht überprüfst. Und weil ich grad so grantig bin: Was passiert denn, wenn zwei Leute gleichzeitig die Seite laden und in das File schreiben wollen???? Stichwort: "flock"! |
Das ist ja schlimmer als ich dachte. Jetzt bewertet _m3 schon PHP Programme :eek: ;)
Zitat:
Ausserdem sollte flock angewendet werden da es sonst passieren kann das der Counter plötzlich wieder bei 1 beginnt. |
:lol: LOL :D
Na so schlimm is ned: PHP sux, Perl rulez - damit die Weltordnung für den Philipp wieder stimmt ;) Meine Bewertung bezog sich auf die mangelnde Sauberkeit beim Programmieren, vor allem, wenn es um erwartbare Fehler geht. Und eine Fehlerprüfung nach einem open muss sein, wie dieser Thread wieder schön zeigt. :D Und dabei ist es egal, ob das open in Perl, PHP, C, Pascal, VB oder Ruby passiert. |
@_m3
ich muss zugeben, ich hab den Source nur kopiert (von der CD zum Buch "PHP 4", BHV-Verlag), weil ich bin grad im Erlernen von PHP. Danke für den Hinweis. Wennst bitte so nett wärst, mir mitzuteilen, wie ich den Filehandler überprüfen soll? Ist damit "flock()" gemeint? Nachdem es scho a bisserl spät is, geh ich zuerst schlafa, bin grad erst vom Ball zruck und werd mir das so gegen heut Nachmittag anschaun. hu Gironimo |
Hier die Fassung mit Flock und Filehandler Überprüfung :)
PHP-Code:
|
Für ein PHP-Script wunderschön :)
Vor allem die Nutzung des Ternären VErgleichoperators! :cool: Was ich aber in der Doku nicht gefunden habe: gibt es eine Möglichkeit, die Fehlermeldung auszugeben (vergleichbar mit Perls $!)? |
Könnte es das sein:
Hast den CHMOD=777 gesetzt? |
_m3:
Ist mir zumindest nicht bekannt. PHP gibt aber standardmässig Fehlermeldungen von sich wenn etwas mal nicht funktioniert. mqs: Das ist kein Unix Server sondern Windows 2000. Aber genau die fehlenden Schreibrechte dürften das Problem sein :) |
@Philipp
Vielen Dank, es funktioniert! Ich musste ziemlich rigoros die Zugriffsrechte im Web-Ordner ändern, dh ich hab mal alle zuerst rausgelöscht und anschließend neu angelegt.
Also vielen Dank. My PHPConstructionPage |
Zitat:
|
Zitat:
|
Danke an Spaßvogel
Nämlich dafür, dass jemand meinen Counter-Wert meiner (Test-) HP (siehe Sig) erhöht hat.
Hab schön gstaunt, als ich den Wert gesehen hab (fühlte mich soooo :cool: ), hab mir aber gleich denken müssen, dass da was faul ist. Ein Spaßvogel hat offensichtlich auf "F5" gedrückt und so 200 Hits raufgezählt. Der Server hat natürlich IP und Uhrzeit mitgeloggt. :lol: :roflmao: :lol: Stört mich aber nicht. Es hat mich nur darauf aufmerksam gemacht, dass so ein Counter von Außen sehr manipulierbar ist. Weiß wer, wie man sowas unterbinden kann? Möchte schon einen seriösen Wert im Counter haben. |
entweder mit cookies oder mit ip adresse aber im endeffekt würd ich sagen, dass es nicht 100%ig geht...
|
Aber 99% ;) Hier ein Auszug der Variante mit IP Logging:
PHP-Code:
|
toller Service! Doch leider scheint es nicht ganz zu klappen.
Wenn ich selbst die Seite aufrufe, funktioniert es wie gewünscht. Aber um ganz sicherzugehen hab ich schnell einen Freund angerufen. Wenn er die Seite aktualisiert tut's der Counter auch. PHPConstr.Page Momentan ist der Zähler bei 120. Könnt ihr probieren, ob er Counter beim Aktualisieren raufzählt? Danke. Gironimo |
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag