zum http-upload: <input value=..??? bestimmen

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

  • zum http-upload: <input value=..??? bestimmen

    Hallo,
    Ich habe folgendes Problem.

    Wie kann ich den valuewert eines Formularfeldes des typs file bestimmen?

    zur genaueren erklärung:

    "Mein" Formular fragt ab ob die PFLICHTfelder ausgefüllt wurden.
    sollte nun ein Pflichtfeld nicht ausgefült worden sein kommt das formular erneut mit Hinweis für den user bitte noch die PFlichtfelder auszufüllen.
    Die nichtausgefüllten sind dann markiert.

    Die bereits ausgefüllten felder die im $_POST-array zu finden sind werden mit value $Post(name) wieder ausgegeben.

    wenn nun ein input feld des types file schon vorher eingegebn wurde, steht dort nicht mehr der Verzeichnispfad wo die Datei zu finden war.
    Und genau das sollte eigentlich wieder dort stehen.

    Ich poste mal den Formularteil zum verständnis:

    PHP-Code:
    <form action="form.php" method="post" enctype="multipart/form-data"> 
    <?PHP echo $errorPicture['Name']; ?>Name:
    <input class="<?PHP echo $errorClass['Name']; ?>" type="text" name="Name"
    size="50" value="<?PHP echo $_POST['Name']; ?>" /> 
    <?PHP echo $errorPicture['vorname']; ?>vorame:
    <input class="<?PHP echo $errorClass['vorname']; ?>" type="text" name="vorname"
    size="50" value="<?PHP echo $_POST['vorname']; ?>" /><br> 
       Dateien:<br> 
       <input type="hidden" name="MAX_FILE_SIZE" value="100000"> 
    <?PHP echo $errorPicture['datei[0]']; ?>
    1. Bild <input class="<?PHP echo $errorClass['datei[0]']; ?>" name="datei[0]"
     type="file" maxlength="100000"
     value="<?PHP echo $_FILES["datei"]['name']['0']; ?>"><br />
    ...
    ..
    BEmerkung:"Der Code wurde von mir hier durch zeilenumsprünge getrennt um die Seitenbreite des forums beizubehalten"

    Wie muß ich nun den Befehl
    PHP-Code:
    <?PHP echo $_FILES["datei"]['name']['0']; ?>
    gestalten das ich das gewünschte ergebnis bekomme?

    Die Skripte habe ich bei selfphp gefunden und für meine zwecke versucht anzupassen,
    Zuletzt geändert von Torty; 21.08.2006, 02:40.

  • #2
    Wie kann ich den valuewert eines Formularfeldes des typs file bestimmen?
    Ich vermute mal bestimmen kannst du ihn, aber setzen ist wohl nicht...
    SelfHtml.de
    Das Attribut value in Verbindung mit <input type="file">, mit dem das Vorbelegen der Dateiauswahl möglich wäre, wird von moderneren Browsern aus Sicherheitsgründen nicht mehr unterstützt.
    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
      http://de.selfhtml.org/html/formular...htm#definieren

      "Das Attribut value in Verbindung mit <input type="file">, mit dem das Vorbelegen der Dateiauswahl möglich wäre, wird von moderneren Browsern aus Sicherheitsgründen nicht mehr unterstützt."

      [EDIT]komisch, mitten in der nacht überschneiden sich zwei antworten

      Kommentar


      • #4
        Re: zum http-upload: &lt;input value=..??? bestimmen

        Die Datei wurde bereits hochgeladen - also sichere sie schon in dem Moment, in dem du prüfst.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Also besteht keine möglichkeit den Quellpfad der Datei abzuspeichern.nun gut:-)

          Wenn bei den POST pflichtfeldern ein eintrag nicht ausgefüllt wurde, ist es ja kein problem die 2 file inputfelder erneut auszufüllen.

          Ich dachte nur das sowas einfach nicht so gut "programmiert" wirkt.

          Im Prinzip ist das ja dann so wie bei der eingabe von Passwörtern in registrierungsformularen,oder? Dort wird bei erneutem aufruf des formulares das PW normal auch gelöscht.

          Aber danke für die Hilfe, vorallem so schnell*G*
          ich hab ja immerhin bis früh um 3 gebastelt aber das jemand schon um halbe 5 eine antwort postet macht mich fertig*G*

          Danke Danke :-)

          PS: Vielleicht könnt ihr mir ja bei einem Weiteren Problem dann helfen. wird aber in einem neuen Beitrag dann gepostet.
          Das Thema kann wegen mir geschlossen werden.

          Kommentar


          • #6
            Original geschrieben von Torty
            Wenn bei den POST pflichtfeldern ein eintrag nicht ausgefüllt wurde, ist es ja kein problem die 2 file inputfelder erneut auszufüllen.
            Doch - weil dann die Daten erneut hochgeladen werden, und du damit den Traffic vervielfachst.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ich denke hier wäre eine Validierung, evtl. eine Vor-Validierung mit Javascript sinnvoll.
              Variante ist ein zweistufiges Formular. Die File-Felder sind noch nicht aktiv. Drückt er submit, wird das Formular nochmals ausgegeben. Die Namensfelder sind nicht aktiv, dafür jetzt die File-Felder. Die Variante vermeidet Javascript, dh. man kann es praktiscvh mit dem vorhandenen PHP machen. Das Einhalten der Stufung geschieht mit Session, oder damit, dass die Pflichtfelder in der zweiten Stufe eben nochmals geprüft werden.
              Zuletzt geändert von jhaase; 21.08.2006, 15:40.

              Kommentar


              • #8
                Die idee mit dem "geteilten skript ist gut, nur ich bin PHP neuling, *g*

                wie hast du das gemeint mit dem skript, erst die FILES-felder auf
                disabled="disabled"
                einstellen und nur nach erfolgreicher eingabe aller POSTfelder
                diese Freigeben, das disabeld entfernen?
                sozusagen ein if konstrukt.
                PHP-Code:
                if($error == TRUE AND (PROBLEMANFRAGE) )
                {
                   
                $inputview='disabled="disabled" '
                }
                else
                {
                  
                $inputview="";

                ich versuche das mal so in etwa einzubinden und melde mich falls es nicht klappte:-)

                Kommentar


                • #9
                  Am billigsten ist, in die Felder das Attribut readonly zu geben. Schöner wäre, die nicht änderbaren "Felder" mit echo auszugeben. Das ganze kann mit zwei-drei ifs gesteuert werden.


                  <input type=text name=name>
                  <input type=file name=datei readonly>
                  <input type=submit name=submit value=auchsubmit>
                  <input type=hidden name=hidden value=eins>


                  <input type=text name=name readonly>
                  <input type=file name=datei >
                  <input type=submit name=submit value=auchsubmit>
                  <input type=hidden name=hidden value=zwei>


                  Es ist bei dieser billigen Methode nötig, auch im Schritt zwei die Pflichtfelder nochmals zu validieren, weil sonst ein Bösewicht mit geskriptetem Browser nur den zweiten Teil 'posten' würde und die Validierung umgehen könnte.

                  Ein vollschöne Lösung ist auch nicht viel aufwendiger, obiges ist gemässigten php-Kenntnissen für den Anfang angepasst.

                  PS disabled heisst, das der Inhalt mit der Maus nicht selektiert werden kann. readonly heisst, dass es nicht geändert werden kann.

                  Kommentar


                  • #10
                    Original geschrieben von jhaase
                    PS disabled heisst, das der Inhalt mit der Maus nicht selektiert werden kann. readonly heisst, dass es nicht geändert werden kann. [/B]
                    disabled heißt auch in manchen User-Agenten das es bei einem Formular nicht mitgeschickt wird
                    Mafia Browsergame - Scripts

                    Wer glaubt, ein Christ zu sein, weil er die Kirche besucht, irrt sich. Man wird ja auch kein Auto, wenn man in eine Garage geht.
                    Albert Schweitzer (14.01.1875 - 04.08.1965)

                    Kommentar


                    • #11
                      Original geschrieben von garyx7de
                      disabled heißt auch in manchen User-Agenten das es bei einem Formular nicht mitgeschickt wird
                      welche browser? Wie ist es mit readonly?

                      Kommentar


                      • #12
                        Original geschrieben von jhaase
                        welche browser?
                        Jeder Standardkonforme.

                        HTML 4.01, 17.13.2 Successful controls:
                        A successful control is "valid" for submission. [...]

                        Controls that are disabled cannot be successful.
                        Wie ist es mit readonly?
                        Anders :-)
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Read-only elements may be successful.

                          Im Zusammenhang mit noch einem Dutzend Stellen ergibt sich, dass readonly input und textarea Elemente zurückübermittelt werden, wenn sie einen Namen und einen nichtleeren Wert haben.
                          Zuletzt geändert von jhaase; 22.08.2006, 08:40.

                          Kommentar

                          Lädt...
                          X