php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-02-2008, 18:43
AnNo1968
 Newbie
Links : Onlinestatus : AnNo1968 ist offline
Registriert seit: Feb 2008
Beiträge: 21
AnNo1968 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Hilfe!!! Problem beim Auswerten von Variablen

Hallo ich bin PHP-Anfänger

Ich möchte den Inhalt einer Variablen auf folgende Zeichen überprüfen lassen:

Code:
[[]!\"#$%&'()*+,./:;<=>?@\^_´{|}~[-]*]
Wenn diese Zeichen vorhanden sind soll ein text ausgegeben werden, wenn die Zeichen nicht vorhanden sind soll ein anderer TEXT ausgegeben werden.

Das wollte ich wie folgt machen:

PHP-Code:
if (!ereg("[[:punct:]]"$Variable))
      {
         echo 
"Verbotene Zeichen";
         break;
       }
  else
         {
           echo 
"Alles O.K";
           break;
        } 
auch so hab ich es versucht:

PHP-Code:
if (ereg("[[:punct:]]"$Variable))
      {
         echo 
"Verbotene Zeichen";
         break;
       }
  else
         {
           echo 
"Alles O.K";
           break;
        } 
Egal ob die Variable die Zeichen enthielt oder nicht.

Ich bekam immer die Ausgabe:
Code:
Verbotene Zeichen
Wie löse ich mein Problem richtig ?
Wo mache ich einen Fehler bzw. Denk Fehler?

Wenn möglich bitte mit ausführlicher Erklärung für PHP-Anfänger.

Danke für eure Hilfe

Geändert von AnNo1968 (22-02-2008 um 20:14 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 22-02-2008, 19:00
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ab php5 strpbrk
Mit Zitat antworten
  #3 (permalink)  
Alt 22-02-2008, 19:34
AnNo1968
 Newbie
Links : Onlinestatus : AnNo1968 ist offline
Registriert seit: Feb 2008
Beiträge: 21
AnNo1968 ist zur Zeit noch ein unbeschriebenes Blatt
Question

ghostgambler schrieb:

Zitat:
Ab php5 strpbrk
Und bei PHP 4.x wie gehe ich da vor?

Zitat:
Wenn möglich bitte mit ausführlicher Erklärung für PHP Anfänger.
Eine Ausfürliche Erklärung sind die drei Worte meiner Meinung nach nicht.

Zitat:
Wie löse ich mein Problem richtig ?
Wo mache ich einen Fehler bzw. Denk Fehler?
Ist mein Ansatz der if..else Konstruktion falsch???

Eventuell Code Verbesserung mit angeben!

Danke für eure Hilfe.
Mit Zitat antworten
  #4 (permalink)  
Alt 22-02-2008, 19:36
Blackgreetz
 PHP Junior
Links : Onlinestatus : Blackgreetz ist offline
Registriert seit: Oct 2005
Beiträge: 901
Blackgreetz ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dazu hilft meist ein Blick in die Kommentare zu der Funktion:

http://www.php.net/manual/de/function.strpbrk.php#76169

mfg
Mit Zitat antworten
  #5 (permalink)  
Alt 22-02-2008, 20:00
AnNo1968
 Newbie
Links : Onlinestatus : AnNo1968 ist offline
Registriert seit: Feb 2008
Beiträge: 21
AnNo1968 ist zur Zeit noch ein unbeschriebenes Blatt
Question

Als PHP-Anfänger und mit minimalen Englisch Kenntnissen kann ich mit den Kommentaren nicht wirklich was Anfangen.

Gilt das auch wenn der Wert meiner Variablen aus einem Eingabe Feld kommt.

Kann ich mir dann die if...else Konstruktion sparen ?

Muss ich jetzt erst noch eine function bauen. Um mein Problem zu Lösen?

Und dann die if..else abfrage?



Ich will diesen Wert der Variablen nach den besimmten Zeichen durchsuchen lassen und dann Verzweigen, je nach dem ob die Zeichen vorhanden sind oder nicht.

Wenn möglich mit so wenig code wie Möglich um die Anzahl der Fehlerquellen zu minimieren.

Bitte gebt mir doch ein Code Beispiel wie die Lösung des Problems aus sehen sollte.


Danke für eure Hilfe
Mit Zitat antworten
  #6 (permalink)  
Alt 23-02-2008, 19:58
AnNo1968
 Newbie
Links : Onlinestatus : AnNo1968 ist offline
Registriert seit: Feb 2008
Beiträge: 21
AnNo1968 ist zur Zeit noch ein unbeschriebenes Blatt
Unhappy Hilfe...

Habe mein Problem leider noch nicht lösen können.

Gibt es niemanden der einem PHP-Anfänger weiterhelfen kann oder will.

__________________

Verständnis heißt:

Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.
Mit Zitat antworten
  #7 (permalink)  
Alt 23-02-2008, 20:18
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Meine Meinung: Ohne Englisch sollte man vom Programmieren direkt Abstand nehmen...

Die Zeichen die du definierst, sind ziemlich doppelt gemoppelt, oder täusche ich mich?

PHP-Code:
$zeichen 'DEINEZEICHEN';
if(
preg_match('%' $zeichen '%',$subject))
  die(
'unerlaubte Zeichen vorhanden'); 
Sollte seinen Zweck erfüllen.

Evtl. sind die Stringfunktionen schneller:

PHP-Code:
for($i=0;$i<strlen($zeichen);$i++)
  if(
strpos($zeichen[$i],$subject) !== false)
    die(
'unerlaubte Zeichen vorhanden'); 
Beide Codes ungetestet. Kann nicht ausschließen, dass ich Argumente o.ä. vertauscht habe, aber das Prinzip sollte klar werden. Kann auch gut möglich sein, dass es noch andere (einfachere) Wege gibt.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #8 (permalink)  
Alt 24-02-2008, 13:50
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Kann auch gut möglich sein, dass es noch andere (einfachere) Wege gibt.
PHP-Code:
if ( strspn $string'[[]!\"#$%&\\'()*+,./:;<=>?@^{|}~[-]*] ) == strlen $string ) ) {
    return 
true;

__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #9 (permalink)  
Alt 27-02-2008, 15:39
AnNo1968
 Newbie
Links : Onlinestatus : AnNo1968 ist offline
Registriert seit: Feb 2008
Beiträge: 21
AnNo1968 ist zur Zeit noch ein unbeschriebenes Blatt
Question

Also ich habe es erst einmal so versucht:

PHP-Code:
if (preg_match_all("[\W]"$variable$match))
       {  
         echo 
"Verbotene Zeichen";
         break;
       }
  else
         {
           echo 
"Alles O.K";
           break;
        } 
Wenn die Variable Zeichen enthält die kein Buchstabe, keine Zahl und kein Unterstrich sind, erscheint die Ausgabe
"Verbotene Zeichen"

Wenn die Variable nur Buchstaben, Zahlen oder Unterstriche enthält erscheint die Ausgabe "Alles O.K".

Nun soll die Variable auch Leerzeichen enthalten dürfen nur wenn sie eins enthält erscheint bei oben auf geführten
Beispiel die Ausgabe "Verbotene Zeichen"

Als habe ich es so versucht:


PHP-Code:
if (preg_match_all("[^a-zA-Z 0-9]"$variable$match))
       {  
         echo 
"Verbotene Zeichen";
         break;
       }
  else
         {
           echo 
"Alles O.K";
           break;
        } 
Jetzt ist es egal ob die Variable andere Zeichen als Buchstaben, Zahlen, Leerzeichen enthält oder nicht es erscheint
immer die Ausgabe "Alles O.K"

Wass muss ich in der Eckigen Klammer eintragen das, wenn die Variable Buchstaben, Zahlen und Leerzeichen enthält die Ausgabe "Alles O.K" erscheint. Und wenn die Variable ein Zeichen enthält was kein Buchstabe, keine Zahl und kein Leerzeichen ist die Ausgabe "Verbotene Zeichen" erscheint??????

Oder mache ich ein Fehler bzw. Denk Fehler???

Was ist an meinem zweitem Code Falsch? Wo ist der Fehler??

Eventuell Code Verbesserung mit angeben.

Auf meinem Test Server ist PHP 4.3.4

Wenn möglich mit ausführlicher Erklärung für PHP-Newbie

Danke
__________________

Verständnis heißt:

Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

Geändert von AnNo1968 (27-02-2008 um 18:50 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 27-02-2008, 16:11
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
echo (preg_match('/[^\\w ]/'$var)) ? "Ung&uuml;ltig" "G&uuml;ltig"
Es wird nach einem Zeichen gesucht, das kein "Wortzeichen" (AlNum & Unterstrich) und kein Leerzeichen ist. Wird eins gefunden, wird Ungültig ausgegeben, sonst Gültig.
__________________
Gruss
H2O
Mit Zitat antworten
  #11 (permalink)  
Alt 27-02-2008, 17:20
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hast du mal die alternative Lösung ohne Reguläre Ausdrücke ausprobiert?
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #12 (permalink)  
Alt 27-02-2008, 18:38
AnNo1968
 Newbie
Links : Onlinestatus : AnNo1968 ist offline
Registriert seit: Feb 2008
Beiträge: 21
AnNo1968 ist zur Zeit noch ein unbeschriebenes Blatt
Smile

Es Funktioniert:

PHP-Code:
if (preg_match_all("/[^\w ]/"$variable$match))
       {  
         echo 
"Verbotene Zeichen";
         break;
       }
  else
         {
           echo 
"Alles O.K";
           break;
        } 
Genauso wie es soll. Bei nur Buchstaben und Zahlen und Leerzeichen in der Variablen kommt die Ausgabe "Alles O.K"

Wenn ein Zeichen in der Variablen ist das kein Buchstabe, Zahl oder Leerzeichen ist kommt die Ausgabe "Verbotene Zeichen"

tontechniker schrieb:


Zitat:
Hast du mal die alternative Lösung ohne Reguläre Ausdrücke ausprobiert?
Ja hatte ich. Das gleiche Problem wie in meinem Post vom 24-02-2008 13:50.

Vielen Dank für eure Hilfe


__________________

Verständnis heißt:

Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

Geändert von AnNo1968 (27-02-2008 um 18:53 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 27-02-2008, 18:49
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

preg_match() würde übrigens vollkommen ausreichen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:26 Uhr.