Moin!
Okay, so klappt es:
if (preg_match("/["]|[']|[$]/",$pwd))
Das sollte aber auch einfacher gehen.
Grund für deine Probleme war, dass die / vor und hinter dem regulären Ausdruck gefehlt haben. Irgendwelche Begrenzer für den regulären Ausdruck muß man in PHP aber noch _zusätzlich_ zum Stringbegrenzer angeben. Das ist üblicherweise das erste Zeichen im String, es muß kein / sein. Ausrufezeichen gehen z.B. auch. Es kann hilfreich sein, hier ein Zeichen zu wählen, was im regulären Ausdruck nicht oder am wenigsten auftritt, weil man dieses Zeichen ansonsten immer escapen muß.
Aber zurück zur Vereinfachung: Das, was du da produziert hast, geht genauso gut mit
preg_match("/["'$]/",$pwd)
[] umschließen Zeichenklassen. Eine Zeichenklasse steht für eines der dort enthaltenen Zeichen an der jeweiligen Stelle. Dein Konstrukt hat drei Zeichenklassen mit jeweils einem einzigen Zeichen definiert, und mit dem Oder-Operator | verknüpft. Kommt auf dasselbe heraus, ist aber nicht wirklich elegant.
- Sven Rautenberg
Signatur oder nicht Signatur - das ist hier die Frage!