Kai: Bild nicht gefunden, -> Keine Fehlermeldung ausgeben

ich lese ein Bild ein Bild ganz normal über <scr> ein, doch es ist nicht auf dem Server, statt einer Fehlermeldung möchte ich einfach das <scr> gar nicht ausgeführt wird.

Kann mir jemand dabei einen Wink geben

Kai

  1. Hallo,

    ich lese ein Bild ein Bild ganz normal über <scr> ein

    was soll <scr> dabei sein? Sieht auf den ersten Blick wie ein HTML-Tag aus, ich kenne aber kein scr-Element in HTML. Außerdem wäre die Kategorie PHP dann falsch gewählt.

    doch es ist nicht auf dem Server

    Dann gibt's einen HTTP-Status 404 (Not Found).

    statt einer Fehlermeldung möchte ich einfach das <scr> gar nicht ausgeführt wird.

    Hmm. Was immer dein <scr> auch sein mag. Die HTTP-Fehlermeldung bekommst du in jedem Fall. Also musst du die irgendwie feststellen und darauf reagieren.

    Kann mir jemand dabei einen Wink geben

    <wink>Need more input.</wink>

    Ciao,
     Martin

    --
    Kopflosigkeit schützt nicht vor Migräne.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hier ist mein Code, die Datei ist  da, der ausgegeben Pfad ist korrekt.

      $testpfad ='images/bild_1.jpg';  
        
      if (file_exists('$testpfad'))  
      {  
      echo "Die Datei ist vorhanden.";  
      } else {  
      echo 'Die Datei ist nicht da -> '.$testpfad;  
        
      
      

      Kai

      1. Hi,

        Hier ist mein Code, die Datei ist  da, der ausgegeben Pfad ist korrekt.

        der Dateiname auch??

        $testpfad ='images/bild_1.jpg';

        if (file_exists('$testpfad'))

          
        Immerhin ist '$testpfad' ein eher ungewöhnlicher Name für ein Bild. Dir ist hoffentlich klar, dass in einfachen Anführungszeichen keine Variablen-Ersetzung stattfindet? Abgesehen davon: Wozu willst du überhaupt noch eine Stribgvariable in einen String einbetten, der nichts weiter enthält? Das ist Unfug.  
          
        Ciao,  
         Martin  
        
        -- 
        [Bitte komme jemand](http://community.de.selfhtml.org/zitatesammlung/zitat7) mit einem \*g\* zum Wochenende, damit nicht über mich gelacht wird.  
          (Gunnar Bittersmann)  
          
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        
        1. Es dürfte doch egal sein, wie das Bild heisst ($testpfad)oder?

          Ich baue den Pfad jedesmal neu zusammen:

          $testpfad ='images/bild_'.$i.'.jpg';

          und deshalb :

          $testpfad ='images/bild_1.jpg';

          Meine Frage ist eigenltich nur was ist da flasch, bzw. was läuft da falsch?
          Den der Ausgegebene Pfad $testpfad, bei der Ausgabe "Datei nicht da", ist korrekt und das Bild wird angezeigt!

          $testpfad ='images/bild_1.jpg';  
            
          if (file_exists('$testpfad'))  
          {  
          echo "Die Datei ist vorhanden.";  
          } else {  
          echo '<img src="'.$testpfad.'" alt=""><br>Die Datei ist nicht da ->'.$testpfad;  
          }
          
          1. Hallo,

            Es dürfte doch egal sein, wie das Bild heisst ($testpfad)oder?

            ja, sicher ist das egal.

            Ich baue den Pfad jedesmal neu zusammen:
            $testpfad ='images/bild_'.$i.'.jpg';
            und deshalb :
            $testpfad ='images/bild_1.jpg';

            Ja. Und dann benutzt du den so zusammengebauten String nicht mehr.

            Meine Frage ist eigenltich nur was ist da flasch, bzw. was läuft da falsch?

            Das habe ich dir doch schon erklärt:

            if (file_exists('$testpfad'))

            Hier prüfst du, ob ein Bild mit dem Namen '$testpfad' existiert - also Dollarzeichen, 't', 'e', 's', ... Dass in deinem Script "zufällig" auch eine Variable gleichen Namens existiert, spielt hier keine Rolle, geschweige denn ihr Wert.

            Dieser Fehler hätte dir nie passieren können, wenn du nicht sinnlos Variablen in Strings einbetten wolltest.

            Den der Ausgegebene Pfad $testpfad, bei der Ausgabe "Datei nicht da", ist korrekt
            echo '<img src="'.$testpfad.'" alt=""><br>Die Datei ist nicht da ->'.$testpfad;

            Natürlich. Da gibst du den String ja auch korrekt aus - einschließlich des in $testpfad gespeicherten Bildnamens.

            Ciao,
             Martin

            --
            Nein, es ist nicht wahr, dass bei der Post Beamte schneller befördert werden als Pakete.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Ich verstehe das ich was falsch mache, aber nicht wie ich es nicht falsch mache:

              Ich habe den Dateinamen  -> bild_1.jpg
              Ich habe den Pfad  -> images/

              und ich habe die Abfrage

              -> if (file_exists('Dateiabfrage'))

              aber wie kann ich die Datei abfragen, wenn ich ihm nicht sagen darf in welchen Verzeichnis die Datei liegt?

              Der Ratlose Kai

              1. Hallo Kai,

                Ich verstehe das ich was falsch mache, aber nicht wie ich es nicht falsch mache:

                zum dritten Mal: Du übergibst der Funktion file_exists() als Argument nicht den Dateinamen, sondern eine Stringkonstante, die nur zufällig den Namen deiner Variablen enthält - aber nicht ihren Wert!

                1. $testpfad
                  2. "$testpfad"
                  3. '$testpfad'

                Das sind drei verschiedene Ausdrücke!!
                Variante 1. ergibt den in $testpfad gespeicherten Wert - genau das  möchte man in den meisten Fällen haben.
                Variante 2. auch, packt ihn aber sinnloserweise erst noch in einen String.
                Variante 3. ergibt jedoch den konstanten String $testpfad, ohne dass irgendeine Ersetzung stattfindet.

                Ich habe den Dateinamen  -> bild_1.jpg
                Ich habe den Pfad  -> images/

                Richtig, ergibt den Pfad images/bild_1.jpg, wenn man es zusammensetzt.

                und ich habe die Abfrage
                -> if (file_exists('Dateiabfrage'))

                Ja. Aber du fragst nicht nach dem Dateinamen, den du in $testpfad abgelegt hast, sondern nach dem Namen '$testpfad' selbst. Ist das so schwierig zu verstehen?

                So long,
                 Martin

                --
                Gültig sind Frauen ab 16, wohlgeformt ab 160 Pfund.
                  (Gunnar Bittersmann)
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                1. Moin!

                  zum dritten Mal: Du übergibst der Funktion file_exists() als Argument nicht den Dateinamen, sondern eine Stringkonstante, die nur zufällig den Namen deiner Variablen enthält - aber nicht ihren Wert!

                  Stimmt. Das also auch noch. Kai muss die einfachen Anführungstriche um das $testpfad entfernen.

                  Einfache Demonstration/Übung hierzu:

                  <php  
                  $string='Hallo Welt!';  
                    
                  funktion_print('Variable ohne Quotas übergeben: '.$string);  
                  funktion_print('Variable in doppelten Quotas übergeben: '."$string");  
                  funktion_print('Variable im einfachen Quotas übergeben: '.'$string');  
                    
                  exit;  
                    
                  function funktion_print_line($s) {  
                        print $s."<br />\n";  
                        return true;  
                  }  
                  ?>
                  

                  Ergebnis (im Browser):
                  Variable ohne Quotas übergeben: Hallo Welt!
                  Variable in doppelten Quotas übergeben: Hallo Welt!
                  Variable im einfachen Quotas übergeben: $string

                  MFFG (Mit freundlich- friedfertigem Grinsen)

                  fastix

                2. if (file_exists(Dateiabfrage))

                  Also ich habe den String ausgegeben nicht aber $testpfad, also -> '' das war schuld.

                  Aber eine Farge habe ich noch, auch wenn ihr jetzt die Hände über dem Kopf zusammenschlagt:

                  Was ist der Unterschied:

                  $test = 'Hallo';
                  $test = "Hallo";

                  Danke, das ihr so geduldig mit mir KLEINEM UNWISSENDEN seit.

                  Kai, der langsam versteht....

                  1. Hi,

                    Aber eine Farge habe ich noch, auch wenn ihr jetzt die Hände über dem Kopf zusammenschlagt:

                    Was ist der Unterschied:

                    $test = 'Hallo';
                    $test = "Hallo";

                    Das kannst du hier nachlesen: http://www.php.net/manual/en/language.types.string.php

                    MfG ChrisB

                    --
                    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
          2. Moin!

            $testpfad ='images/bild_1.jpg';

            if (file_exists('$testpfad'))
            {
            echo "Die Datei ist vorhanden.";
            } else {
            echo '<img src="'.$testpfad.'" alt=""><br>Die Datei ist nicht da ->'.$testpfad;
            }

              
            Ich übersetze:  
              
            Wenn das die Bilddatei da ist, gib einen Text aus, dass es da ist.  
            Sonst gibt das Bild aus und den Text dass es nicht da ist.  
              
            Ich konstatiere: Fehler in der Logik.  
              
            Hinweis: Du solltest auch testen ob die Bilddatei lesbar ist. Die Datei kann da sein, darf aber (vom Webserver) nicht gelesen werden. Die Funktion "$boolean=is\_readable($string)" hilft Dir weiter.  
              
            MFFG (Mit freundlich- friedfertigem Grinsen)  
              
            fastix  
            
            -- 
            [Des fastix kleines CMS](http://www.fastix.org/fastix-cms/)