 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
11.05.2003, 14:09
|
#1
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
unerlaubte zeichen vs. ubbc-code
hi allerseites!
hab ein interface, in dem ich (und später auch andere) einträge machen können (php). folgende function zum überprüfen auf unerlaubte zeichen hab ich:
Zitat:
// unerlaubte zeichen
function unerlaubt($text) {
if (preg_match("/[^a-zA-Z0-9_-]/",$text)) {
$unerlaubt = 1; // unerlaubte zeichen drin
return ($unerlaubt);
}
}
|
soweit, so gut! gibt dann der user aber z.b. ubbc-codes ein, bekomm ich den status 1 zurück:
fett
wie muss ich die regex-prüfung ändern, damit [ und ] erlaubt sind?? wenn ich diese einfach nur rausnehme, dann schreit die funktion nichtmal bei html-tags auch (ok, das unterbinde ich danach per htmlspecialchars())
p.s.: noch eine forumstechnische frage: wie kann ich code formatiert hier reinstellen??
|
|
|
11.05.2003, 20:12
|
#2
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
Re: unerlaubte zeichen vs. ubbc-code
PHP-Code:
// unerlaubte zeichen
function unerlaubt($text) {
if (preg_match("/[^a-zA-Z0-9_-\\[\\]]/",$text)) {
$unerlaubt = 1; // unerlaubte zeichen drin
return ($unerlaubt);
}
}
Zitat:
Original geschrieben von prefix
p.s.: noch eine forumstechnische frage: wie kann ich code formatiert hier reinstellen??
|
Nimm statt quote php...
|
|
|
12.05.2003, 08:24
|
#3
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
danke dir - bestens!!!
und jetzt setzt ich mich mal echt zu den regexp dazu und geb mir die mal intravenös :-)
|
|
|
14.05.2003, 16:35
|
#4
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
leider funktioniert die regexp nicht:
folgende fehlermeldung vom browser:
Zitat:
Warning: Compilation failed: range out of order in character class at offset 14
in /.../html/v5_1/includes/functions.php on line 17
|
folgender php-code zum aufruf der function:
PHP-Code:
// berechtigungscheck
$formuser = $_POST['username'];
$formpass = $_POST['passwort'];
// check auf unerlaubte zeichen
global $formuserunerlaubt, $formpassunerlaubt;
$formuserunerlaubt = unerlaubt ($formuser);
$formpassunerlaubt = unerlaubt ($formpass);
die("$formuserunerlaubt");
die function (wie oben von webmichl gepostet):
PHP-Code:
// unerlaubte zeichen
function unerlaubt($text) {
if (preg_match("/[^a-zA-Z0-9_-\[\]]/",$text)) {
$unerlaubt = 1; // unerlaubte zeichen drin
return ($unerlaubt);
}
}
ok, ich geb zu: noch hab ich es mir nicht intravenös gegeben - aber leider kann ich einfach keinen fehler feststellen!
es sollen eben folgende zeichen erlaubt sein (und sind meiner meinung nach in der regexp auch erlaubt):
a-z
0-9
_
[ und ]
|
|
|
14.05.2003, 16:42
|
#5
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
preg_match("/[^a-zA-Z0-9_-[]]/",$text))
Sind die beiden roten Klammern mit nem Backslash maskiert? ( Das Forum unterdrückt die Teile ab und zu... )
|
|
|
14.05.2003, 16:45
|
#6
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
ja, die sind mit einem \ maskiert, jeweils davor!
also reihenfolgen: backslash - eckig auf - backslash - eckig zu - eckig zu - slash
|
|
|
14.05.2003, 16:56
|
#7
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
Der Bindestrich vor den Beiden auch? ( sorry, hab ich erst jetzt gesehen...  )
Der könnte es nach der Fehlermeldung ( Range... ) nämlich sein - ansonsten seh ich nix böses...
|
|
|
14.05.2003, 16:58
|
#8
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
neun underline bindestrich backslash ...
ich kenn mich zwar nicht besonders in regexp aus, aber ich seh auch nix - verdammt *ggg*
|
|
|
14.05.2003, 17:03
|
#9
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
Zitat:
Original geschrieben von prefix
neun underline backslash bindestrich backslash ...
|
Versuchs mal so...
Bindestrich gehört zu der regexp-Spezial-Charactergruppe und muß auch maskiert werden...
|
|
|
14.05.2003, 17:11
|
#10
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
peeeeeeeerrrrfffeeeeekt :-) das war's - der backslash vor dem bindestrich hat gefehlt - vielen dank :-)
hier der richtige code:
PHP-Code:
// unerlaubte zeichen
function unerlaubt($text) {
if (preg_match("/[^a-zA-Z0-9_\-\[\]]/",$text)) {
$unerlaubt = 1; // unerlaubte zeichen drin
}
else {
$unerlaubt = 0; // ok
}
return ($unerlaubt);
}
|
|
|
14.05.2003, 19:30
|
#11
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
nurmal als Tipp, wie du die Funktion ein bissel kürzen kannst (kein muss, aber vielleicht gefällts ja  ):
PHP-Code:
function unerlaubt($text) {
retrun preg_match("/[^a-z0-9_\\-\\[\\]]/i",$text));
}
Gruss
Jan
|
|
|
14.05.2003, 20:22
|
#12
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
thx!
ich nehm an, "retrun" soll "return" heißen :-)
und das "i" nach dem slash gibt mir "1" bei "wahr" zurück??
|
|
|
14.05.2003, 23:36
|
#13
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
i bedeutet soviel wie ignoriere Groß/Kleinschreibung, dh Du verkürzt das a-zA-Z auf a-z und sparst Dir das A-Z in der regexp - bei komplexeren Ausdrücken recht praktisch. Der Rückgabewert richtet sich nach dem Zutreffen der regexp - 1 bei "zutreffend", 0 bei "nicht zutreffend".
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:35 Uhr.
|
 |