Re: @CB Eigenes Form für put / mod / del - (speziell Dateifeld ) - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 5.Juli.2002, 01:28.
    Re: @CB Eigenes Form für put / mod / del - (speziell Dateifeld )

      Ok... Also...

      Grund von dem ganzen Kram ist dass das file-upload-Feld ein besonderes Feld ist - man darf es von aussen per HTML oder JS nicht verändern. Das wäre eine grobe Sicherheitslücke, da man dann z.b. per JS einen Filenamen reinschreiben könnte und das Formular automatisch abschickt - schon hat man das File ohne dass der Surfer das so wollte...

      Deshalb muss man sich was anderes ausdenken um "Behalten", "Löschen", "Neu" umzusetzen und dafür sind die Checkboxes da. Ja, die müssen eigentlich immer da sein, bzw. es geht halt um den Wert. Kannste natürlich auch per "hidden"-Feld mitschicken, wenns keiner sehen soll.

      Das JS mit dem this setzt, wenn ein neuer Filename eingegeben wird den "Neue Datei"-radiobutton - und zwar automatisch ohne dass die radio-buttons einen Namen haben müssen...


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 4.Juli.2002, 22:29.
    @CB Eigenes Form für put / mod / del - (speziell Dateifeld )

      Hallo
      nach einigem Probieren nun noch mal die Bitte um Erläuterung:
      Wenn ich den Code aus dem von bp generierten Form anschaue ist da was unverständliches drin:
      <input type=radio name="_filec_bild=" value=0 checked>Datei behalten: log_leb_hoffn.gif
      <input type=radio name="_filec_bild=" value=1> Keine Datei
      <input type=radio name="_filec_bild=" value=2> Neue Datei:
      <input name="bild:=" type="file" size=30 onfocus="a=this.form.elements; for(i=0; i<a.length; i++) if(a[i].name==this.name) break; a[i-1].checked=1;">
      
      was speziell bezweckt das - irgendwie steig ich nicht durch - aber ich könnte mir vorstellen, daß es was mit der Funktionalität zum Uploaden zu tun hat.
      Wie kann man das als allgemeine Regel für eigene Forms festlegen - vielleicht kann auch Sander mal bei Gelegenheit dazu was in die Doku aufnehmen.
      Müssen die Radio-Felder mit Namen _filec_bild= und den Werten für 0 -> Datei behalten 1 -> keine Datei und 2 -> Neue Datei immer drin sein?
      Und was genau macht das JS - mit den this. - Statements ist mir echt noch nicht gelungen zu begreifen, bezieht sich das auf die Radio-Buttons oder auf das gesamte Form?
      Eine Erläuterung würde mir weiterhelfen, danke
      Ruben

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 5.Juli.2002, 01:28.
    Re: @CB Eigenes Form für put / mod / del - (speziell Dateifeld )

      Ok... Also...

      Grund von dem ganzen Kram ist dass das file-upload-Feld ein besonderes Feld ist - man darf es von aussen per HTML oder JS nicht verändern. Das wäre eine grobe Sicherheitslücke, da man dann z.b. per JS einen Filenamen reinschreiben könnte und das Formular automatisch abschickt - schon hat man das File ohne dass der Surfer das so wollte...

      Deshalb muss man sich was anderes ausdenken um "Behalten", "Löschen", "Neu" umzusetzen und dafür sind die Checkboxes da. Ja, die müssen eigentlich immer da sein, bzw. es geht halt um den Wert. Kannste natürlich auch per "hidden"-Feld mitschicken, wenns keiner sehen soll.

      Das JS mit dem this setzt, wenn ein neuer Filename eingegeben wird den "Neue Datei"-radiobutton - und zwar automatisch ohne dass die radio-buttons einen Namen haben müssen...

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 5.Juli.2002, 07:29.
    Re: @CB Eigenes Form für put / mod / del - (speziell Dateifeld )

      Danke,
      nun mach ich das doch mal so, mal sehn ob ich das hinkrieg.
      Nachdem ich das JS hier ins Forum kopiert hatte und meinen Beitrag noch paar mal gelesen hab, ist mir dann (fast) das Licht bezuüglich des JS und der for-Schleife aufgegangen:
      Es werden alle Elemente des Formulars gezählt und wenn das i-te Element den Namen des Dateifeldes hat wird die Zählscheleife abegebrochenn, dann wird das Feld vorher als checked gesetzt (this.form.elements[-1].checked) <-hab ichs geschnitten?
      Das heißt (aber) dann auch, daß das die Checkboxes i m m m e r vor dem Bildfeld stehen müssen um die checked-Eigenschaft mittels des JS setzen zu können.
      Theoretisch müßte doch das checked auch per Hand eintragbar sein, oder? Ist halt bloß wichtig, _filec_bild mit den definierten Werten für die jeweilige Aktion zu belegen, wenn man den Wert (und das Feld?) nicht mit übergibt bleibt die Datei erhalten (0 interpretiert Perl doch als nicht belegt aber definiert?)
      Na dann, gleich mal noch was zu JS mitgekriegt (puhh, das ist immer ein Tanz mit JS, da muß man weitaus mehr mit Quotes und Doppelquotes aufpassen als bei bp und seinem Perl - brauche unterdessen mehr Zeit zum debuggen von JS-Teilen als von "reinem" bp-perl)
      Übrigens - hast du irgendwas an der Fehlerausgabe geschraubt, es stimmen unterdessen die Zeilenangaben für auftretende Fehler ziemlich genau. Bei "includierten" Scriptteilen sagt er unterdessen auch den richtigen Script-Namen, wo der Fehler drin ist, ich glaub das war nicht immer so - find ich gut!

      Nochmals danke - und das ist das, was ich hier so schätze, man lernt immer echt tolle Sachen dazu -:)

      Ruben

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 5.Juli.2002, 15:32.
    Re: @CB Eigenes Form für put / mod / del - (speziell Dateifeld )

      Ja, ist genau wie Du es schreibst... Und, ja, die checkbox muss genau ein Formularfeld vor dieser Schleife sein. Wenn man das Formular selbst schreibt würde man das sicher anders machen, einfach den checkbox-Feldern einen Namen geben und direkt ansprechen. baseportal generiert das aber automatisch und da war das so die einfachste Lösung.

      Ja, JS is um einiges nerviger was Quotes angeht als Perl. In der neuesten JS kann man aber auch escapen, also \" und \' - dann gehts eigentlich ganz gut... ;-)

      Nö, bei den Fehlermeldungen hab ich nix geändert, prima dass es sich von alleine verbessert ;-)))

      Bitte, gern geschehen ;-))

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 5.Juli.2002, 17:59.
    Re: @CB Eigenes Form für put / mod / del - (speziell Dateifeld )

      gut - die grauen Zellen gehen also doch noch und ich kapier auch noch Neues ;-)
      Naja, also zu JS und Quotes ganz gut zu sagen grenzt ja schon eher an Zweckoptimismus..... :-)
      Nagut, wenn an den Fehlermeldungen nichts geaädert wurde schieb ichs mal auf die Routine beim Debuggen, die man kriegt, je mehr man falsch macht......
      Schönes Weekend
      Ruben

     Antworten


     
 Liste der Einträge von 45901 bis 46051:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.07s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!