ConPresso Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
mod_form RC2 und File-Upload
Gehe zu Seite 1, 2  Weiter
 
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Modul Formular (Conpresso 4)
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 29.10.2008 13:49    Titel: mod_form RC2 und File-Upload Antworten mit Zitat

Das Formular-Modul bietet ja in der RC2-Version eine Upload-Funktion für Dateien. Dazu habe ich ein paar Fragen und Probleme.

1. Formular-Template

Ich habe mir im Formular-Template (Bereich Artikelseite) für den Datei-Upload ein Feld folgendermaßen angelegt:

<!-- Text: Upload-Datei; type=file; class=langfeld; size=30; -->

aber auch das funktionierte gleichermaßen:

<!-- File: Upload-Datei; type=file; class=langfeld; size=30; -->

Frage hierzu: Welche Version ist besser bzw. vorgesehen? Ich vermute 'mal stark, die letztere.


2. (Fehler-)Meldung beim erfolgreichen Upload

Ich erhalte, wenn die Datei hochgeladen wird/wurde immer folgende Meldung vor dem gesamten restlichen Seitenquellcode:
Code:
Array
(
    [Upload-Datei] => Array
        (
            [name] => Bilddatei.gif
            [type] => image/gif
            [tmp_name] => /tmp/phpSkGtgI
            [error] => 0
            [size] => 3427
        )

)

Natürlich optisch als Einzeiler, aber im Seiten-Quellcode so wie hier abgebildet. Hier bei einem Upload der Datei Bilddatei.gif mit 3427 Bytes Größe.


3. Datei-Upload-Felder leer, wenn Formular-Eingabe-Prüfung Fehler findet

Findet die Formular-Eingabe-Prüfung einen Fehler, bspw. ein nicht ausgefülltes Pflichteingabefeld, wird das oder die entsprechenden Felder wie üblich markiert. Aber: gleichzeitig werden die Eingaben in den Datei-Upload-Feldern gelöscht und beim erneuten Absenden des Formulars nichts hoch geladen - außer natürlich, man hat diesen Fehler bemerkt und diese Felder auch wieder befüllt.


4. Die CSS-Klasse - hier "langfeld" - soll das Feld formatieren, in welchem der Datei-Pfad/Dateibezeichnung der hochzuladenden Datei eingetragen wird.
Die Formatierung funktioniert bei Input-Feldern vom Typ "text", nicht aber hier beim Typ "file". Hier scheinen browserspezifische Formatierungen durch zu schlagen.
Der HTML-Code für die beiden Input-Feldarten sieht bis auf den Type ziemlich gleich aus:

Code:
<input class="langfeld" type="file" size="30" name="Upload-Datei"/>

bzw. für ein normales Text-Input-Feld:
Code:

<input class="langfeld" type="text" size="30" name="Nachname"/>


Hier die entspr. Styles:
Code:
input { border: 1px solid #24347A; padding-left: 4px; padding-right: 4px; }

input.langfeld { width: 190px; }

Weiß jemand einen Trick hierzu?

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6988

BeitragVerfasst am: 29.10.2008 21:48    Titel: Antworten mit Zitat

Zuerst einmal grundsätzlich:

Der Dateiupload ist nicht dokumentiert, da er (wie Du selbst zeigst) noch nicht zuverlässig/zufriedenstellend funktioniert und nur durch Lesen des Quelltextes erkannt werden kann.

zu 1.) vorgesehen ist die Text-Version, weil das Template auch immer der Ausgabe dient

zu 2) das ist eine Kontrollausgabe, die in der funktionierenden Version entfernt werden wird

zu 3) das ist bei allen Formularen so. Es wird ja nicht der Inhalt dieses Feldes sondern die Datei gesendet. Daher kann diese Info auch nicht rekonstruiert werden. Was gesendet wird siehst Du ja bei 2.)

