catvarlog schrieb:
dort siehst du komische vertikale striche vor einigen code-zeilen. das sind irgendwelche sonderzeichen, die php nicht verarbeiten kann. in anderen editoren sind diese u.U. nicht sichtbar.
Yo. Zeichen 160, sieht in ISO 8859-1 aus wie ein Leerzeichen, entspricht in HTML. Weg damit.
PHP:
$test = "Hallo ".$form["name"].", deine blah ist".$form["blah"].";
oder "Hallo {$form['name']}, deine blah ist {$form['blah']}."
Bei Arrayindices in Hochkommas in Strings muß diese Form benutzt werden.
Zu dem Skript:
Mit exit() abzubrechen ist schlecht. Es bricht die Verarbeitung der Seite ab. Alles was danach an HTML kommt wird nicht zum Browser geschickt (hier: das </body></html>).
Es fehlt mir ein Konzept bei der ganzen Geschichte. So wäre es m.E. besser:
1. Benutzer ruft Kontaktseite auf
2. Benutzer trägt Daten ein
3. Benutzer schickt Seite ab
4. Prüfung ob Pflichtfelder ausgefüllt wurden, Prüfung der Inhalte aller Felder
5a. Wenn alles OK ist, "Danke"-Seite zeigen
5b. Wenn Fehler aufgetreten sind,
- Mitteilen, daß Fehler aufgetreten sind
- Fehler aufzählen
- Das Formular nochmals anzeigen, die abgeschickten Werte als Vorgaben in den Feldern
- zurück zu 2
Zu deinem Formular:
Momentan halte ich es für ein Kontaktverhinderungsformular. Ich will nur eine Frage stellen, und muß dafür ins "Kreuzverhör"?
Ziel ist es, zur Kontaktaufnahme zu animieren. Dazu sollte man nicht den Datensammler raushängen lassen, wie man es zu oft sieht. Also nur die Daten erheben, die man für den Kontakt braucht.
Desweiteren verarbeitest du die Daten eh nicht automatisch weiter, eine solche Feingliederung wie du sie jetzt hast ist also garnicht nötig.
Vorschlag:
Kennzeichnung der Pflichtfelder!
Firma
Ihr Name (Pflicht)
Wie möchten Sie kontaktiert werden? Bitte geben Sie E-Mailadresse, Telefonnummer, Faxnummer oder Anschrift ein. (Freundlich, gibt freie Auswahl -> wird positiv angenommen, Prüfungen können unterbleiben)
Kontaktdaten (Pflicht) - Freifeld
Nachricht (Pflicht)
Vergiß den Betreff, die Erfahrung zeigt, daß die Leute eh nicht wissen was sie reinschreiben sollen und da irgendeine Verlegenheitstext wie "Frage" oder so reinschreiben.
Alles direkt freundlicher, mit Freiheiten, weniger ausfragend. Maclike ;-)
Dann noch:
Feldlängen sind schlecht, wenn der Benutzer nicht vorher weiß, wieviel Text er maximal reinschreiben darf, und wieviel er schon "verbraucht" hat.
Fehlermeldungen wie "X ist zu lang" sind auch schlecht, da der Benutzer nicht weiß, wieviel er kürzen muß.
Laß die "zu lang" Prüfungen ganz weg, sind recht sinnfrei. Es gibt keinen technischen Grund dafür.
500 Zeichen für die Nachricht sind zu knapp. Kappe heimlich bei 10000 Zeichen und gut ist.
Kappe die anderen Felder auch heimlich. Und zwar großzügig! Ernsthafte Anfragen enthalten dann immernoch alle Daten, und bei Spaßvögeln, die dir 100.000 Zeichen in die Kontaktdaten schreiben, wird die Mail nie eine Maxmalgröße Überschreiten.
Der Benutzer soll sich nicht eingeschränkt fühlen, keine künstlichen technischen Schranken.
Die Regexp für die Emailadresse ist falsch. Es gibt TLDs mit mehr als vier Zeichen und sie erfaßt auch nicht alle gültigen Emailadressen. Es gibt eine, die umfaßt eine ganze Buchseite. Ich prüfe nur die allgemeine Form <irgendwas@irgendwas.irgendwas>.
Die semantischen Prüfungen kannst du dir eh sparen, wenn du meinem Vorschlag folgst.
Übrigens: Du glaubst garnicht, wieviele Leute bei Telefon sowas wie "0221 / 4711 oder -0815" eintragen. Und das sollen sie auch dürfen.
Den "Zurücksetzen" Knopf kannst du auch weglassen (sauberer Oberfläche), ich habe noch nie gesehen, wie jemand einen reset Button benutzt hätte. Wofür auch. Kaum jemand weiß wofür die überhaupt gut sind.
Viel Erfolg noch!