Wert bleibt nicht gesetzt

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

  • Wert bleibt nicht gesetzt

    Hallo,

    Ich habe ein formular, da hats textfelder, textarea und ein upload für ein bild drin:

    PHP-Code:
    <input type="file" name="datei" value="<?php echo $_POST['datei']?>" />
    Wenn benutzer etwas falsch eingibt, dann wird das script erneut aufgerufen und alle werte der felder bleiben gesetzt...ausser dem vom type=file.

    Wie kann man das problem beheben, das feld soll auch belegt bleiben!
    ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

  • #2
    type="file" kann man nicht vorbesetzen !!!
    Wäre ja auch die Wurzel des übelsten Alptraums !

    Schiebe die Datei in ein eigenes Temp Verzeichnis.
    Warum sollte sie auch 2 mal hochgeladen werden sollen?
    Wir werden alle sterben

    Kommentar


    • #3
      Zitat von combie Beitrag anzeigen
      Wäre ja auch die Wurzel des übelsten Alptraums !
      Dann würde so manche Spitzbuben Danke sagen.

      Kommentar


      • #4
        OffTopic:

        Währe ein Schöner Alptraum, Auslesen was fürn system kommt Windows Linux und den Rechner einfach anweisen bestimmte Dateien hoch zu laden.
        Würde vieles Einfacher mache *HUST* *lach*



        Nein wie combie schon sagte das geht nicht und wird Hoffentlich niemals gehen.

        speichere einfach die datei zwischen, merk dir in nem hidden field das sie oben ist. wenn ja feld nicht wieder anzeigen sondern text ansonsten feld anzeigen.
        Bitte Beachten.
        Foren-Regeln
        Danke

        Kommentar


        • #5
          Danke für die antworten.

          Ich hoffe ihr habt mich richtig verstanden. Es soll kein Wert vorbelegt werden, sondern nach dem Abschicken soll der pfad in dem fenster dort drin erhalten bleiben, so wie in den normalen textfeldern auch.

          Ok wenn das nicht machbar ist, dann wolle ich mal fragen wie man das dann macht:

          Ich habe im bildupload u.a. diesen code drin, kann man da das "merken"?
          PHP-Code:
          ...
          ...
          if(!
          is_dir($origpic))
            {@
          umask(000); @mkdir($origpic);} # Verz. für die Originalbilder erstellen, wenn es noch nicht existiert
          $upload_pic=strtolower($origpic.$date.".jpg"); # Pfad & Dateiname für Originalbild
          if(@move_uploaded_file($_FILES['datei']['tmp_name'],$upload_pic)) # Originalbild speichern
          ...
          ... 
          ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

          Kommentar


          • #6
            Zitat von RamonaS Beitrag anzeigen
            Es soll kein Wert vorbelegt werden, sondern nach dem Abschicken soll der pfad in dem fenster dort drin erhalten bleiben, so wie in den normalen textfeldern auch.
            Ja - das nennt man bei Formularfeldern allgemein sie mit Werten vorbelegen.

            Ich habe im bildupload u.a. diesen code drin, kann man da das "merken"?
            "Merken" kann man bspw. per Session, oder auch durch Weitergabe von Daten in versteckten Formularfeldern.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              move_uploaded_file() = schiebe das File in neue Location

              $uploadpic sollte ein Ordner-pfad sein .

              Kommentar


              • #8
                Ich kriege Pickel bei den ganzen @ da im Code!
                Wir werden alle sterben

                Kommentar


                • #9
                  Zitat von RamonaS Beitrag anzeigen
                  Es soll kein Wert vorbelegt werden, sondern nach dem Abschicken soll der pfad in dem fenster dort drin erhalten bleiben, so wie in den normalen textfeldern auch.
                  Das geht mit File-Felder nicht, das sie kein Value-Attribut haben. Du kannst höchstens statt des File- ein Textfeld ausgeben und disabled setzen. Allerdings ist dir der Pfad überhaupt nicht bekannt, den ein User voher im Filefeld sah. Und auch nicht jeder Browser zeigt überhaupt einen Pfad an. Safari zum Beispiel nicht. Also beschränke dich am besten auf den Dateinamen.
                  Noch besser: Zeige eine Vorschau des Bildes an. Das kann Mensch besser erkennen/kontrollieren/akzeptieren als einen möglicherweise kryptischen Dateinamen, wie sie heute von Digitalkameras erzeugt werden.

                  Kommentar


                  • #10
                    Zitat von onemorenerd Beitrag anzeigen
                    Noch besser: Zeige eine Vorschau des Bildes an.
                    Das hielt ich bis vor kurzen als eine super idee, aber mein script dafür läuft im FF garnicht, also kein bild sichtbar, und im ie 7, 8 glaub ich auch nicht :-(

                    Wenn sich das mal jemand anschauen kann, warum das nicht geht:

                    PHP-Code:
                    <script type="text/javascript"><!--// JS-Funktion für die Vorschaubildanzeige (nur im MSIE6)
                    function FotoAnzeigen(Quelle)
                      {if(
                    document.getElementById("Vorschaufoto"))
                         {var 
                    Quellfoto=document.getElementById("Vorschaufoto");
                          if(
                    Quelle)
                            {
                    Dateiendung=Quelle.substring(Quelle.lastIndexOf(".")+1)
                             if(
                    Dateiendung.toLowerCase()!="jpg" && Dateiendung.toLowerCase()!="jpeg")
                               {var 
                    Fehlermeldung="Fehler: Sie dürfen nur Bilder im JPEG-Format hochladen!\n(Das sind Bilder mit der Dateiendung: .JPG oder .JPEG)"alert(Fehlermeldung);
                                
                    document.getElementById("Vorschaufoto").value=""Quellfoto.src="blank.gif"; return false;
                               }
                             else {
                    Quellfoto.src=Quelle; return true;}
                            }
                          else {return;}
                         }
                       else {return;}
                      }
                    //--></script> 
                    ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

                    Kommentar


                    • #11
                      Zitat von hoangatt Beitrag anzeigen
                      move_uploaded_file() = schiebe das File in neue Location

                      $uploadpic sollte ein Ordner-pfad sein .
                      Ja klar ist das ein ordner + bildname + endung:
                      $upload_pic=strtolower($origpic.$date.".jpg"); # Pfad & Dateiname für Originalbild

                      $origpic = der pfad
                      ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

                      Kommentar


                      • #12
                        Zitat von wahsaga Beitrag anzeigen
                        Ja - das nennt man bei Formularfeldern allgemein sie mit Werten vorbelegen.


                        "Merken" kann man bspw. per Session, oder auch durch Weitergabe von Daten in versteckten Formularfeldern.
                        Ja klasse, per session finde ich gut...denen vertraue ich noch am meisten :-)
                        Dann schreibe ich der session den dateinamen rein bevor die sicherheitsprüfungen loslegen. Danke

                        Naja normalerweise würde ich das auch so lassen, es könnte aber nervig werden wenn, der besucher:
                        - alles eingibt, dann kommt ne fehlermeldung, das die captcha nicht stimmt,
                        - dann gibt er die richtige captcha-nr ein, dann kommt ne neue fehlermeldung, das kein bild gewählt wurde!
                        - schlußendlich muß er eine neue captchnummer + uploadbild wählen....
                        ....das könnte den einen oder anderen ärgern/überfordern.
                        ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

                        Kommentar


                        • #13
                          ....das könnte den einen oder anderen ärgern/überfordern.
                          Ja!
                          Wir werden alle sterben

                          Kommentar


                          • #14
                            Zitat von RamonaS Beitrag anzeigen
                            Das hielt ich bis vor kurzen als eine super idee, aber mein script dafür läuft im FF garnicht, also kein bild sichtbar, und im ie 7, 8 glaub ich auch nicht :-(
                            Warum machst du das mit Javascript? Erzeuge serverseitig ein fertiges img-Tag.
                            Die Validierung des Files muss natürlich auch komplett serverseitig stattfinden ... und eine Dateiendung sagt absolut nichts über den Inhalt der Datei aus!

                            Kommentar


                            • #15
                              Hallo onemorenerd

                              Ich prüfe schon genau ob das vermeindliche bild auch ein bild ist und nicht etwa eine php-datei mit der endung jpg :-)

                              zum bleistift so:
                              PHP-Code:
                              $format=getimagesize($upload_pic);
                              if(
                              $format[2]==2# Prüfen ob die Datei wirklich ein echtes JPG-Bild ist! 

                              Mit JS wollte ich das machen, damit der user nicht 1min warten muß bis das 3,1MB bild hochgeladen ist...daher vor dem upload die bildvorschau per javascript local, ok?
                              ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

                              Kommentar

                              Lädt...
                              X