![]() |
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 |
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag