Problem mit imagefunktion unter unix

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit imagefunktion unter unix

    Hola beisammen,

    wird nen ordentlicher Text, bin mit dem Prob schon in 3 foren unterwegs gewesen, ohne es lösen zu können...

    folgendes Problem: auf dem unix Rechner meines Providers läuft ein wichtiges Script von mir nicht.
    erst dachte ich, es liegt an der GD-Lib des Providers, scheint aber nicht der Fall zu sein.
    Das Problem tritt in dem Moment auf, in dem ich auf Bilder in einem Unterordner zugreifen will.
    und zwar bricht das Script in dem Moment ab, in dem ich die createfromjpeg() aufrufe.


    Folgendes Script ist dient nur dazu, den Fehler zu kennzeichnen, ist also recht Sinnfrei,
    Soll nur verdeutlichen, an welcher Stelle das Script abbricht!
    (Soll heissen: in der Ausgabe erscheint NACHHER!!! oder eben nicht!)

    das Script verwendet die Systemvariable __file__, . es gibt sicherlich sinnigere Variablen, um einen absoluten Pfad zu erstellen, aber es funktioniert und ist definitiv nicht Ursache des Fehlers.

    Mit relativen Pfad war nicht viel zu bestellen, deshalb der absolute.

    Die Rechte für alle beteiligten Ordner/Scripte/Dateien sind richtig gesetzt! (auch schon mit is_readable()überprüft.)

    so, es gibt
    - das Script,
    - unterhalb des Scriptes einen Ordner namens "upload"
    - in dem Ordner eine datei namens image.jpg



    PHP Code:

    <?

    error_reporting(15);

    $path = dirname(__file__);

    echo "path-->".$path."<br>";


    $image = $path."/upload/image.jpg";

    echo "path zum image-->".$image."<br>";

         echo "VORHER<br>";
         $img = imagecreatefromjpeg($image);
         echo "NACHHER!!!!";

    ?>
    führt zur Ausgabe:


    path-->/kunden/80158_31224/webseiten/checks
    path zum image-->/kunden/80158_31224/webseiten/checks/upload/image.jpg
    VORHER

    Keine Ausgabe von "NACHHER!!!"
    Script bricht also ab bei imagecreatefromjpeg

    liegt die Bilddatei jedoch im gleichen Ordner wie das ausführende Script funktioniert das Script..


    PHP Code:
    :

    <?

    error_reporting(15);

    $path = dirname(__file__);

    echo "path-->".$path."<br>";


    $image = $path."/image.jpg";

    echo "path zum image-->".$image."<br>";

         echo "VORHER<br>";
         $img = imagecreatefromjpeg($image);
         echo "NACHHER!!!!";

    ?>
    Ausgabe:

    path-->/kunden/80158_31224/webseiten/checks
    path zum image-->/kunden/80158_31224/webseiten/checks/image.jpg
    VORHER
    NACHHER!!!!


    Ausgabe von "NACHHER!!!"
    Script funzt!


    Hat jemand ne Ahnung, woran das liegen könnte bzw auch gleich ne Lösung parat?!

    hier für die interessierten die phpinfo:
    http://www.schmidts-autoaufbereitung...nd/phpinfo.php


    zur Erinnerung:
    es liegt sicher nicht an einer falschen Rechtevergabe
    Alle Beteiligten Scripte/Ordner/Dateien haben lese/schreib/ausführrecht für ALLE

    Gruß blake
    Last edited by dablake; 05-11-2004, 23:44.

  • #2
    ich würd' mal beim error_reporting beginnen ... "15" kommt mir komisch vor ... stells ganz scharf und schau nach, was für ne fehlermeldung kommt.
    Kissolino.com

    Comment


    • #3
      Re: Problem mit imagefunktion unter unix

      wird nen ordentlicher Text, bin mit dem Prob schon in 3 foren unterwegs gewesen, ohne es lösen zu können...
      oh nein, bitte nicht schon wieder dieser thread.
      liegt die Bilddatei jedoch im gleichen Ordner wie das ausführende Script funktioniert das Script..
      das hast du aber beim letzten mal nicht geschrieben!
      Script bricht also ab bei imagecreatefromjpeg
      na, dann scheint ja der pfad nicht zu stimmen ....

      warum das script dann gleich abbricht?
      warum nichts im error_log steht?

      wie gesagt, setz das error_reporting auf E_ALL ...

      ach ja, schau mal bei imagecreatefromjpeg ...

      Im Fehlerfall gibt ImageCreateFromJPEG() eine leere Zeichenkette zurück. Zudem wird eine Fehlermeldung erzeugt, die im Browser als Verbindungsabbruch dargestellt wird.
      schau auch mal die 'User Contributed Notes'
      Last edited by derHund; 06-11-2004, 06:49.
      Die Zeit hat ihre Kinder längst gefressen

      Comment


      • #4
        Thx, damit lässt sich doch schonmal arbeiten!

        frag mich allerdings doch,
        was an dem Pfad falsch sein soll,
        den unterordner ausfindig zu machen sollte ja nicht so schwer sein,
        frag mich inzwischen, ob die Imagefunktionen bei meinem Provider nicht vielleicht "von anderer Stelle aus" ausgeführt werden als das ausführende script, soll heissen, dass ich einen anderen Pfad brauche...

        Comment


        • #5
          http://de2.php.net/imagecreatefromjpeg

          I played with "imagecreatefromjpeg()" function and, after a few tests, I found that the filename that it requires as parameter should be only a simple filename: the function does not work if in the string of the filename is specified a path to that file.
          The quickest workaround found: do a chdir() to the directory of your image file before try to use "imagecreatefromjpeg()" with your file as parameter.
          I did not test the other functions (imagecreatefromgd2(), imagecreatefromgd(), imagecreatefromgif() etc.), but I suppose that they work in the same way.
          I think that little trick should be specified in the manual.

          -----------------------------------

          Faizt: Immer im Richtigen Manuell nachsehen!

          SelfPhp ist Schrott!

          Comment


          • #6
            hmm,

            das statement fand ich gestern abend schon fragwürdig.

            mit imagecreatefrom... habe ich keinerlei probleme, dateien in unterordnern oder wo auch immer im filesystem anzusprechen.

            vielleicht ist ja euer php kaputt? oder meines?
            Die Zeit hat ihre Kinder längst gefressen

            Comment


            • #7
              hm..ich hab eben auch nochmal nachgesehen wie ich das mal gemacht hab, aber da hab ich auch einfach den pfad angegeben und es funktioniert ohne probleme
              mfg - sagg

              Comment


              • #8
                hmm,
                OffTopic:
                irgendwie wäre es ja auch komisch, wenn alle php-funktionen, die auf dateien zugreifen, das über pfade und urls hinweg könnten, und die imagecreatefroms die einzigen wären, die das nicht könnten ...
                Die Zeit hat ihre Kinder längst gefressen

                Comment


                • #9
                  hi hund!,

                  ich finds auch unlogosch und verstehs doch auch nicht!

                  leider funzt der workaround per chdir() bei mir ebenfalls nicht.

                  was ich aber weiss:

                  foldendes Script "funktioniert" (es ist sinnlos...) bei mir zuhause fein, bei meinem Provider jedoch nicht:

                  PHP Code:
                  <?
                  error_reporting(E_ALL);

                  echo "doc_root: ".$_SERVER['DOCUMENT_ROOT'];
                  echo "<br>";

                  echo "Datei ist readable: ".is_readable("./upload/image.jpg")."<br>";

                  echo getcwd()."<hr>";

                  chdir("./upload"); // wechsel des CDW in Unterordner Upload

                  echo getcwd()."<hr>";

                       echo "VORHER<br>";
                       $img = imagecreatefromjpeg("image.jpg");
                       //imagedestroy($img);
                       echo "!!!NACHHER!!!!";

                  ?>
                  - zum testen des Scriptes braucht man unterhalb des Scriptes einen Ordner mit namen "upload" und darin ein Bild namens image.jpg

                  - es "funktioniert" wenn der String "!!!NACHHER!!!" ausgegeben wird.

                  und das kaputteste daran: wenn das image im gleichen Ordner wie das ausführende Script liegt funktioniert es..

                  hier das entsprechende (ebenfalls sinnlose) Script...


                  PHP Code:
                  <?
                  error_reporting(E_ALL);

                       echo "VORHER<br>";
                       $img = imagecreatefromjpeg("image.jpg");
                       echo "NACHHER!!!!";

                  ?>
                  Da gibt es nichts zu verstehen, es ist einfach mal Sinnfrei!

                  Gruß Blake

                  Comment


                  • #10
                    Gibt es in den Apache-Logs keine Hinweise? Auch falls PHP so heftig abraucht, daß es nicht mal mehr eine Fehlermeldung ausgegeben kriegt, sollte dort ein Hinweis stehen.

                    Comment

                    Working...
                    X