zu 4.) Stimmt. Kann nicht formatiert werden.. aber es gibt Lösungen...
http://www.quirksmode.org/dom/inputfile.html

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7

 
Für dieses Posting bedanken sich die folgenden User: Mr. Magpie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 31.10.2008 12:39    Titel: Antworten mit Zitat

MarkusR hat Folgendes geschrieben:
Zuerst einmal grundsätzlich:

Der Dateiupload ist nicht dokumentiert, da er (wie Du selbst zeigst) noch nicht zuverlässig/zufriedenstellend funktioniert und nur durch Lesen des Quelltextes erkannt werden kann.

Oder man verfolgt das Forum Smile ...

MarkusR hat Folgendes geschrieben:
Noch nicht dokumentiert habe ich übrigens den Dateiupload per Formular...

...und schließt daraus, dass es nur noch an der Dokumentation mangelt.

Das "Zuerst einmal grundsätzlich" war m.E. also ziemlich deplatziert.

Und, ja, wir sind manchmal etwas empfindlich Confused

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6988

BeitragVerfasst am: 31.10.2008 12:55    Titel: Antworten mit Zitat

Schon ok...

Vielleicht sollte ich solche Dinge nicht entwickeln weil sie mir Spaß machen sondern darauf warten, daß sich in irgendeinem Zusammenhang daraus eine Notwendigkeit ergibt.

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 31.10.2008 13:01    Titel: Antworten mit Zitat

Doch, doch! Bitte entwickle solche Dinge weiter mit Spaß und sobald sie dir in den Sinn kommen!
Eine Upload-Funktion vermisste ich schon lange, und just im Moment kann ich sie gut gebrauchen.

Leider hast du ja bereits die (Fort-)Entwicklung des alternativen Parsers fallen gelassen. Ich sag's dir ganz ehrlich: Ohne diesen, könnte ich gar nicht mehr auskommen!

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 31.10.2008 18:27    Titel: kleine Anregung / Feature-Request Antworten mit Zitat

Eine kleine Anregung/ein Feature-Request für mod_form:

Wenn man über die URL Werte an das Formular übergibt, ist es etwas unschön, dass all die schönen Parameter in der Adressleiste des Browsers zu sehen sind.
Ich wünschte, das Formular würde in solchen Fällen eine Art Initialisierungslauf machen - also ganz so, als würde der Benutzer auf den Submit-Button klicken -, bei welchem aber im Ggs. zum Submit nicht-ausgefüllte Pflichtfelder usw. erst einmal nicht entsprechend markiert würden.
Mit Hilfe einer Checkbox in den Modul-Einstellungen sollte dieses Verhalten für Formulare, bei denen dies nicht nötig ist, abschaltbar sein.

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6988

BeitragVerfasst am: 31.10.2008 18:50    Titel: Antworten mit Zitat

Wenn man bei "Formular-Versandart" statt GET einfach mal POST auswählt, dann erscheint dies nicht in der Adresszeile.

Dies gilt auch für die Übergabe von Parametern, die man statt über eine URL über ein Formular mit Submitbutton und method=post an das Formular sendet...

Man baut also im Artikeltemplate statt
Code:
<a href="../mod_form/index.php?mail=<!-- Text: Mail-Adresse; -->">Kontaktformular</a>

ein Formular in der Form
Code:
<form action="../mod_form/index.php" method="post">
<input type="hidden" name="mail" value="<!-- Text: Mail-Adresse; -->">
<input type="submit" value="Kontaktformular">
</form>


Ich fürchte, daß ich diese Möglichkeit der Werteübergabe nicht explizit erwähnt habe, obwohl es schon immer so gedacht und programmiert war... Embarassed

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7

 
Für dieses Posting bedanken sich die folgenden User: Mr. Magpie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 31.10.2008 18:59    Titel: Antworten mit Zitat

MarkusR hat Folgendes geschrieben:
Wenn man bei "Formular-Versandart" statt GET einfach mal POST auswählt, dann erscheint dies nicht in der Adresszeile.

Nicht, wenn die Parameter über einen URL an das Formular übergeben werden.

