Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] bilder stimmen nicht überein

Einklappen

Neue Werbung 2019

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

  • [Erledigt] bilder stimmen nicht überein

    Hi Leute,

    ich dreh hier bald durch.....folgendes problem:

    ich speicher bilder in einem ordner(da kommt auch das gewünschte bild an).
    wenn ich es mir anzeigen lasse, zeigt er ein anderes an und zwar immer
    das bild, was ich auf der position als erstes gespeichert habe, so als hätte ich es nie gelöscht.

    Ist das verständlich oder braucht ihr mehr infos bzw. sogar code?

    ich versteh nicht, wo das problem liegen könnte....
    bin für jeden leinsten hinweis dankbar!!!!

  • #2
    Um behilflich sein zu können, wäre Code natürlich ziemlich hilfreich.
    Im Zweifelsfall poste einfach immer Code mit, lieber zu viel liefern als nachfragen zu lassen.
    [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
    [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

    Kommentar


    • #3
      ok, wird gemacht!


      PHP-Code:
      function bildbearbeiten($head,$bildname,$alt){
      if(
      file_exists($bildname))
                  
      $out="$head<img src=$bildname alt=$alt  width=100px>";
      $out.="<form action='upload' method='post' enctype='multipart/form-data'>
                      <input type=hidden name=name value=
      $bildname>
                      <input type='file' name='datei'>
                      <input type='submit' value='Hochladen'>
                      </form>"
      ;
      return 
      $out;

      diese function nutze ich hier, und zwar so:
      PHP-Code:
      $i=1;
          
      $name="bilder/bild"."_"."$i.png";
          while(
      file_exists($name)){
              
      $out.=bildbearbeiten("bild $i"$name'bild');
              
      $i++;
              
      $name="bilder/bild"."_"."$i.png";
          }
          
      $out.=bildbearbeiten("bild $i""bilder/bild_$i.png"'Knallrot');//fehler 
      ok, beim posten gemerkt....muss natürlich auch $name hin...
      danke fürs auffordern zum posten, sonst hätt ich das nie gefunden

      Kommentar


      • #4
        jetzt funktioniert es, mir ist aber trotzdem nicht klar, warum ein bild geladen wurde, was nicht im ordner ist....
        PHP-Code:
        if(file_exists($name))
                    echo 
        "bild existiert :<img src=$name alt=$first  width=200px>";
                else echo 
        "bild existiert nicht:<img src=$name alt=$first  width=200px>"
        spuckt tatsächlich bild existiert nicht + das bild aus....????

        irgendwie komisch....aber jetzt klappts ja zumindest

        Kommentar


        • #5
          So billig gibst du dich damit zu frieden? Also wenn offensichtlich was nicht ganz ok ist, würde ich mir das schon anschauen.

          Denk daran file_exist() im Skript geht vom Pfad des PHP Skriptes aus und <img ... > vom Verzeichnis wo der Browser "gerade ist", denn HTML wird bekanntlich ja "erst" im Browser gerendert/verarbeitet.

          Und klammere sauber:

          PHP-Code:
          if (file_exists($name)) {
              echo 
          "bild existiert: <img src=$name alt=$first  width=200px>"
          } else {
              echo 
          "bild existiert nicht: <img src=$name alt=$first  width=200px>"

          LG
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            warum sind denn die klammern wichtig bze warum ist das sauberer?
            ich dachte bei einer zeile ist das "gleich" gut....

            ich vermute, dass es dann sowas wie einen zwischenspeicher gibt???
            wenn das laden des bildes auf meinem pc passiert und das bild aber auf dem
            server liegt, muss es ja irgendwie mitgeliefert werden(zwischenspeicher).
            auf dem lag dann die ganze zeit das bild, was ich unerwünschter weise mit dem
            falschen befehl geladen habe und auf dem server schon nicht mehr existiert hat.

            kommt das so hin?

            Kommentar


            • #7
              Zitat von Ape50 Beitrag anzeigen
              warum sind denn die klammern wichtig bze warum ist das sauberer?
              Der Kontrollfluss ist identisch. Dennoch dienen die Klammern der Übersicht. Sauber formatiert erkennt man schneller was Sache ist und muss nicht erst suchen ob sich da irgendwo ein else versteckt.

              Kommentar


              • #8
                Das verhalten was du andeutest nennt sich chaching... natürlich cached der browser das bild, damit es nicht bei jedem aufruf neu geladen werden muss (kann durch meta angaben gesteuert werden). Aus diesem Grund solltest du zum Entwickeln deinen Chache immer deaktivieren - sonst suchst du teilweise ewig nach einer Lösung, obwohl es bereits funktioniert (bilder, html, css und javascript dateien werden je nach browsereinstellung gecached).

                Wenn ich mir allerdings deinen HTML-Code so anschaue kann ich da einiges erkennen, was jeder Browser handhaben kann, wie er es selbst möchte. Lass deinen HTML-Code hier mal validieren und beseitige die aufgetretenen Fehler.

                Kommentar


                • #9
                  mein code ist noch nicht online....
                  existiert also nur auf meinem pc...meinst du dann die fehlenden ' oder was kannst du erkennen?

                  Kommentar


                  • #10
                    Da du ja nur Ausschnitte gepostet hast konnte ich bisher nur die fehlenden ' bzw. " erkennen.
                    Validieren kannst du auch mit Browsererweiterungen bzw. du kannst auch Dateien hochladen und checken lassen. Bei Konstrukten wie
                    <img src=$bildname alt=$alt width=100px>
                    kann es vorkommen, dass das Bild hier gesucht wird:
                    PHP-Code:
                    <img src="$bildname alt=$alt  width=100px"
                    Ich denke nicht, dass du das Bild an der Position abgelegt hast.

                    Kommentar

                    Lädt...
                    X