[erledigt] Berechtigungsprobleme Php / IIS

Alles, was PHP betrifft, kann hier besprochen werden.

[erledigt] Berechtigungsprobleme Php / IIS

Postby Thomas Br » 27. January 2008 11:26

schönen juten tach zusammen ...

folgendes problem tut sich mir auf:
Habe für einen bekannten eine seite in php geschrieben und da er leider keine Mysql in seinem paket hat aber PHP parsen kann habe ich mir gedacht schreib das ganze in ne CSV datei und feddich-
gesagt getan bei mir local ausprobiert-( geht !
Hochgeladen aber da ging nix mehr !
Beim fOpen schmeisst er mir noch nicht mal einen Fehler ? er Ignoriert das ganze einfach !

leider komme ich an keine "Logs" dran-

als ich mir dann noch mal die phpInfo(); ausgabe angeschaut habe habe ich bemerkt das das ganze unter nem WIN-NT IIS server läuft.
wobei url_fopen auf True steht ...

Wie und wo kann ich(oder muss ich gar nicht ?) da Berechtigungen für die CSV Datei setzen ?
Last edited by Thomas Br on 30. January 2008 07:55, edited 1 time in total.
User avatar
Thomas Br
 
Posts: 30
Joined: 24. June 2004 19:08
Operating System: Windows 7 x64 Ultimate

Postby Scory » 27. January 2008 12:30

>Beim fOpen schmeisst er mir noch nicht mal einen Fehler ? er Ignoriert das ganze einfach !

Das dürfte das kleinste Problem sein - da ist einfach der Errorlevel zu grob gesetzt (er sollte bei Testumgebungen auf E_ALL stehen) und/oder die Fehlerausgabe unterdrückt. Schau Dir in php.ini die entsprechenden Konfigurationsdirektiven an und passe sie entsprechend an.

Bekommt fopen() einen "einfachen" Dateinamen mit oder etwas "komplizierteres" (einen vollen Pfad, einen relativen Pfad, gar eine URL etc.)? Gerade bei relativen Pfadnamen (wobei ein simpler Dateiname genau genommen auch nur ein relativer Pfadname ist) herrscht zwischen verschiedenen Webservern Uneinigkeit, welches das "current directory" ist: bei Apache ist es meistens das Verzeichnis, wo das Script steht, bei Xitami ist es der DOCUMENT_ROOT (egal wo das Script steht) usw. - ich denke, dass man in dieser Richtung weiter suchen muss.
Scory
 

Postby Thomas Br » 27. January 2008 22:29

Scory wrote:>Beim fOpen schmeisst er mir noch nicht mal einen Fehler ? er Ignoriert das ganze einfach !

Das dürfte das kleinste Problem sein - da ist einfach der Errorlevel zu grob gesetzt (er sollte bei Testumgebungen auf E_ALL stehen) und/oder die Fehlerausgabe unterdrückt. Schau Dir in php.ini die entsprechenden Konfigurationsdirektiven an und passe sie entsprechend an.

Wenn ich an die php.ini dran kommen würde wäre das ja kein problem...
leider ist das wo die Site drauf läuft kein Root-Server -
und dann auch noch in Mexico ... und das setzen des ErrorLevels per Befehl in der Page zeigt auch nichts an...

Bekommt fopen() einen "einfachen" Dateinamen mit oder etwas "komplizierteres" (einen vollen Pfad, einen relativen Pfad, gar eine URL etc.)? Gerade bei relativen Pfadnamen (wobei ein simpler Dateiname genau genommen auch nur ein relativer Pfadname ist) herrscht zwischen verschiedenen Webservern Uneinigkeit, welches das "current directory" ist: bei Apache ist es meistens das Verzeichnis, wo das Script steht, bei Xitami ist es der DOCUMENT_ROOT (egal wo das Script steht) usw. - ich denke, dass man in dieser Richtung weiter suchen muss.


Also der Dateiname ist das kleinere Problem (data.csv) alles klein geschrieben.
alles schon ausprobiert mit gesamtem Pfad und relativem sowie auch dem kompletten pfad ala Windows :x
hat alles nix gebracht ;(
aber in der phpinfo wird ja alles richtig angezeigt ...
User avatar
Thomas Br
 
Posts: 30
Joined: 24. June 2004 19:08
Operating System: Windows 7 x64 Ultimate

Postby Wiedmann » 27. January 2008 22:46

Fang doch einfachmal mal beim Anfang an und schreibe mit fopen() was (einen simplen String) ihn eine Datei, und lese das anschliessend wieder aus und zeige es an.

Mit welchem Code machst du dann diesen Test genau und was passiert?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Thomas Br » 29. January 2008 16:54

Wiedmann wrote:Fang doch einfachmal mal beim Anfang an und schreibe mit fopen() was (einen simplen String) ihn eine Datei, und lese das anschliessend wieder aus und zeige es an.

Mit welchem Code machst du dann diesen Test genau und was passiert?


Hallo Wiedmann,

habe es heute mal mit was ganz einfachem versucht (wie du meintest)
hier mal der Code
Code: Select all
<?php
   ini_set("error_reporting","E_ALL");
   ini_set("display_errors","On");
   $datei=fopen("counter.txt","r");
   $file_size=filesize("counter.txt");
   $counter=fread($datei,$file_size);
   fclose($datei);
   $counter++;
   $datei= fopen("counter.txt","w");
   $output = fwrite($datei, $counter);
   fclose ($datei);
?>

nix rührt sich ...
User avatar
Thomas Br
 
Posts: 30
Joined: 24. June 2004 19:08
Operating System: Windows 7 x64 Ultimate

Postby Scory » 29. January 2008 17:22

Sind auch arg wenig echo's drin - wie wäre es mal mit ein paar Debug-Ausgaben?
Scory
 

Postby Thomas Br » 29. January 2008 17:34

Scory wrote:Sind auch arg wenig echo's drin - wie wäre es mal mit ein paar Debug-Ausgaben?


Ja nee is klar ...
echo - en tut er aber er gibt nix anderes als die festen strings aus -
Den Datei Inhalt gibt er mir nicht zurück -
User avatar
Thomas Br
 
Posts: 30
Joined: 24. June 2004 19:08
Operating System: Windows 7 x64 Ultimate

Postby sari42 » 29. January 2008 20:16

und das setzen des ErrorLevels per Befehl in der Page zeigt auch nichts an...
statt
Code: Select all
ini_set("error_reporting","E_ALL");

muß es
Code: Select all
error_reporting(E_ALL);
heißen.
Last edited by sari42 on 30. January 2008 01:33, edited 1 time in total.
sari42
 
Posts: 800
Joined: 27. November 2005 18:28

Postby Scory » 29. January 2008 21:42

Thomas Br wrote:echo - en tut er aber er gibt nix anderes als die festen strings aus -
Den Datei Inhalt gibt er mir nicht zurück -


Dann eben nicht.
Scory
 

Postby sari42 » 30. January 2008 01:27

Thomas Br wrote:echo - en tut er aber er gibt nix anderes als die festen strings aus
ich seh' keine "festen strings"!?
Den Datei Inhalt gibt er mir nicht zurück -

Soll "er" ja auch gar nicht - nur den Wert in der Datei hochzählen und das tut "er", wenn php (bzw. IUSR...) ausreichende ("Modify"-) Rechte hat, was man der Ausgabe von phpinfo() leider nicht entnehmen kann.
sari42
 
Posts: 800
Joined: 27. November 2005 18:28

Postby Thomas Br » 30. January 2008 07:54

Also noch mal...

Ich habe hier nur den "wichtigen" code reingestellt - ohne die Echo ausgaben - die nach jedem schritt erfolgen sollen.

Auf meinem Testsystem zuhause zählt er mir die Datei korrekt hoch -
(Apache 2 mit Php 5)

auf dem Server jedoch (W2003, IIS mit php5) bleibt der Inhalt der Datei immer bei 1.
Also schließe ich daraus, das nicht die nötigen Berechtigungen für fOpen vorliegen.
User avatar
Thomas Br
 
Posts: 30
Joined: 24. June 2004 19:08
Operating System: Windows 7 x64 Ultimate

Postby sari42 » 30. January 2008 13:03

>Also schließe ich daraus, das nicht die nötigen Berechtigungen für fOpen vorliegen.
Dann sollte php das melden, falls Du das error_reporting korrigiert hast.
sari42
 
Posts: 800
Joined: 27. November 2005 18:28

Postby Thomas Br » 31. January 2008 06:15

Ja das error Reporting hatte ich Korrigiert ! :?

Einen Fehler schmeisst er mir nur wenn die Datei nicht vorhanden ist ! :x
Muss ich noch mal mit dem kollegen reden das er entweder nen vernünftigen Provider nimmt oder seinen Vertrag bei dem aktuellen erweitert um ne DB-Anbindung !
deshalb abwarten und ...
User avatar
Thomas Br
 
Posts: 30
Joined: 24. June 2004 19:08
Operating System: Windows 7 x64 Ultimate

Postby sari42 » 31. January 2008 11:06

Jo, ein vernüftiger Provider kann nicht schaden.

Liegt's denn am Lesen oder Schreiben?

Du solltest die .txt Datei mit php erzeugen lassen, damit sie den richtigen owner bekommt:
Code: Select all
$counter=0;
if(file_exists($fn)) {
    $file_size = filesize($fn);
    ....read stuff...
}

$counter++;
...write stuff...
sari42
 
Posts: 800
Joined: 27. November 2005 18:28


Return to PHP

Who is online

Users browsing this forum: No registered users and 2 guests