Datei Überprüfung

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

  • Datei Überprüfung

    Hallo,

    habe folgendes Script geschrieben:

    Leider liefert mir das script bei jedem Wert von "isbn" das echo Existiert. Die Variable ISBN wird problemlos übergeben 2 Zeilen vorher. Ich komm nicht auf den Fehler. Bitte um Hilfe!

    Danke!

    Edit:

    hier nochmals der "vollständige" code:

    PHP-Code:
    $ffopen="http://ec1.images-amazon.com/images/P/$isbn.01._SCLZZZZZZZ";

    if ( @
    fopen($ffopen'r') ) {
        echo (
    "<img width='100' src='$ffopen'>");
    } else {
        echo (
    "nicht");

    wie gesagt, beim aufrufen, wird das Bild sofern es existiert, angezeigt, wenn nicht passiert aber rein gar nichts. woran könnte das liegen?

  • #2
    Du solltest mal die Regeln hier lesen, da steht etwas vom @-Operator und wie dieser die Fehlersuche erschweren kann.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      entferne erstmal das @-zeichen vor fopen, damit unterdrückst du fehlermeldungen.

      gruß
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Danke, soweit war ich leider schon. Auch ohne @ändert sich gar nichts. Existierende Bilder werden angezeigt, existiert ein Bild nicht, kommt gar nichts, und nicht wie es eigentlich sollte "nicht".

        Weitere Ideen?

        Vielen Dank!

        Kommentar


        • #5
          Original geschrieben von r00li
          Existierende Bilder werden angezeigt, existiert ein Bild nicht, kommt gar nichts, und nicht wie es eigentlich sollte "nicht".
          Dein Verständnis von einem HTTP-Request ist mangelhaft.

          Wenn eine Ressource angefordert wird, die nicht existiert, ist das keineswegs ein "Verbindungsfehler" (nur bei einem solchen würde fopen false zurückliefern).

          IdR. wird der Webserver mit einem Statuscode 404 oder 410 antworten. Einen Response Body sollte er dabei auch noch mitliefern.

          Dein naiver Ansatz ist also untauglich.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Existierende Bilder werden angezeigt, existiert ein Bild nicht, kommt gar nichts, und nicht wie es eigentlich sollte "nicht".
            Hast du den Quellcode angeschaut ? Kann es nicht sein, dass dort ein img Tag mit falscher Source drin steht ?

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Danke für die Netten wort

              Warum funktioniert dann das hier :

              http://www.foruni.de/buch/test.php

              Der Code:

              PHP-Code:
              <?php
              if ( @fopen('http://ec1.images-amazon.com/images/P/3540400710.01._SCLZZZZZ''r') ) {
              echo (
              "http://ec1.images-amazon.com/images/P/3540400710.01._SCLZZZZZ<br>");
                  echo (
              "existiert<br>");
              } else {
              echo (
              "http://ec1.images-amazon.com/images/P/3540400710.01._SCLZZZZZ<br>");
                  echo (
              "existiert nicht<br><br>");
              }

              if ( @
              fopen('http://ec1.images-ama''r') ) {
              echo (
              "http://ec1.images-ama<br>");
                  echo (
              "existiert<br>");
              } else {
              echo (
              "http://ec1.images-ama<br>");
                  echo (
              "exisitert nicht<br>");
              }

              ?>

              Kommentar


              • #8
                Warum funktioniert dann das hier :
                Genau desswegen
                Wenn eine Ressource angefordert wird, die nicht existiert, ist das keineswegs ein "Verbindungsfehler" (nur bei einem solchen würde fopen false zurückliefern).
                Du hast keinen gültigen Domainnamen also wird wohl keine Verbindung zu stande kommen

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Original geschrieben von r00li
                  Warum funktioniert dann das hier
                  Weil das ein vollkommen anderer Fall ist - und wenn du dir wenigstens ein bisschen Gedanken über die Funktionsweise von HTTP gemacht hättest, bevor du loslegst, dann sollte dir das auch klar sein ...

                  ec1.images-ama - existiert dieser Hostname im WWW?
                  Nein? Na dann kann fopen wohl auch schlecht eine Verbindung zu diesem Aufbauen, hm? Und dann liefert es natürlich auch false.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    PHP-Code:
                    $ffopen="http://ec1.images-amazon.com/images/P/$isbn.01._SCLZZZZZZZ";
                    $str file_get_contents($ffopen);
                    if(@
                    getimagesize($str) === false) {
                      echo 
                    'Nicht vorhanden';
                    }else{
                      echo 
                    'vorhanden';

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      ich machs über get image size, da funktionierts

                      Danke für eure Mühe.

                      hier noch der "funktioniernde" code:

                      PHP-Code:
                      $bild="http://PFADZUMPRÜFENDEN BILD";
                      $bildna="BILD DAS ANGEZEIGT WERDEN SOLL WENN Bildgröße <=1";
                      $size getimagesize ("$bild");

                      if (
                      $size[0]>1){
                      echo (
                      "<img width='100' src='$bild'>");
                      } else {
                      echo (
                      "<img width='100' src='$bildna'>");

                      trotzdem danke für eure Mühe!

                      Kommentar


                      • #12
                        ich machs über get image size, da funktionierts
                        Ich habe nix anderes behauptet, mein Code steht ja schon oben

                        Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #13
                          Original geschrieben von jahlives
                          PHP-Code:
                          $str file_get_contents($ffopen);
                          if(@
                          getimagesize($str) === false) { 
                          Es ist auch nicht unüblich, zusammen mit dem HTTP Status Code 404/410 auch noch ein Bild auszugeben, welches eine entsprechende Meldung enthält, wenn die "Dateiendung" der angeforderten Ressource auf ein Bild schliessen lässt.
                          Damit hättest du jetzt also schön die Größe des Fehlerbildchens abgefragt - dürfte aber vermutlich auch weniger dem Gewünschten entsprechen.


                          Einzig sinnvoll ist die Abfrage des HTTP Statuscodes.
                          Ein HEAD-Request sollte dafür normalerweise ausreichen, GET (worauf der Webserver auch gleich den Inhalt der Ressource liefert) nicht nötig sein.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            @ tobi, danke! Habs zu spät gesehen.

                            @wahsaga: Es reicht doch zu überprüfen ob das Bild kleiner oder gleich 1 Pixel höhe hat. Nun es funktioniert auf jeden Fall

                            Kommentar


                            • #15
                              Original geschrieben von r00li
                              Es reicht doch zu überprüfen ob das Bild kleiner oder gleich 1 Pixel höhe hat.
                              Du hast es immer noch nicht verstanden.
                              Nun es funktioniert auf jeden Fall
                              Garantiert nicht in jedem, sondern glücklicherweise vielleicht in diesem.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X