Forum > Formitude
Re: Eingaben übergeben und formatiert ausgeben
Hallo Andreas,
die Daten stehen, wie in der Doku beschrieben, in dem $values-Array, in das Du auch die Startwerte reinschreibst. Fettgedruckt kannst Du sie nach erfolgter Validierung des Formulars z.B. so ausgeben:
print '<b>'.htmlspecialchars($values['name'], ENT_QUOTES).'</b>';
Das htmlspecialchars() dient dazu, HTML-Codes innerhalb des Strings zu kodieren, damit keine HTML-Ausgabe über das Formular eingeschmuggelt werden kann.
Grüße und ein RTFM
Carsten
Eingaben übergeben und formatiert ausgeben
Hi!
Also die Demo hab ich schon so modifiziert, dass sie meine Angaben annimmt. Nun meine Frage:
Wie kann ich einzelne Eingabewerte abfragen?! Also dass ich zum Beispiel den Namen abfrage und den anschließend in z.B. fettgedruckt ausgebe.
PS: Bin ein PHP n00b also gut erklären.
Danke
Re: Absender Adresse ändern?
siehe http://www.internalscripts.de/forum/mail-chute/
Absender Adresse ändern?
Guten Tag.
Ist es irgendwie möglich, dass man die Absenderadresse ändert?
Im Moment steht bei mir immer wwwrun@......de
Am besten wäre es natürlich, wenn dort die Mailadresse stehen würde die der Absender des Formulars eingetragen hat, damit man direkt antworten kann.
Sonst aber halt eine meiner Mailadressen wie: webmaster@......de
Vielen Dank für die Hilfe
Datei formitude-1_4 runtergeladen - und jetzt?
Naja ich hab mir die Datei runtergeladen und wollt die jetzt mit Dreamweaver bearbeiten ...
Normalerweise finde ich im DW-Fenster dann die Tabelle welche ich dann nach meinen Vorstellungen ändern kann
Und da beginnt schon das Rätsel - die Datei ist je weder eine php noch eine html-Datei ...
Wie kann ich diese also bearbeiten?
Wenn ich mir den Code der Demo-Seite anschau find ich auch keine Tabellen ...
Kann es sein, dass das Demo auf die heruntergeladene Datei "zugreift"?
Vielen Dank, liebe Grüße Christian
Checkbox einfügen
Die Beiträge wurden in das PHP-Mail-Chute-Forum verschoben.
Re: Datum Standardwert
Hat sich erledigt, war ein Eigentor von mir, das Script arbeitet auch beim Datum ganz normal.
Datum Standardwert
Ich habe im Forum bereits nachgesehen, aber leider noch keine Infos auf mein Problem gefunden.
Ich lese die Standardwerte von einer Datenbank ein, dies geht soweit problemlos. Lediglich bei den Datumsfelder habe ich keine Anzeige wenn ich die Vorgabewerte unter $values definiere.
Ich habe auch versucht dort das Datum direkt zu definieren, falls das Eingabeformat der Datenbank nicht richtig ist. Auch das hat nicht funktioniert. Ich denke ich stelle mir selbst ein Bein. Bitte um kurzen Denkanstoß.
Grüße aus Österreich.
PS.: Das Scritp ist super, danke.
Re: Felder anordnen
Hallo Michi,
Mann, Du hälst einen ja ganz schön auf Trab! :) Zu Deiner Frage: Nein, mehrere Felder pro Zeile sind z.Zt. nicht möglich.
Schönes Wochenende
Carsten
Felder anordnen
Hallo,
habe ich eine Möglichkeit 2 Felder nebeneinander anzuordnen?
Wäre für jeden Tipp sehr dankbar!
Danke!
Michi
Re: Zahlen / Währung überprüfen
Hallo,
guck Dir dafür doch z.B. mal die Date-Klasse an. Die basiert auf dem TextField. So ähnlich könntest Du dann auch "ableiten". Erzeuge ein TextField und überschreibe dann die 'check_value'-Variablenfunktion mit Deiner Validierungsfunktion.
Grüße
Carsten
Zahlen / Währung überprüfen
Hallo ans Forum,
hat jemand schon Erfahrungen mit Feldern um Felder auf Zahlen / Währungseingaben zu überprüfen? Alles andere habe ich jetzt so hingekriegt, wie ich es brauche.
Verstehe da leider nicht ganz, wie ich eine neue Klasse usw. anlegen muß, um diese Überprüfung darzustellen!
Danke!
Darkpriest
Vordefinierte Select-Option und "Abbrechen"-Button
Um eine Option vorzuselektieren wird der Schlüssel der Option in dem $values-Array unter dem Schlüssel des Select-Controls abgelegt.
Den "Abbrechen"-Button hast Du eigentlich schon genauso beschrieben, wie ich es auch machen würde. Das funktioniert allerdings nur bei einseitigen Formularen, bei mehrseitigen wird immer ein "Weiter"- bzw. "Fertigstellen"-Button angezeigt.
Button "Abbrechen!
Hallo,
wie realisiere ich einen "Abbrechen"-Button? ich habe in dem Array folgende Änderung gemacht:
$form['submit_buttons'] = array('submit' => 'Absenden',
'submit1'=> 'Abbrechen');
u. dann eine Abfrage nach submit1.
Bitte um Hilfe!
Danke!
Darkpriest
P.S. Das Script ist echt super!!!
Selectfelder
Hallo,
jetzt muß ich nochmal dumm nachfragen:
Für das selectfeld erstelle ich ein array, das dann die werte (Mayer, Müller, Huber) aus meiner Stammdatentabelle aus der Datenbank ausliest!
Ich möchte nun Vorbelegt den Wert ausgewählt haben, der in dem jeweiligen datensatz steht (mit der möglichkeit weiterhin auf Mayer, Müller, Huber) wechseln zu können!
Mir fehlt hier der Denksatz!
Wäre dir für hilfe sehr dankbar!
Darkpriest
RE:
Hallo,
habe meinen Fehler gefunden! Habe das Paket nachinstalliert!
Vielen Dank für deine Mühe!
DANKE!
Darkpriest
Re: Fehler
Dann ist wohl die ctype-Erweiterung nicht einkompiliert, obwohl die eigentlich zum Standardumfang gehört. Weitere Infos findest Du unter http://de.php.net/manual/de/ref.ctype.php .
Fehler
Hallo Carsten,
danke für deine ANtwort! Bekomme diesen Fehler:
Fatal error: Call to undefined function ctype_graph() in /srv/www/htdocs/009_PHP/formitude.php on line 508
Version 1.4 von Formitude!
Danke!
Darkpriest
Re: Datum
Hallo,
setzt doch mal
error_reporting(E_ALL);
in die Zeile direkt vor dem include-Statement, mit dem die Formitude-Bibliothek eingebunden wird und poste hier die ausgegebenen Meldungen. Die besagte PHP-Version habe ich leider nicht installiert und kann es deshalb auch nicht testen. Die Felder können über das $values-Array, wie in der Doku beschrieben, mit Werten belegt werden.
Gruß
Carsten
RE: Datum
Hallo Carsten,
1. danke für deine schnelle Antwort! Ich habe die Version PHP 5.1.2 unter SUSE 10.1 laufen!
Kannst du mir einen Tipp geben, wo das in der Konfiguration liegen könnte?
2. Kann ich das Formular auch mit Werten aus einer Datenbank vorbefüllen? Wie muß ich die Werte angeben, damit sie so erkannt werden? Kannst du mir da weiterhelfen?
Danke!
Darkpriest
Re: Probleme mit Datumsvalidierung
Da kann ich Dir so leider auch nicht weiterhelfen, bei mir arbeitet die Demo auch mit dem von Dir angegebenen Datum korrekt. Evtl. liegt's an der Serverkonfiguration oder an der PHP-Version. Wie war die doch gleich?
Probleme mit Datumsvaliedierung
Hallo,
ich habe eine Problem mit der Validierung des Datums! Habe mir die Demo heruntergeladen u. auf unseren Webserver gelegt! wenn ich das teil aufrufe u. ein kpl. ungültiges Datum (wie 10.20.2006) eingebe, erscheint nur eine weisse seite mit der Überschrift "Formitude-Demo".
Was mache ich hier falsch / bzw. wo muß ich da noch was ändern?
Danke!
Darkpriest
Re: Daten per E-Mail versenden
Hallo Wilfried,
die Daten des Formulars liegen in dem $values-Array vor. Dies kannst Du dann als zweites Argument an die Funktion maildrudge_replace_template_vars() zum Formatieren der Nachricht übergeben. Die Werte des Formulars können dann direkt über die Platzhalter eingebunden werden, z. B. wird der Platzhalter %%name%% dann durch den Formularwert unter dem Schlüssel 'name' ersetzt.
Grüße
Carsten
Daten per E-Mail versenden
Hallo, ich bin neu hier, mache die ersten Versuche mit Formitude und Mail-Drudge
Wie bringe ich denn die Formulardaten in die Variable $body?
Danke für jeden Hinweis.
Wilfried
Re: Noch eine frage
Hallo Papong,
eine Auswahlbox für ein Datum gibt es zwar nicht, aber ein Textfeld zur Datumseingabe (Date-Klasse). Der Aufbau wird in der Doku beschrieben und in der Demo gezeigt, das Parsen der Benutzereingaben habe ich unter Tips & Codeschnipsel noch etwas genauer beschrieben.
Grüße
Carsten
PS: In meinem vorherigen Post hat sich ein kleiner Fehler eingeschlichen: formitude_perform_dialog() liefert im Erfolgsfall nicht true, sondern einen Wert ungleich NULL (den gedrückten Button-Namen).
Noch eine frage
Hallo ich möchte in das Formular eine Auswahlbox für Tag, Monat und Jahr einbinden. Da fehlt mir mal wieder der zusammenhang.
Sorry für die vielen Fragen.
Cu aus Thailand
Re: Problem
Hallo Papong,
Du kannst über das $values-Array auf die Formulardaten zugreifen, also z.B. $values['zeitraum'] anstatt zeitraum. Ob das Formular übertragen und korrekt ausgefüllt wurde, wird durch den Rückgabewert der Funktion formitude_perform_dialog() angezeigt. Nur wenn hier true geliefert wird, sind die Formulardaten auch gültig. Zum E-Mail-Versand: Wenn Du direkt E-Mails mit der mail()-Funktion versendest, dürftest Du eigentlich nur ASCII-Zeichen verwenden und keine Zeile dürfte länger als 72 (oder 76?) Zeichen sein. Ansonsten müssen die Mails vorher speziell kodiert werden, das kannst Du z.B. mit dem Mail-Drudge-Paket auf dieser Website machen. Um eine Vorlage zu haben wie Formitude und Mail-Drudge zusammenspielen, kannst Du Dir mal das Mailformular PHP-Mail-Chute ansehen.
Grüße nach Thailand
Carsten
problem
Danke erstmal für die schnelle Hilfe.
Nun kämpfe ich mit dem Versand. Da stosse ich auf einige Probleme.
Habe folgenden Code an das ende des Scripts gesetzt:
$mail_empfaenger="Banthai@gmx.net";
$mail_absender=$mailaddi;
$betreff="Eine Testmail";
$text="Mein Name ist $Vorname $Nachname, ich bestelle $tourennummer.
senden sie mir eine Mail $email. \n Mit freundlichen Grüssen";
$tourennummer=Tourennummer;
$zeitraum= Zeitraum ;
$name =Name ;
$vorname =Vorname;
$gebdatum= Geburtsdatum;
$strasse =Strasse;
$postleitzahl= Postleitzahl;
$stadt= Stadt;
$land = Land;
$fuehrerscheinnummer= Fuehrerscheinnummer;
$passnummer = Passnummer;
$email = E-Mail;
$zahlart = Zahlart;
mail($mail_empfaenger, $betreff, $text,"from:$email_absender");
soweit so gut. nur bei aufrufen des Formulars wird bereits eine leere Seite gesendet und nach ausfüllen kommt zwar eine mail ober ohne die Formulardaten.
Wie nun weiter.? Bitte einen kleinen denk Anstoss
Evtl. zu meiner Entschuldigung bin schon etwas älter 55 jahre und nur gelernt aus Foren usw. Gelegentlich fehlt der Zusammenhang .
Mehr von Thailand? WWW.Baan-Thai.net
Re: Graphischer code
Hallo Papong,
am besten definierst Du dann eine neue Item-Klasse, als Vorlage dazu kannst Du das Text-Field benutzen. In die (dann umbenannten) Funktionen formitude_get_text_control() und formitude_check_text() kannst Du dann den Code zur Ausgabe und Überprüfung des Captchas einbauen.
PS: Hätte nicht gedacht, daß hier auch echte Besucher aus Thailand herfinden. Dann muß ich beim Sperren von IP-Adressen wohl vorsichtig sein, von da kommt nämlich auch viel Spam. ;)
Grüße
Carsten
Graphischer code
Gute code nur eine frage von einem nubi , wie kann ich eine graphische codabfrage einbauen? Code usw. wären ja vorhanden aber wie weiter?
Danke im voraus für die Hilfe
Re: Absenden
Hallo derweseler,
Es gibt da eine wunderbare Klasse (phpmailer) diese kann von folgendem link heruntergeladen werden:
http://phpmailer.sourceforge.net/
Gruss,
Kurt
Re: Wie erzeuge ich Hidden Input Textfelder mit FORMITUDE
Hallo Carsten,
danke, für deinen Input, werde das Info-Item benutzen, habe übrigens die Funktion nicht in der Biblio geändert, sondern habe diese in meinen Script kopiert, der Version wegen. Ich bin einfach noch ein bisschen ein Green Horn was PHP angeht.
Gruss,
Kurt
Re: Wie erzeuge ich Hidden Input Textfelder mit FORMITUDE
Hallo Kurt,
wenn Du einfach nur einen Text anzeigen willst, kannst Du dazu das Info-Item benutzen, wenn Du einen Wert transportieren willst, kannst Du ihn einfach in das $values-Array schreiben. Ich verstehe irgendwie nicht, wozu das gut sein soll. Außerdem kann ich nur davor warnen, die Bibliothek zu ändern, denn das nächste Update kommt bestimmt und dann mußt Du die Änderungen noch einmal durchführen. Wenn Du den Code ändern willst, kopierst Du den Abschnitt (in diesem Fall die TextField-Klasse) am besten in eine andere Datei und benennst die Funktionen um, dann ersparst Du Dir zukünftig Arbeit.
Grüße
Carsten
Re: Wie erzeuge ich Hidden Input Textfelder mit FORMITUDE
Hallo Carsten,
sorry, ich habe mich nicht richtig mitgeteilt, ich verwende nicht die Hidden Felder sondern erstelle reguläre Text felder um die Variablen an das Formular zu übergeben. Zuerst wollte ich es mit dem $values array als hidden implementieren, habe mich aber entschieden die Felder mit der modifizierten Variante von (formitude_create_text_field) zu lösen.
Kurt
Re: Wie erzeuge ich Hidden Input Textfelder mit FORMITUDE
Habe ich das richtig verstanden und Du erzeugst die Hidden Controls jetzt mit der modifizierten formitude_create_text_field()-Funktion? Das ist unnötig, da diese, wie schon gesagt, automatisch erzeugt werden. Eine Validierung muß auch erfolgen, da von einem Angreifer beliebige Werte gesendet werden können, auch wenn diese über das Formular nicht änderbar sind.
Re:Wie erzeuge ich Hidden Input Textfelder mit FORMITUDE
Vielen Dank, Carsten !!
Dass funktioniert super.
Habe die Funktion in formitude.php (formitude_create_text_field) noch um das Argument $readonly ergänzt, somit kann
bei Hidden Input Feldern nicht's mehr verändert werden. Es muss keine Validierung mehr erfolgen, es werden die Values verwendet wie diese übertragen wurden.
Viel spass und bis bald !!
Kurt
Re: Wie erzeuge ich Hidden Input Textfelder mit FORMITUDE
Hallo Kurt,
es muß einfach nur ein Wert in dem $values-Array abgelegt werden. Für Werte, für die kein Control existiert, werden automatisch Hidden-Controls angelegt. Bei der Auswertung müssen diese Werte aber genau geprüft werden, da keine automatische Überprüfung stattfindet.
Grüße, Carsten
Wie erzeuge ich Hidden Input Textfelder mit FORMITUDE
Hallo Carsten,
sack stark dein Tool. Nur wie kann ich Hidden Input Felder definieren und diese dann auch auslesen.
Gruss,
Kurt
Re: probleme
Hallo Thorsten,
die Zeile
$form ['items']=array_merge($pages['kontaktdaten'],$pages['kontaktanliegen']);
muß direkt vor dem Aufruf von formitude_print_entries() stehen.
Grüße
Carsten
probleme
ich kirege es geht einfach nicht hin. Das mehrseitige Formular geht, aber ausgegeben wird nur die letzte seite. Hier mein formular-aufruf.
Da ich _kein_ PHP-kundiger bin bitte ich um eine konkrete Hilfe, welche Function ich wie ändern muss, wenn mein aufruf des Formular so aussieht:
...
include_once 'includes/formitude.inc.php';
// Formular erzeugen
$form = formitude_create_form(
'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?main=5', 'post',
'iso-8859-1', $formitude_messages_de, 'formitude_', 'formitude_');
// Items erzeugen
$pages = array(
'kontaktdaten' => array(
formitude_create_block('<h3>Bestellung</h3>', 'caption'),
formitude_create_text_field('vorname', 'Vorame', true, 80),
formitude_create_text_field('name', 'Name', true, 80),
formitude_create_email_address_field('email', 'E-Mail',
true)
),
'kontaktanliegen'=> array(
formitude_create_select('interest', 'Was interessiert Sie:',
array(
'airbrush' => 'Airbrush Design',
'illustration' => 'Illustration',
'graphik' => 'Graphik Design',
'internet' => 'Internet Design'),
false, 0),
formitude_create_text_area('kommentar', 'Kommentar', true, 200),
formitude_create_check_box(
'datei', 'Wollen sie ein Bild mitsenden?', false),
)
);
$form ['items']=array_merge($pages['kontaktdaten'],$pages['kontaktanliegen']);
// Submit-Button einf?gen
$form['submit_buttons'] = array('submit' => 'Absenden');
// Default-Werte setzen
$values = array();
// Formular anzeigen
$button = formitude_perform_multipage_dialog($form,
$values,$pages,
'<p>Die mit * gekennzeichneten Felder m?ssen ausgef?llt werden!</p>');
if($button == 'submit')
{
// Formular wurde validiert, Daten ausgeben
formitude_print_entries($form);
print '<p><a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].
'">Nochmal!</a></p>';
}
..
besten dank,
torsten
RE cooles teil
ja danke erstmal.
Re: cooles Teil
Wie wäre es denn mal, wenn ein paar andere mithelfen? ;-) Ich nehme gern auch fremden Code mit auf oder richte eine Linkliste mit Erweiterungspaketen ein.
Die Daten von mehrseitigen Formularen findest Du, wie bei einseitigen auch, in dem per Referenz übergebenen $values-Array. Wenn Du aber die Anzeige der Daten meinst, so mußt Du vor dem formitude_get_entries()-Aufruf noch die einzelnen Formularseiten in einem Array zusammenführen. Ein Beispiel ist unter Tips & Codeschnipsel zu finden.
cooles teil
nur zwei fragen um den Programmiererergeiz anzustacheln...
schön wäre doch, wenn 2 Felder pro zeile möglich wären. ´;-) jaja ich habs gelesen.
Aber wie wäre es mit einem FileUpload-feld?
Die auswertung von mehrseitigen Formularen... wo finde ich die Daten
da gehe ich jetzt mal suchen
---------------
bilderbar.de
Re: Absenden
Formitude enthält überhaupt keine Funktion zum Versenden von E-Mails, sondern dient dazu, Eingabemasken zur Verfügung zu stellen. Die eingegebenen Daten können zwar auch per E-Mail versendet werden, das mußt Du jedoch selbst programmieren.
Absenden
Ich habe wahrscheinlich eine Frage, bei der alle mit dem Kopf schütteln.
Ich habe mir die Dateien hochgeladen.
Nun wollte ich einmal die Demo ausprobieren.
Eine Email kommt bei mir aber nicht an.
Ich habe auch nicht gefunden, wo ich eintrage wohin das Formular gesand werden soll.
Was muß ich machen?
Bitte helft einem armen Irren!
Neue Formitude Version 1.4
Formitude liegt jetzt in Version 1.4 vor. Neben einigen Bugfixes und kleinen Erweiterungen sind die folgenden Neuerungen enthalten:
- Neben POST kann nun auch GET als Übertragungsmethode verwendet werden.
- Radio-Buttons werden unterstützt.
- Viele interne Funktionen werden jetzt offiziell dokumentiert. Dies erleichtert insbesondere die Erweiterung der Bibliothek
Re: Daten auswerten
Da würde ich Dir eher den umgekehrten Weg empfehlen und die Formular-Controls aus einem Fragen-Array erstellen:
$fragen = array(
'frage1' => 'Hier Frage-1-Text',
'frage2' => 'Frage 2'
);
// Checkboxen erstellen
foreach($fragen as $key => $label)
$items[] = formitude_create_check_box($key, $label);
// CSV-Header
$csvheader = implode(',', array_keys($fragen));
// CSV-Daten
foreach($fragen as $key => $label)
$antworten[] = $values[$key];
$csvdata = implode(',', $antworten);
hätte ja sein können, dass man das irgenwie aus dem Formular erstellen kann. Man hat ja schließlich die Fragen schon mal eingegeben. Insgesammt können es ja schon sehr viele Daten sein, und dann wird es schnell unübersichtlich, wenn man z.B. die Reihenfolge ändert.
Re: Daten auswerten
Nun, die Antwort hast Du Dir eigentlich schon selbst gegeben:
$fragen = array('Frage1', 'Frage2');
$comma_separated = implode(',', $fragen);
Re:Re: Daten auswerten
Hallo Carsten,
Vielen Dank, genau so hab ich mir das vorgestellt.
Aber leider ist es mir auch nach längerem Probieren nicht gelungen in der ersten Zeile die dazugehörigenn Überschriften/Namen einzufügen.
Gibt es da auch eine Möglichkeit?
z.B. $comma_separated = implode(',', $Fragen); oder so??
Gruß Mathias
Re: Daten auswerten
Hallo Mathias,
dazu kannst Du die PHP-Funktion 'implode' benutzen:
$comma_separated = implode(',', $values);
$comma_separated enthält jetzt alle Werte des Arrays $values als komma-separierten String. Um die Reihenfolge genau festzulegen und nicht alle Werte des Arrays zu übernehmen, kannst Du die entsprechenden Werte auch vorher in ein neues Array kopieren, z.B.:
$antworten = array($values['antwort1'], $values['antwort2']);
$comma_separated = implode(',', $antworten);
Gruß
Carsten
Daten auswerten
Ich habe mir nun einen Fragebogen erstellt.
Soweit ist auch alles sehr gut und einfach, aber nun will ich die Daten aus dem Fragebuch beispiels weise in Textform in einer CSV-Datei speichern.
Was muss ich machen um die daten in einen String der form: Antwort1,Antwort2,...,\n zu bekommen?
Ich komme nicht weiter.
Ansonsten sehr schönes Programm.
Vielen Dank
Mathias
e-mail als Text-Version
Hallo Carsten,
vielen Dank für den Hinweis,
aber PHP werde ich nie mehr lernen können (unter uns: ich bin über 60). Habe jetzt mühsam eine Homepage aufgebaut - immer anhand einer Vorlage und durch ändern- probieren. Genau so will ich es jetzt machen, daher der Wunsch nach einem fertigen Skript, bei dem ich nur noch gezielt ändern muss.
Ich werde anhand der Code-Schnipsel mein Glück versuchen
Gruß
Klaus
Re: e-mail als Text-Version
Hallo Klaus,
die eingegebenen Strings liegen in dem $values-Array. Daraus kannst Du Dir dann recht einfach einen E-Mail-Text zusammenbasteln. Ich würde mir auch das PHP-Handbuch mal etwas ansehen, wenn Du Dir Deine Homepage programmierst, wirst Du da über kurz oder lang sowieso nicht dran vorbei kommen. Bei dem Beispiel unter Tips & Codeschnippsel kannst Du einfach
$msg = $values['email-text'];
schreiben.
Grüße, Carsten
PS: Der Content-Type-Header muß noch von text/html auf text/plain geändert werden.
e-mail als Text-Version
Hallo,
wenn ich die Codeschnipsel recht verstanden habe, wird ein e-mail in der HTML-Version verschickt.
Ich hätte gerne eine reine Textversion - gibt es diese irgendwo (und kommentiert, damit auch ich es verstehe) ?
Re: Mehrere Felder pro Zeile ?
Erst denken, dann schreiben !
Hat sich erledigt, sorry.
Re: Mehrere Felder pro Zeile ?
Fehlalarm !
#idprefix_itemname { width: 10em; }
funktioniert, danke !
Jetzt aber eine neue Frage:
Es ist mir gelungen, alle Hintergrundfarben des Formulars zu ändern bis auf die Zeile in der 'Absenden'-Button steht.
Wer kann mir hier weiterhelfen ?
Danke
Klaus
Re: Mehrere Felder pro Zeile ?
Hallo Carsten,
auf die Gefahr hin, dass ich nerve ! Ich habe keine Programmiererfahrung. Ich taste mich vor, indem ich das vorhandene Beispiel abändere. Daher verstehe ich auch nicht, was Du mit
#idprefix_itemname { width: 10em; }
meinst.
In dem CSS-Beispiel kommen nur Ausdrücke der nachstehenden Form vor.
.....
.formitude_value {
color: black;
background-color: white;
}
.formitude_label { width: 9em; }
.formitude_field { width: 27em; }
.....
Ich habe versucht
#formitude_plz { width: 10em; }
bzw.
.formitude_plz { width: 10em; }
Aber das war wohl nichts !
Wie müsste der Eintrag lauten, wenn ich für das Feld plz eine Längenangabe machen wollte ?
Re: Mehrere Felder pro Zeile ?
Hallo Klaus,
zu den einzelnen Punkten:
1. Die Länge kannst Du über Stylesheets angeben, z.B. in einer CSS-Datei: #idprefix_itemname { width: 10em; }
2. Mehrere Felder in einer Zeile sind z.Z. leider nicht möglich
3. Ein Eingabefeld für Nummern wird in der nächsten Version integriert (mit Prüfung auf min/max-Werte)
MfG, Carsten
Mehrere Felder pro Zeile ?
Hallo,
1. Kann man die einzelnen Eingabefelder in unterschiedlicher Länge anlegen (z.B. PLZ nur 5-stellig) ?
2. Kann man mehrere Felder in eine Zeile bringen (z.B. PLZ und Ort)
3. Hat jemand weitere fertige Prüfungen (z.B. PLZ auf num. oder sogar gegen eine Tabelle) ?
Danke
Klaus
Neue Formitude Version!
Formitude steht jetzt in Version 1.3 zum Download bereit. Die folgenden Neuerungen sind enthalten:
- Check-Boxen können als Pflichtfelder markiert werden
- URL-, E-Mail-Adress-, Datums- und Zeitfelder entfernen nun automatisch führende und angehängte Whitespace-Zeichen aus den Formulardaten
- URL- und E-Mail-Adress-Felder akzeptieren keine Whitespace-Zeichen innerhalb der eingegebenen Adressen
- Der Pflichtfeld-Anzeiger (*) kann über das Message-Array übergeben werden (unter dem Schlüssel 'required_indicator')
- Die Bibliothek wurde dahingehend geändert, das keine Notices mehr ausgegeben werden (falls der Error-Reporting-Level entsprechend gesetzt ist)
Da Whitespace-Zeichen innerhalb von E-Mail-Adressen und URLs jetzt nicht mehr akzeptiert werden, kann die zuvor beschriebene E-Mail-Header-Injection nicht mehr durchgeführt werden.
Re: Wie sicher ist das Script Formitude ?
Bei der unter "Tips & Codeschnippsel" beschriebenen Eingabe des Absenders einer zu versendenden E-Mail besteht in der Tat die Möglichkeit einer "E-Mail-Header-Injection". Der Bereich wurde mit einem Kommentar markiert. Die Formitude-Bibliothek selbst ist davon nicht betroffen.
Re: Wie sicher ist das Script Formitude ?
Hallo Klaus,
also bezüglich SQL-Injection o.ä. kann höchstens der Anwender der Bibliothek Mist bauen, das Skript selbst verarbeitet die eingegebenen Daten ja nicht weiter. Ansonsten wurde Formitude auch im Hinblick auf Sicherheit entwickelt, und ist bei mir selbst auch seit ca. einem Jahr zuverlässig im Einsatz. Wer dennoch eine Schwachstelle findet, der möge sie hier bitte posten.
MfG, Carsten
Wie sicher ist das Script Formitude ?
Ich befasse mich erst seit kurzem mit Formmailern und da habe ich erschreckend viele Berichte gelesen über Hacken von Formularen und Injection (?).
Gibt es diesbezüglich positive oder negative Erfahrungen mit formitude ?
Re: Check-Box als Pflichtfeld
Hallo Rüdiger,
zuerst habe ich etwas gestutzt. Warum sollte man eine Checkbox zum Pflichtfeld machen, wenn dann die einzige Auswahlmöglichkeit wäre, dieses zu aktivieren? Aber Du willst dies sicher zum AGB-Akzeptieren etc. benutzen. Zur Zeit ist das leider nicht möglich, in der nächsten Version werde ich es aber integrieren.
MfG, Carsten
Check_Box
Hallo,
kann ich eine CheckBox zum Pflichtfeld machen ?
MfG
Rüdiger
Re: eingabe daten auf 2.seite anzeigen lassen
Hallo Pulk,
um über Buttons Verzweigungen zu realiseren, müßtest Du die Ablaufsteuerung selbst implementieren. Dazu kannst Du evtl. die Funktion formitude_perform_multipage_dialog() als Vorlage benutzen. Um eingegebene Daten auf einer weiteren Formularseite anzuzeigen, können dann in der von Dir geschriebenen Funktion Info-Elemente mit den entsprechenden Werten erzeugt werden. Ein Element das automatisch Werte anzeigt, steht auf der To-Do-Liste.
Re: Zeichen
Hallo Ripster,
das von Dir beschriebene Problem hat nichts mit dem Zeichensatz zu tun, sondern mit dem automatischem quoten von speziellen Zeichen. Dies läßt sich durch Ändern der Konfiguration abstellen. Dazu muß die Option 'magic_quotes_gpc' z.B. in der .htaccess auf 'off' gesetzt werden.
Grüße, Carsten
eingabe daten auf 2.seite anzeigen lassen
ok, hab das jetzt mit dem mehrseitigen formular hinbekommen (ein demo beispiel wäre da toll gewesen, vielleicht für die nächste version).
nun würde ich aber gern auf der 2. seite die eingegeben daten ausgeben lassen. wie kann ich das machen?
mehrseitiges formular mit ausgabe der formulardaten und email versand
hi, erstmal danke für das script, ist sehr hilfreich.
ich habe jetzt die demo version ein bisschen verändert und würde gerne nach eingabe aller daten die daten zur kontrolle ausgeben (was jetzt ja schon passiert) und auf dieser seite dann 2 buttons.
der eine sendet die formulardaten an eine email adresse, der andere springt zurück zum formular wenn man noch was ändern will.
wie mach ich das am elegantesten?
Zeichen
Hallo Carsten,
das angesprochene Problem mit dem Zeichensatz ist doch noch nicht ganz aus der Welt. Auf vorhergehendem Webspace funktionierte Formitude erstaunlicherweise mit dem "utf-8" charset. Da ich die Seite aber auf einen anderen Webspace verlagern musste funktionierte es plötzlich nicht mehr und es kam die Fehlermeldung "Cannot yet handle MBCS in html_entity_decode()". Daraufhin stellte ich die Codierung wie empfholen auf "iso-8859-15". Hier funktioniert es zwar größtenteils mit den Umlauten. Allerdings wird bei Anführungszeichen doppelt und einfach nach dem senden durch formitude ein backslash vor den Anfürungszeichen eingesetzt. Also aus " wird \" und aus ' wird \'. Wenn jemand im Formular einen backslash einfügt, dann werden nach dem senden zwei daraus also aus \ wird \\
Ich bitte nochmals um Hinweise hierzu.
Vielen Dank.
Re: Noch eine Lösung vor dem Optimum
Die Lösung wurde bereits in "Tips & Codeschnippsel" unter dem Beitrag "Formitude-E-Mail-Versand" geschildert. (ganz unten)
Mit freundlichen Grüßen
Carsten
Noch eine Lösung vor dem Optimum
Hallo,
ich danke für die rasche Antwort. Ich habe nochmals alle Charsets überprüft und da war tatsächlich noch ein utf-8 versteckt welcher bei den Mozilla-Browsern zu dem Problem führte.
Das Formular läuft jetzt fast perfekt. Ich versende es mit der E-Mail Funktion aus dem Codeschnipsel Forum. Was mir noch zum Abschluss fehlt ist, daß der Absender aus dem "E-Mail" Formularfeld übernommen wird anstatt "Absender@aaa.bbb" ($headers .= "From: Absender@aaa.bbb\r\n";) sollte hier der Wert aus dem Formularfeld übernommen werden.
Ich bitte auch hier noch um Hilfestellung.
Vielen Dank.
ripster
Re: Problem mit Umlauten - Netscape, Firefox, Opera
Hallo!
Wichtig ist, überall das gleiche Charset zu verwenden: In Formitude, bei den HTTP-Headern und evtl. im Head des HTML-Dokuments (<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">).
Um die HTTP-Header richtig zu senden, kann entweder das Default-Charset gesetzt werden:
ini_set('default_charset', 'iso-8859-15');
oder der Header manuell ausgegeben werden:
header('Content-Type: text/html; charset=iso-8859-15');
Auf UTF-8 o.ä. sollte wegen der schlechten Unterstützung durch PHP vorerst verzichtet werden.
Problem mit Umlauten - Netscape, Firefox, Opera
Hallo,
ich versuche gerade Formitude zu konfigurieren. Als PHP Nichtskönner garnicht so einfach. Momentan habe ich noch ein großes Problem:
Wenn das Formular ausgefüllt wurde und auf "absenden" geklickt wird, dann werden die Umlaute bei allen Browsern außer dem Internet Explorer falsch dargestellt (also nach formitude_print_entries($form)) - habe schon mit "charset" experimentiert - ohne Erfolg.
Ich bitte um Hinweise zur Behebung.
Vielen Dank.
ripster
Re: Wo das Mailscript einfügen?
Der Codeschnippsel zum Versenden der E-Mail muß nach der erfolgreichen Validierung des Formulars ausgeführt werden, also nachdem formitude_perform_dialog() den gewünschten Submit-Button bzw. formitude_perform_multipage_dialog() true zurückgegeben hat.
Wo das Mailscript einfügen?
Hallo,
wo muss ich das Mailscript einfügen damit das Formular nach dem Eintrag verschickt wird?
PHP-Array mit Formitude
Jetzt habe ich mein Problem gefunden - mit vielem Suchen in der PHP-Doku.
Ist vielleicht nicht der optimalste Weg - aber jetzt tut es:
$query = "SELECT max(id) FROM $DBTable";
$result = mysql_query($query) or die("Fehler beim SELECT: <b>$query</b>");
$row2=mysql_fetch_array($result);
for ($i=1;$i<($row2[0]+1);$i++)
{
$query ="SELECT id,$DBTableField FROM $DBTable ORDER by '$DBTableField' ASC ";
$result = mysql_query($query) or die("Fehler beim SELECT2:<b>$query</b>");
$arr = array();
while ($row = mysql_fetch_array($result))
{
$arr[$row[0]] = $row[1];
}
}
return $arr;
Habe mir also meine Array mit der richtigen Struktur zusammen gebaut. Mit diesem $arr funktionert die Nutzung als $options in formitude_create_select.
Zunächst dachte ich das in $result schon mein richtiges Array drin ist. Später dann dachte ich in $row wäre das drin was ich will.
Re: PHP-Array mit Formitude
Ich verstehe immer noch nicht, wie Du darauf kommst, daß das Array irgendwie in einen String gewandelt werden müßte. Und PHP-Code gehört nunmal in eine PHP-Datei, sonst wird der Code nicht ausgeführt. Vielleicht solltest Du Dir das PHP-Handbuch mal etwas ansehen ... ;-)
PHP-Array mit Formitude
Hallo Carsten
Erstmal vielen Dank für deine Antworten.
Leider funktioniert es bei mir noch nicht wie gewünscht.
Schreibe ich die options so wie von dir beschrieben in ein php-file - dann geht es.
Allerdings will ich die options aus einer Datenbank lesen. Und wenn ich die Variable mit dem Array oder die Variable mit dem gewandelten String bei options nutze - dann geht es nicht.
Gruss Raphael
Re: php-string mit create_select
Hallo!
Wieso packst Du das Array in einen String? So ist's richtig:
$options = array(
'1' => 'Arena',
'2' => 'Heinrich Heine',
'3' => 'Bertelsmann',
'leer' => 'leer'
);
formitude_create_select('verlag', 'Verlag', $options, true, 0);
php-string mit create_select
Hallo
formitude_create_select('verlag', 'Verlag', $ARRAY, true, 0),
mit dem String
$ARRAY="array( '1' => 'Arena', '2' => 'Heinrich Heine', '3' => 'Bertelsmann', 'leer' => 'leer' )"
funktioniert nicht. Was mache ich falsch?
Re: php-array mit formitude
Hallo!
Poste doch mal das Array und den Funktionsaufruf. Ich sag Dir dann, was falsch ist.
php-array mit formitude
Hallo
ich versuche dem create_select als options ein php-array zu übergeben. Leider bekomme ich das nicht hin.
Dann habe ich versucht das php-array in einen string mit der richtigen syntax zu wandeln. Aber auch das funktioniert nicht.
Bin in php noch nicht so super bewandert - aber hat hier jemand einen Tip für mich????
Danke
Bitte um kleines Beispiel
Hallo,
ich bastel an einem mehrseitigen Formular. Leider scheint mein IQ nicht ausreichend für das Verständnis des How-To. Kann mir jemand evtl. ein mehrseitiges Formular schicken das ich mir das mal fertig anschauen kann. Vielleicht verstehe ich das dann.
Danke.
Grüße
Kim
Formitude Email Versand
Hallo,
mir gefällt das Script sehr gut und es funktioniert einwandfrei.
Zusätzlich zum "normalen" Script nutze ich die Email Funktion und zu dieser habe ich zwei Fragen die ich mangels PHP Kentnissen nicht selbst lösen kann.
1. Kann man die Zeile
$headers .= "From: Absender@aaa.bbb\r\n";
so ändern, dass dort die im Formular eingetragene Email Adresse erscheint?
2. Besteht die Möglichkeit die Emails abhängig von einer getroffen Auswahl in einem Auswahlfenster zu verschicken, d.h. für jede Auswahl ein anderer Empfänger?