MarkusR hat Folgendes geschrieben:
[...]über ein Formular mit Submitbutton und method=post an das Formular sendet...

Dann müsste ich in meinem Artikel anstelle des einfachen Links ein Formular generieren, darin die entsprechenden hidden-Felder belegen und den Submit-Button wie einen einfachen Link aussehen lassen.
So meinst du das doch, oder?

EDIT: Razz Wieder einmal eine Post-Edit-Überschneidung

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6988

BeitragVerfasst am: 31.10.2008 19:03    Titel: Antworten mit Zitat

Zitat:
den Submit-Button wie einen einfachen Link aussehen lassen

eleganter wäre es einen normalen Link mit einer JS-Funktion das Formular versenden zu lassen
http://de.selfhtml.org/javascript/objekte/forms.htm#submit

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 31.10.2008 19:03    Titel: Antworten mit Zitat

MarkusR hat Folgendes geschrieben:

Man baut also im Artikeltemplate statt
Code:
<a href="../mod_form/index.php?mail=<!-- Text: Mail-Adresse; -->">Kontaktformular</a>

ein Formular in der Form
Code:
<form action="../mod_form/index.php" method="post">
<input type="hidden" name="mail" value="<!-- Text: Mail-Adresse; -->">
<input type="submit" value="Kontaktformular">
</form>


Klasse Idee!

Deine Methode der "kleinen Anregungen" funktioniert!

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 31.10.2008 19:05    Titel: Antworten mit Zitat

MarkusR hat Folgendes geschrieben:
Zitat:
den Submit-Button wie einen einfachen Link aussehen lassen

eleganter wäre es einen normalen Link mit einer JS-Funktion das Formular versenden zu lassen
http://de.selfhtml.org/javascript/objekte/forms.htm#submit

Nee, auf JS will ich soweit wie möglich verzichten.

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6988

BeitragVerfasst am: 31.10.2008 19:16    Titel: Re: mod_form RC2 und File-Upload Antworten mit Zitat

Mr. Magpie hat Folgendes geschrieben:
2. (Fehler-)Meldung beim erfolgreichen Upload

Ich erhalte, wenn die Datei hochgeladen wird/wurde immer folgende Meldung vor dem gesamten restlichen Seitenquellcode:
Code:
Array
(
    [Upload-Datei] => Array
        (
            [name] => Bilddatei.gif
            [type] => image/gif
            [tmp_name] => /tmp/phpSkGtgI
            [error] => 0
            [size] => 3427
        )

)

Natürlich optisch als Einzeiler, aber im Seiten-Quellcode so wie hier abgebildet. Hier bei einem Upload der Datei Bilddatei.gif mit 3427 Bytes Größe.


Der Vollständigkeit halber:
Um das zu beseitigen kann in includes/actions.inc.php bei ca. Zeile 100 dieser Teil entfernt oder auskommentiert werden:
Code:
      if ($dothefiles) {
         print_r($_FILES);
      }

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 31.10.2008 20:17    Titel: Antworten mit Zitat

Danke, hab' ich schon gemacht.
_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6988

BeitragVerfasst am: 31.10.2008 20:41    Titel: Antworten mit Zitat

Und nochmal zu Punkt 3.)

Ich kann zwar mittlerweile den gewählten Pfad und Dateinamen speichern, aber ALLE Browser verhindern eine Vorbelegung von file-Feldern, da dies sonst eine Sicherheitslücke darstellen würde, mit der man sich beliebige Dateien vom Rechner des Users holen könnte.

Mehr als eine Meldung wird daher nicht drin sein...

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 31.10.2008 20:48    Titel: Antworten mit Zitat

Danke, ist schon okay.

Ich werde diese Felder auf "needed" setzen, sodass der User die Dateien, welche er vor der Formularprüfung ausgewählt hat, eben noch einmal zusammensuchen muss. Immerhin kann er sie dann nicht vergessen, anzugeben.

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Modul Formular (Conpresso 4) Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen