ß erlauben

Wie verwendet man Module oder Aktion und passt diese an.

ß erlauben

Beitragvon bellyeye » 21. Aug 2008, 23:05

moin,

ich habe das kontaktformular mit rechencaptcha in gebrauch und verfluche gerade die deutsche unsitte des ß.

nun gibt es aber in der zielgruppe meines kunden einen hohen anteil von ß-benutzern, die beim versenden des formulars einen fehler bekommen, sobald sie das hübsch altmodische "scharfe s" benutzen.

sind das hier die zeilen, in denen es erlaubt werden müsste? und wenn ja: wo, wie... hatte ich das erwähnt? in php bin ich eine staunende niete ;)

if (preg_match("/^[^\W\d_]([^\W\d_]|[\-\'\ä\Ä\ö\Ö\ü\Ü\s\.\?\?\?\?\?\?\?])*$/", stripslashes($string)))

(...)

if (preg_match("/^[^\d_]([^\W]|[\-\'\ä\Ä\ö\Ö\ü\Ü\s\"\.\!\?\;\,\:\?\%\(\)\+\=\@\*\?\?\?\?\?\?\?])*$/", stripslashes($string)))


danke im voraus für tipps. oder liegts einfach nur an der zeichencodierung?

carsten
bellyeye
 
Beiträge: 29
Registriert: 9. Jul 2008, 12:03

Re: ß erlauben

Beitragvon Koala » 22. Aug 2008, 18:41

bellyeye hat geschrieben:...die beim versenden des formulars einen fehler bekommen, sobald sie das hübsch altmodische "scharfe s" benutzen.

Wie lautet denn die Fehlermeldung?
.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX_DOKU :: REX_WIKI :: REX_FAQ :: REX_WIKIPEDIA
Benutzeravatar
Koala
 
Beiträge: 1529
Registriert: 3. Okt 2005, 12:20
Wohnort: Cottbus

Beitragvon bellyeye » 23. Aug 2008, 09:16

es gibt keinen php fehler, aber das versenden der nachricht schlägt fehl mit der im skript definierten fehlermeldung, das textfeld "ihre nachricht" sei fehlerhaft ausgefüllt worden.

bei anderen sonderzeichen (ÄÖÜäöü etc.) funktioniert das versenden auch einwandfrei.

kann es sein, dass man in die pregmatch zeile das ß als unicode zeichen und/oder den utf-modifikator einbaut? wenn letzteres, müsste dann die gesamte zeile in utf-zeichen umgeschrieben werden?

beim googlen und über die kommentare beim modul-download selbst habe ich mich bisher so weit vorgetastet, kann es aber leider nicht selber umsetzen. gefährliches halbwissen, ihr vesteht?

danke.
carsten
bellyeye
 
Beiträge: 29
Registriert: 9. Jul 2008, 12:03

Beitragvon Koala » 23. Aug 2008, 18:45

Füge doch einfach mal das ß in die preg_matches ein.
.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX_DOKU :: REX_WIKI :: REX_FAQ :: REX_WIKIPEDIA
Benutzeravatar
Koala
 
Beiträge: 1529
Registriert: 3. Okt 2005, 12:20
Wohnort: Cottbus

Beitragvon Markus.Staab » 23. Aug 2008, 18:55

Hi,

die oben gezeigten ausdrücke sind so aber nicht korrekt?
Die meisten der Zeichen die mit \ escaped wurden sollten nicht escaped sein...

Viele Grüße,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

hmmm...

Beitragvon bellyeye » 25. Aug 2008, 08:18

habe selbst schon versucht, das ß einzubauen, das hatte aber keinen effekt. habe ich wahrscheinlich falsch geschrieben:

if (preg_match("/^[^\W\d_]([^\W\d_]|[\-\'\ä\Ä\ö\Ö\ü\Ü\ß\s\.\?\?\?\?\?\?\?\?])*$/", stripslashes($string)))


ansonsten habe ich die zeilen direkt aus der modulausgabe (http://www.redaxo.de/165-Moduldetails.h ... ule_id=232) hier rein kopiert. vielleicht muss dann der ursprüngliche autor nochmal ran ;)

carsten
bellyeye
 
Beiträge: 29
Registriert: 9. Jul 2008, 12:03

Beitragvon ciss » 25. Aug 2008, 13:18

Versuchs mal mit

Code: Alles auswählen
if (preg_match("/^[^\W\d_]([^\W\d_]|[-'äÄöÖüÜßs.?])*$/", stripslashes($string)))


bis auf \ und ^ verlieren Sonderzeichen in einer Zeichenklassen ihre Bedeutung. Daher muss ausser den genannten Zeichen nichts escaped werden.

Allerdings wirkt der reguläre Ausdruck so zusammengeschustert, dass sich mir der Sinn nicht vollständig erschließt. Gegebenenfalls ein anderes Regex aus der Regular Expression Library raussuchen und notfalls auch mal im Regex-Glossar nachschlagen.

Übrigens vermute ich, dass die ganzen Fragezeichen mal weitere Sonderzeichen waren die irgendeine Konvertierung nicht überlebt haben. Anders würde diese lange Reihe von Fragezeichen keinen Sinn machen.

Gruss
Fabian
Benutzeravatar
ciss
 
Beiträge: 359
Registriert: 8. Feb 2008, 04:24
Wohnort: Berlin


Zurück zu Module/Aktionen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast