Die Seite wird geladen

Die Seite wird geladen...
Die Seite wird geladen...

Forum » Diskussionen » Technik » Programmierung » [H] PHP preg_match()

#1

[H] PHP preg_match()

Hi liebe iLoader..

könnte mir jemand mal bitte sagen was ich hier falsch mache?
irgendwie steig ich nich ganz durch das prinzip durch..

also ich habe preg_match schon erflogreich benutzt, um den titel und das kommentarfeld zu prüfen.. das funktioniert auch soweit..


das problem ist, das ich es einfach nicht bzw. nur teilweise schaffe ein array anstelle der "/^[A-Z...]+$/i" angabe als match-bedingung festzulegen.




das array wird natürlich schon vor der foreach schleife deklariert (wait)..

der gleiche code, if((preg_match("/$item$/i",....), funktioniert allerdings bei einem anderen array.. dort verwende ich vorher genau die gleiche foreach schleife, natürlich mit dem namen des anderen arrays ^^, allerdings dann nicht etwa $title oder $comment als zu überprüfende variable, sondern $_POST["title"]..

deshalb die frage, wo liegt der fehler? :^)
denn auch bei der nicht funktionierenden schleife ist $title = $_POST["title"];
sollte doch also auch mit $title kein unterschied sein?!..

php meldet sich mit folgendem fehler zu wort:
"on line 72 Warning: preg_match(): Unknown modifier '$'"
und
"on line 72 Warning: preg_match(): Compilation failed: nothing to repeat at offset 0"

was mich darauf schliessen lässt, dass er das $ hinter "/$item" hier nicht erkennt..?! aber wieso tut er es dann bei der anderen?

zu guter letzt gibt mir php hinter den fehlern dann doch noch ein "The title or description has some bad characters in it." aus..

bin für jede hilfe dankbar :)

Gruß
"There is no such thing as a former KGB man" - Vladimir Putin

"He who Haha's last, Haha's best" - Nelson Muntz
vor 2 Jahren

#2

Re: [H] PHP preg_match()

bräuchten den gesamten Code, denn der Fehler ist ja in Zeile 72, und leider kann man nicht sehen, wo er seine daten her holt.
http://s7.directupload.net/images/120426/evspyy72.gif
geht ganz einfach
Klick
vor 2 Jahren

#3

Re: [H] PHP preg_match()

zeile 72 ist die if abfrage im ersten spoiler..

edit: (wasntme) 2ten spoiler... sorry!
"There is no such thing as a former KGB man" - Vladimir Putin

"He who Haha's last, Haha's best" - Nelson Muntz
vor 2 Jahren

#4

Re: [H] PHP preg_match()

Hallo,

ich kenn die regulären Ausdrücke zwar nur bei Java & kann es jetzt auch nicht testen, ob es funktioniert, aber mir sind mehrere Sachen an deinen Quellcode aufgefallen.

1.
Zitat:
"on line 72 Warning: preg_match(): Unknown modifier '$'"

Das könnte darauf hindeuten, dass das zweite $-Zeichen als Variable fehlinterpretiert wird. Versuch mal die Metabedeutung davon aufzuheben, also \$ oder \\$.

2.im 2.Spoiler
Zitat:
(preg_match("/$item$/i",$title)

Das liest sich so, als ob dieser Ausdruck nur als wahr erkannt wird, wenn der Titel genau aus einen deiner gebannten Zeichen besteht. Also zum Beispiel: if($title =="<"), da er ja das Array einzeln durchgeht. Besser wäre vielleicht dieser Ausdruck:
(preg_match(".*/$item$.*/i",$title) & das Gleiche für $comment. Da matched er falls das gebannte Zeichen irgendwo im Titel vorkommt.
Bei $_POST["title"] bekommst Du einen kompletten String übergeben, bei deiner Abfrage ist es nur ein einzelnes Zeichen.

3.im 1.Spoiler
Zitat:
"/^[0-9A-Za-zäöü_]+$/i"

Ist nicht weiter wild, aber irgendwie doppelt gemoppelt. Du fragst in der Klammer die Groß- & Kleinbuchstaben ab und hinten über /i sagt Du Case-Insensitiv. Für wortähnliche Zeichen kann man übrigens auch \w verwenden. Also "^\w+\$/i" dürfte das Gleiche machen.

Wie schon gesagt ich kann's nicht testen & mit PHP habe ich auch schon lange nichts mehr zu tun gehabt, aber ich hoffe es hilft Dir weiter.

Gruß


Artikel auf Gamesdynamite.de
vor 2 Jahren

#5

Re: [H] PHP preg_match()

vielen dank für deine antwort :)

zu 1. ich bin dem problem jetzt mal auf die schliche gekommen.. (wait)
ich habe einfach mal jedes $item aus der foreach schleife abfragen lassen, und habe dabei gemerkt, dass er wohl teilweise ein problem, mit den im array gespeicherten daten hat.. er scheint z.b. das ..,"?",.. nicht zu mögen bzw dann nachher in der foreach schleife das ? fehl zu interpretieren. mit "\?" ist allerdings das problem, dass er dann natürlich nur auf \? und nicht auf ? prüft, allerdings funktioniert es so ohne fehler!.. ich lass mir dazu mal was einfallen..

zu 2. vielen dank erstmal für den tipp.. werd ich mal so machen, wobei ich hier bisher noch keine probleme feststellen konnte..

und zu 3. ja da hast du wohl recht (hihi)
"There is no such thing as a former KGB man" - Vladimir Putin

"He who Haha's last, Haha's best" - Nelson Muntz
vor 2 Jahren

#6

Re: [H] PHP preg_match()

mmh doch blödsinn was ich da geschrieben hab^^ sry für sinnlosen Post
vor 2 Jahren