php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.06.2006, 16:18  
Neuer Benutzer
 
Registriert seit: 14.12.2005
Beiträge: 9
iBurner
Standard Probleme mit Regulärem Ausdruck

Hallo!
Also ich werde langsam wahnsinnig...
Ich dokter jetzt schon seit 2 Tagen an einem Regulären Ausdruck, der Sonderzeichen und Zahlen an beliebigen Stellen eines String verbieten soll. Leider klappt das nur, wenn ich das erste Zeichen überprüfen lasse:
Code:
/^[^\.^\!^\$^0-9]/
(hier schlägt er bei z.B. !blablabla oder 0blablabla Alarm)

aber warum zum Teufel funktioniert das hier nich:
Code:
/[^\.^\!^0-9]/
Da sagt er auf einmal gar nichts mehr...

Und wenn ich erst das erste Zeichen prüfe und dann die gleiche Gruppe noch einmal dranhänge:
Code:
/^[^\.^\!^\$^0-9][^\.^\!^0-9]/
(da rumort er aber nur, wenn das ausgeschlossene Zeichen höchstens an 2. Stelle steht)
ich hab an die Zeichengruppen auch schon den * Operator gehängt, ohne Erfolg...
Vieleicht kann mir ja jemand helfen... wäre jedenfalls klasse!!!
Jonas
iBurner ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.06.2006, 16:30  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Was machen die vielen Leerzeichen und ^ in deinem RegExp?

An welchen Stellen möchtest du denn welche Sonderzeichen verbieten?
Zergling-new ist offline  
Alt 14.06.2006, 20:05  
Neuer Benutzer
 
Registriert seit: 14.12.2005
Beiträge: 9
iBurner
Standard

Wie gesagt, an beliebiger Stelle eine ganze Menge Sonderzeichen die ich hier des Platzes wegen nich posten wollte und eben Ziffern von 1-9.
Zu den Leerzeichen: ist das schlimm? Ich habe sie zur besseren Lesbarkeit eingefügt.
Gruß Jonas
iBurner ist offline  
Alt 15.06.2006, 01:11  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Die sind bei Regulären Ausdrücken relevant ja.

Wenn es so viele Sonderzeichen sind, wäre es wohl geschickter statt einer Blacklist (Liste unerlaubter Zeichen) eine Whitelist (Liste erlaubter Zeichen) zu verwenden.

Aber wenn du keine Details nennst, kann ich dir auch keine sinnvolle Antwort geben.
Zergling-new ist offline  
Alt 15.06.2006, 07:23  
Gast
 
Beiträge: n/a
Standard

Zitat:
/^[^\.^\!^\$^0-9][^\.^\!^0-9]/
Innerhalb der Zeichenklassen [ und ] , muss man nicht alle Zeichen escapen (ausser Steuerzeichen die in einer Zeichenklasse benutzt werden dürfen)
[^.!0-9]
Auch reicht ein ^ völlig aus.
 
Alt 15.06.2006, 13:21  
Neuer Benutzer
 
Registriert seit: 14.12.2005
Beiträge: 9
iBurner
Standard

Danke, das mit den Leerzeichen und dass man die negationen nur einmal benörigt wusste ich nicht. Ich werde nochmal so gut es geht beschreiben was ich vorhabe:

1. Der Benutzer gibt seinen Namen in ein Formular ein.
2. Dannach soll dieser String überprüft werden, dass er nur Groß- und Kleinbuchstaben enthält und mindestens 2 Buchstaben groß ist. Alle Sonderzeichen und Ziffern müssen draußen bleiben

Das ganze sieht bisher so aus:

PHP-Code:
        $not =  "^\!^\"^\§^\$^\%^\&^\/^\(^\)^\=^\?^\{^\}^\[^\]^\\^\#^\+^\*^\~^\.^\,^\;^\:^\-^\_^\<^\>^\@^\€^\µ^\^^\°";

        
$muster '/['.$not.'^0-9]*/';

        if(
get_magic_quotes_gpc() != 0)        //Falls notwendig, werden  Maskierungszeichen entfernt.
        
{
            
$name stripslashes($name);
        }
        if(
preg_match($muster$name))       //String wird auf das Muster hin überprüft
        
{
            return 
true;
        }
        else
        {
            return 
false;
        } 
(wegen dem Escapen und negieren muss ich nochmal schaun)

Ich möchte eben Eingaben wie z.B.:
Friedri.ch,F5rie.dri!ch oder ganz einfach .!/=)$%$16796465 oder 1234567890 verbieten, dass nicht irgendwer misst in das Formular reinschreibt.
Gruß Jonas
iBurner ist offline  
Alt 15.06.2006, 13:36  
Gast
 
Beiträge: n/a
Standard

Dann fragt doch ganz einfach ab, ob nur Buchstaben drin stehen.
Falls nicht, ist es eine nicht erlaubte Eingabe - fertig.
 
Alt 15.06.2006, 14:01  
Erfahrener Benutzer
 
Registriert seit: 01.02.2004
Beiträge: 550
cytrobic
Standard

zum beispiel so ?

PHP-Code:
<?php

if(strlen($name) > && !preg_match("=^[a-Zäöüß]+$=i"$name)){
  echo 
"zu kurz oder zahlen / sonderzeichen";
} else {
  echo 
"allet ok";
}
?>
und zum kicken der dinger:

PHP-Code:

$name 
preg_replace("/[^a-Züöäß]/","",$name); 
__________________
keine
cytrobic ist offline  
Alt 16.06.2006, 14:10  
Neuer Benutzer
 
Registriert seit: 14.12.2005
Beiträge: 9
iBurner
Standard

Klasse, hat funktioniert!
Vielen Dank!
iBurner ist offline  
 


Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Firefox / IE - Probleme HTML, Usability und Barrierefreiheit 5 20.07.2009 17:04
Probleme bei Speicherung von serialize() Strings Manni2k PHP Tipps 2006 13 15.10.2006 15:06
Probleme mit mbstring extension unter Debian HStev Server, Hosting und Workstations 3 30.08.2006 20:55
Mit if Abfrage innerhalb eines strings einen Ausdruck suchen tinchen PHP Tipps 2006 4 11.04.2006 10:18
Regul�rer Ausdruck PHP Tipps 2006 3 01.02.2006 19:50
Regulärer Ausdruck: Ping-Zeiten speichern mAy^daY Server, Hosting und Workstations 9 12.01.2006 19:51
Probleme bei der Installation von Turck MMCache tomx992 PHP-Fortgeschrittene 2 27.09.2005 20:31
[Erledigt] Probleme mit RegEx PHP-Fortgeschrittene 10 23.09.2005 18:19
Probleme beim Datenupload zu meiner Datenbank Datenbanken 3 05.09.2005 19:47
Probleme mit Sonderzeichen... Datenbanken 1 02.08.2005 23:37
[Erledigt] Probleme mit regulärem Ausdruck PHP-Fortgeschrittene 2 10.02.2005 12:23
Probleme bei linkumwandeln (Regulärer Ausdruck) PHP Tipps 2005 2 03.02.2005 22:25
Zwei Rechner ins Netz - Router - Hub - Probleme... imported_Ben Off-Topic Diskussionen 37 13.01.2005 21:36
[Erledigt] Technische Probleme mit Sessions PHP-Fortgeschrittene 4 18.11.2004 14:45
[Erledigt] Probleme mit Fremdsprachen HTML, Usability und Barrierefreiheit 2 21.09.2004 17:11

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
iburner jonas

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:02 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.