WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 19.01.2002, 19:50   #1
Gironimo
Veteran
 
Registriert seit: 30.04.2000
Alter: 46
Beiträge: 490


Böse 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
Gironimo ist offline   Mit Zitat antworten
Alt 19.01.2002, 19:58   #2
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard Re: IIS:PHP "Permission denied..."!

Zitat:
Original geschrieben von Gironimo
$fd = fopen($countfile,"r+");
Boeh - da hrieg ich immer SO eine Hals, wenn wer einfach ein "open" macht, ohne den Filehandle nacher auf Gültigkeit zu testen.
Aber auch ohne Test sagt er die ja eh alles .....
Zitat:
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
Was heisst wohl "Permission denied" ?????
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"!
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 19.01.2002, 23:16   #3
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard

Das ist ja schlimmer als ich dachte. Jetzt bewertet _m3 schon PHP Programme

Zitat:
Kann der IIS nicht auf externe Dateien zugreifen?
Du musst die Schreibrechte in dem Verzeichnis wo das Script ist aktivieren

Ausserdem sollte flock angewendet werden da es sonst passieren kann das der Counter plötzlich wieder bei 1 beginnt.
Philipp ist offline   Mit Zitat antworten
Alt 19.01.2002, 23:53   #4
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

LOL

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.
Und dabei ist es egal, ob das open in Perl, PHP, C, Pascal, VB oder Ruby passiert.
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 20.01.2002, 04:38   #5
Gironimo
Veteran
 
Registriert seit: 30.04.2000
Alter: 46
Beiträge: 490


Standard

@_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
Gironimo ist offline   Mit Zitat antworten
Alt 20.01.2002, 08:20   #6
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard

Hier die Fassung mit Flock und Filehandler Überprüfung

PHP-Code:
<?php 
$countfile 
"count.dat"
(!
file_exists($countfile)) ? $fd fopen($countfile,"w+") : $fd fopen($countfile,"r+"); 
if (
$fd && flock($fd2)) {
      
$count fgets($fd,100); 
      (!
$count) ? $count=$count++;
      
rewind ($fd);
      
fwrite ($fd$count); 
 } else { 
      echo 
"Fehler! Kann nicht auf die Datei $countfile zugreifen";
      exit;
}
flock($fd3);
fclose ($fd);

echo <<<site
<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]/images/gironimo.jpg[/img]</p> 


<font color="#666666">[b]<font size="1" class="noformat">SEND ME AN 
[email="gironimo20@gmx.at"]E-MAIL[/email]!</font>[/b]</font></p> 
</div> 
</td> 
</tr> 
<tr> 
<td><div align="center">Sie sind der [b]" . $count . ".[/b] Besucher</div> 
</td> 
</tr> 
</table> 
</body> 
</html>
site;
?>
Philipp ist offline   Mit Zitat antworten
Alt 20.01.2002, 10:25   #7
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Für ein PHP-Script wunderschön
Vor allem die Nutzung des Ternären VErgleichoperators!

Was ich aber in der Doku nicht gefunden habe: gibt es eine Möglichkeit, die Fehlermeldung auszugeben (vergleichbar mit Perls $!)?
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 20.01.2002, 10:50   #8
mqs
Master
 
Registriert seit: 08.05.2001
Alter: 43
Beiträge: 533


mqs eine Nachricht über ICQ schicken
Standard

Könnte es das sein:
Hast den
CHMOD=777
gesetzt?
____________________________________
http://www.schmausen.at
Dein Infoportal für Mittagsmenüs in Klagenfurt
mqs ist offline   Mit Zitat antworten
Alt 20.01.2002, 11:35   #9
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard

_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 ist offline   Mit Zitat antworten
Alt 20.01.2002, 21:16   #10
Gironimo
Veteran
 
Registriert seit: 30.04.2000
Alter: 46
Beiträge: 490


Daumen hoch @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
Gironimo ist offline   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 an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:11 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag