fopen erstellt weder Datei noch Exception

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • fopen erstellt weder Datei noch Exception

    Hallo liebe Leute...

    ich glaub wenn ich so weitermache werde ich aus dem PHP Forum gebannt ;)

    Also ich habe ein kleines Problem.
    Ich programmiere gerade ein Loggingsystem das täglich einen Ordner erstellt und dort drinne einige Logdateien anlegt.
    Soweit zur theorie, hier der Code:

    Quellcode

    1. function addLogToFile($intTyp, $intBenutzer, $strBeschreibung, $strErgebnis) {
    2. $strFolder=$this->getPathToLog()."/".date('dmy');
    3. if(file_exists($strFolder) && is_dir($strFolder)) {
    4. if($this->createFile($strFolder,$this->getTypName($intTyp).".log")!=false)
    5. return "Datei erstellt: ".$this->getTypName($intTyp).".log"; // @todo DATEI FÜLLEN!
    6. else return " Datei konnte nicht erstellt werden <br/>".error_reporting(E_ALL); // HIER GEHT ER REIN.
    7. }
    8. else {
    9. if($this->createFolder($strFolder))
    10. $this->addLogToFile($intTyp, $intBenutzer, $strBeschreibung, $strErgebnis);
    11. }
    12. }
    13. function getTypName($intIndex) {
    14. return $this->typ[$intIndex];
    15. }
    16. //EDIT hier noch die createFile Methode:
    17. function createFile($strPath,$strFilename) {
    18. return fopen($strPath."/".$strFilename,"a+");
    19. }
    Alles anzeigen


    Typ enthält ein paar bezeichnungen von denen man sich eine aussuchen kann und dann wird die Datei so genannt: (z.B. trace, fail oder so).
    So, er gibt folgendes aus:
    Datei konnte nicht erstellt werden
    341


    Also den Ordner erstellt er, die Datei nicht aber ne Exception bekomm ich auch nciht (auch nicht mit try-catch).

    Ich habe langsam echt keine Ahnung mehr warum.
    Ich lasse mir auch ausgeben wo er die Datei ablegen muss und wie sie heißt und so und alle stimmt. :( (geiles deutsch...)

    Danke für eure Hilfe^^

    Thimo

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von F0kus ()

  • Liegt daran dass PHP innerhalb des WebServers ausgeführt wird und somit auch dessen Berechtigungen hat.
    Normalerweise läuft der WebServer als "nobody" oder sowas ähnliches. D.h. der ordner wo's hinkommt, muss natürlich "nobody" gehören bzw. "nobody" muss reinschreiben dürfen.
    Mit 777 kann jeder lesen/schreiben. Workaround aber sicherheitsproblem. Kommt halt drauf an wer auf den Rechner Zugriff hat und wer das lesen dürfen soll usw.