Bild anzeigen mit AJAX im Firefox

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

  • Bild anzeigen mit AJAX im Firefox

    Hallo ich ahbe mir folgendes Script geschrieben.
    Und zwar wenn ich auf eine Zeile in einem Dropdown klicke werden mir per AJAX verschiedne Informationen angezeigt. Diese Informationen hole ich mir aus einer Datenbank. Das funktioniert auch wunderbar und ohne Probleme.

    da wo die Informationen hin sollen steht
    PHP-Code:
    <span id="infos"></span
    meine Dropdown liste sieht wie folgt aus:
    PHP-Code:
    echo "<option onClick='sndReq2($row[0])'>$row[2] - $row[3]</option>"
    weiter oben natürlich noch:
    PHP-Code:
    <script language="JavaScript" src="ajax.js"></script
    meine ajax.js sieht folgendermaßen aus:
    Code:
    var resObjekt;
    if(navigator.appName.search("Microsoft") > -1)
    {
      //resObjekt = new ActiveXObject("Microsoft.XMLHTTP");
      resObjekt = new ActiveXObject("MSXML2.XMLHTTP");
    }
    else 
    {
      resObjekt = new XMLHttpRequest();
    }
    
    
    function sndReq2(klick, pass) 
    {
      resObjekt.open('get', 'ajax.php?id='+klick,true);
      resObjekt.onreadystatechange = handleResponse;
      resObjekt.send(null);
    }
    	
    
    
    function handleResponse() 
    {
      if(resObjekt.readyState == 4) 
      {
    	document.getElementById("infos").innerHTML =
    	resObjekt.responseText;
      }
    }

    so nun meine ajax.php Datei

    Ich werde euch dort nur einen ausschnitt zeigen wo ich das Problem habe. Sprich alle Informationen die ich mir mit Hilfe der Variable $id aus meiner Datenbank hole funktionieren ja, nur nicht die Sache das mir ein Bild angezeit wird.

    Hier der Teil mit dem Bild:
    PHP-Code:
    <?php
    $sql 
    "SELECT * FROM `covers` WHERE `pfad` = '$cover'";
    $result mysql_query($sql) or die ("Fehler in SQL : $sql");
    while (
    $line mysql_fetch_array($result))
    {
      
    $pic $row_covers[2]."/".$line[1].".".$line[2];
    }
    ?>
    <img src= "file:///<?php echo $pic?>" width = "100" height = "100"></img>
    Ich lese mir aus der Datenbank den Pfad für mein Bild aus, dort steht zum Beispiel: "cover-interpret-kuenstler.jpg", das habe ich überprüft die Variable bekomme ich korrekt.

    in $row_covers[2], steht der Pfad wo die Covers alle liegen ("D:/Covers"), auch überprüft.

    Sprich ich schreibe mir in die Var $pic folgendes rein "D:/Covers/cover-interpret-kuenstler.jpg", das ist auch überprüft. sprich ich bekomme ich der Variable das richtige angezeigt.

    So wenn ich jetzt Firefox aufrufe bekomme ich kein Bild angezeigt, wennich mit der rechten Maustaste mir die Eigenschaften aufrufe steht da auch der richtige Pfad, nämlich:
    "file:///D:/Covers/cover-interpret-kuenstler.jpg" ich bekomme es aber nicht angezeigt.

    in meiner Javascript Fehler Konsole im Firefox bekomme ich die Mitteilung
    darf file:///D:/Covers/cover-interpret-kuenstler.jpg nicht laden oder verlinken.
    WARUM????

    Die Seite läuft nur lokal bei mir und wird NIE online kommen.

    Ich hoffe mir kann jemand helfen udn gibt mir konstuktive Hilfe.

    Danke schon mal, wenn noch irgendwas unklar ist einfach bescheid geben.

    Wie schon gesagt das AJAX funktioniert, daran kann es eigentlich nicht liegen, da ich ja alle meine sonstiges Informationen mri aus der DB auslesen kann und auch ordentlich angezeigt bekomme.

    LG
    Jache

  • #2
    file:///D:/Covers/cover-interpret-kuenstler.jpg
    du hast trotzdem einen apache laufen, oder?
    man greift nicht über file auf dateien zu
    im normalfall darfst du nicht auf dateien zugreifen, die außerhalb des htdocs-verzeichnisses liegen.
    arbeite mit vernünftigen pfaden!

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

    Kommentar


    • #3
      Also ich habe natürlich einen Apache laufen. Das es funktioniert wenn es in meinem htdocs liegt weiß ich, aber das habe ich nicht gefragt, warum ich es so mache, ist jetzt erst mal nebensächlich, ich würde nur gerne wissen wie es funktioniert, sprich was mache ich falsch.

      Wenn ich ein JPG in meinen Firefox ziehe und dieses JPG liegt auf D: zeigt mir der Firefox in meiner Adresszeiel auch so an wie iche s es geschrieben habe, sprich mit file:///d:/.......

      Danke und Grüße
      Jache

      Kommentar


      • #4
        weil du in dem fall über das lokale system arbeitest. wenn du php einsetzt, dann läuft das über http, und da gibt es nun mal einschränkungen.

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

        Kommentar


        • #5
          wieso funktioniert es unter dem IE, hat nur der FF die Einschränkung? Sorry verstehe das nicht so ganz.

          oder besser gefragt, kann ich die Einschränkungen umgehen, das es trotzdem funktioniert?

          Kommentar


          • #6
            Ja, du kannst dir eine pic.php erstellen und alle Bilder mit
            src="http://localhost/.../pic.php?pfad=D:/Covers/...jpg" einbinden. Die pic.php besteht im Wesentlichen aus
            readfile($_GET['path']);

            Kommentar


            • #7
              Spitze, so was wollte ich hören, dann werd eich das mal probieren, hört sich logisch an bin nur nicht auf die Idee gekommen. Werde mich mal dran setzen. DANKE noch mal.

              Kommentar


              • #8
                Die pic.php besteht im Wesentlichen aus
                readfile($_GET['path']);
                Und wird sich daran die Zähne ausbeissen ein File ausserhalb des DocRoots einzulesen (ausser natürlich die Berechtigungen sind entsprechend gesetzt)

                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
                  Naja seinen lokalen Apachen kann er ja konfigurieren wie er möchte. Wenn es keinen Zugriff von außen gibt, besteht auch keine Gefahr.

                  Kommentar


                  • #10
                    okaokay freunde.

                    Also wenn ich mir eine pic.php erstelle mir den pfad übergebe und mit readfile auslese funktioniert das, wenn ich dann echo $ptad ausgebe bekomme ich jedemenge irgendwelche Zeichen.

                    Wie kriege ich es dann hin mir das Bild anzeigen zu lassen.

                    Kommentar


                    • #11
                      Die richtigen header brauchts schon ...

                      Kommentar


                      • #12
                        okay gut, habe es jetzt hinbekommen, das er mir das File mit irgendeinem Programm öffnen würde. Der Header sieht so aus:

                        PHP-Code:
                        header('Content-type: application/jpg'); 
                        Ich weiß das das falsch ist, aber bei der Seite blick ich nicht ganz durch, denn das Bild soll weder gespeichert werden noch sonst was sondern einfach nur angezeigt werden.

                        Bin über jede Hilfe dankbar.

                        LG
                        Jache

                        Kommentar


                        • #13
                          So Schluss damit, ich habe in der user.js die EInstellungen geändert, das es funktioniert. Jetzt gehts auch ohne pic.php. Trotzdem Danke.

                          LG
                          Jache

                          Kommentar


                          • #14
                            Original geschrieben von Jache84
                            denn das Bild soll weder gespeichert werden noch sonst was sondern einfach nur angezeigt werden.
                            Und <img> kennst du nicht?
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Ähm, ich weiß das du mich für blöd hälst, allerdings geht das nicht mit <img>, da ich dann wieder den gleichen Fehler bekomme, das File:/// nicht zugegriffen werden darf, aber ist jetzt nicht mehr schlimm. Wie gesagt es funktioniert jetzt. Danke trotzdem an alle die mit geholfen haben.

                              Kommentar

                              Lädt...
                              X