Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] file_exists() gibt immer False zurück..

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] file_exists() gibt immer False zurück..

    Hallo,

    bin für meine Website gerade was wegen Avatar am machen, aber file_exists gibt immer False zurück.
    Das liegt warscheinlich daran, das mir der Webserver irgendwie den Zugriff auf die Datei sperrt.. wenn ich sie mit dem Browser aufrufen will, kommt immer 403... Ich weiss nicht worans liegt, Chmod ist soweit richtig gesetzt (alle ordner + dokumente 644).

    Verstehe das nicht, in nem andern Dokument funktionierts prima
    Hallo, ich bin eine Signatur!


  • #2
    Und jetzt?
    "Mein Name ist Lohse, ich kaufe hier ein."

    Kommentar


    • #3
      Und jetzt weiss ich nicht weiter und dachte vielleicht, das hier einer die loesung des problems kennt..

      PHP-Code:
      <?php
       
      function checkImg($nick) {
        
      $nickavatar "img/avatar/".$nick.".gif";
        if (!
      file_exists($nickavatar)) {
         
      $r "<img src=\"img/noPicture.png\" style=\"border:1px solid #013370;\" border=\"0\">";
        }
        elseif (
      file_exists($nickavatar)) {
         
      $size getimagesize($nickavatar);
         
      $r "<img src=\"$nickavatar\" style=\"border:1px solid #013370;\" border=\"0\"";
         if (
      $size[1] > 220) {
          
      $r .= " height=\"220\"";
         }
         if (
      $site[2] > 180) {
          
      $r .= " width=\"180\"";
         }
         
      $r .= ">";
        }
       return 
      $r;
      }
      ?>
      editiert von Chriz, bitte BBCode verwenden
      Hallo, ich bin eine Signatur!

      Kommentar


      • #4
        Warum postest du nicht gleich den Code?

        Du verwendest relative Pfade, vermutlich der Webpfad, den du im Browser angibst. PHP greift aber ueber das Dateisystem auf Dateien zu.
        "Mein Name ist Lohse, ich kaufe hier ein."

        Kommentar


        • #5
          Hm.. komm nicht ganz mit, ich glaube aber, du meinst, das PHP vom Wurzelverzeichnis aus die Datei sucht?
          Hallo, ich bin eine Signatur!

          Kommentar


          • #6
            Nein, nicht vom Wurzelverzeichnis, hier hab ich mal was dazu gepostet:
            PHP: Falsche Pfade bei include/require ohne include_path - phpfriend.de
            "Mein Name ist Lohse, ich kaufe hier ein."

            Kommentar


            • #7
              Ich krieg ja aber definitiv die Meldung 403, ob die Datei existiert oder nicht. Also wirds ja wohl kaum am Pfad liegen..
              Hallo, ich bin eine Signatur!

              Kommentar


              • #8
                Das heisst es nicht unbedingt, es heisst dass der Zugriff auf die Datei oder den Ordner verboten ist. Daraus kannst du nicht auf die Existenz der Datei schliessen.

                Wenn file_exists() FALSE zurueckliefert, existiert die Datei eben nicht. Aber selbst bei TRUE, kannst du daraus wieder nicht schliessen, dass die Datei auch ueber den Webserver zugreifbar ist. Wie gesagt, PHP greift ueber das Dateisystem des Servers zu, beim Zugriff ueber den Webserver gehts eben erst vom Webroot aus los, wenn ueberhaupt - schliesslich kannst du auch virtuelle Dateisystem damit aufsetzen (siehe Bootstrapping, Rewrite-Modul des Apache).

                Find doch erstmal raus, warum der Zugriff verboten ist und versuch die Datei ueber die Adresszeile im Browser zu oeffnen.
                Danach kannst du in PHP folgendes versuchen:
                PHP-Code:
                <?php
                $strWebPath 
                "/images/castle.jpg";
                $strServerPath $_SERVER["DOCUMENT_ROOT"] . $strWebPath;
                if (!
                file_exists($strServerPath)) {
                  die(
                "$strWebPath does not exist");
                }
                printf('<img src="%s" />'$strWebPath);
                ?>
                "Mein Name ist Lohse, ich kaufe hier ein."

                Kommentar


                • #9
                  Bist du sicher dass die Datei auch so existiert wie du sie im Browser aufrufst? Dateiname richtig, Groß/Kleinschreibung richtig? Wie hast du die Datei hochgeladen? Per PHP Upload und die Datei dann an seinen Platz geschoben? Oder hast du es per FTP gemacht?

                  Kommentar


                  • #10
                    Per FTP, Groß/Kleinschreibung ist richtig. Bin mir nicht wirklich sicher, da ja wie gesagt per Browser-Aufruf immer 403 kommt.
                    Warum der Zugriff verboten ist, weiss ich leider nicht. CHMOD stimmt. (Ordner 666, Datei(en) 644)
                    Hallo, ich bin eine Signatur!

                    Kommentar


                    • #11
                      Fehler gefunden, es lag doch an CHMOD >.< (775)
                      Hallo, ich bin eine Signatur!

                      Kommentar

                      Lädt...
                      X