Sonderzeichen in Array
    
Eurosystem
    
    
      
    
  - php
 nicht angemeldet
 nicht angemeldetHallo,
ich versuche zu erkennen ob in POST-Variablen, die über ein Formular übergeben werden, bestimmte Sonderzeichen vorkommen. Dazu benutze ich ein Array in dem die Sonderzeichen stehen, die nicht vorkommen dürfen. Mit einer while-Schleife und strpos überprüfe ich dann, ob die Sonderzeichen in der POST-Variable stehen.
Code:
  
$ungueltigezeichen = array("'","<",">","*","|","`","´","/","~","\");  
  
$i=0;  
while ($bungueltigezeichen[$i]) {  
  if (strpos($benutzername, $bungueltigezeichen[$i])!==FALSE) { $fail='bname';  
    }  
  $i++;  
  }  
Leider scheint es so zu sein, dass bestimmte Zeichen nicht im Array stehen dürfen, wie zum Beispiel "". Es wird die Fehlermeldung 'Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in C:...' angezeigt, obwohl das Zeichen ja in Anführungszeichen steht...
Weiß jemand wie ich die Zeichen ohne Fehler in ein Array schreiben kann?
LG
Eurosystem
Hi!
$ungueltigezeichen = array("'","<",">","*","|","`","´","/","~","");
Weiß jemand wie ich die Zeichen ohne Fehler in ein Array schreiben kann?
Indem du die Syntaxregeln von PHP-Strings kennst, weißt dass der \ eine besondere Bedeutung hat und diese beim Notieren berücksichtigst.
Lo!
Hello,
ich versuche zu erkennen ob in POST-Variablen, die über ein Formular übergeben werden, bestimmte Sonderzeichen vorkommen. Dazu benutze ich ein Array in dem die Sonderzeichen stehen, die nicht vorkommen dürfen. Mit einer while-Schleife und strpos überprüfe ich dann, ob die Sonderzeichen in der POST-Variable stehen.
Code:
$ungueltigezeichen = array("'","<",">","*","|","`","´","/","~","");
$i=0;
while ($bungueltigezeichen[$i]) {
if (strpos($benutzername, $bungueltigezeichen[$i])!==FALSE) { $fail='bname';
}
$i++;
}
  
Warum benutzt Du nicht foreach() anstelle von while?  
<http://de.php.net/manual/en/control-structures.foreach.php>  
  
  
> Leider scheint es so zu sein, dass bestimmte Zeichen nicht im Array stehen dürfen, wie zum Beispiel "\".  
  
Doch! \ darf auch als Wert im Array vorkommen. Nur hat \ in PHP eine sehr starke Sonderbedeutung. Er leitet Steuersequenzen ein, oder maskiert sich selbst oder das " oder das '...  
  
Du musst das Zeichen also anders übergeben:  
  
   $ungueltigezeichen[] = '\\';  
oder  
   $ungueltigezeichen[] = "\\";  
oder  
   $ungueltigezeichen = array("'","<",">","\*","|","`","´","/","~","\\");  
  
<http://de.php.net/manual/en/language.types.string.php>  
  
  
  
  
  
Liebe Grüße aus dem schönen Oberharz  
  
  
Tom vom Berg  
  
  
-- 
 ☻\_  
/▌  
/ \ Nur selber lernen macht schlau  
<http://bergpost.annerschbarrich.de>
Ok, mit "\" funktionierts.
An foreach hab ich irgendwie gar nicht gedacht... :)
Vielen Dank für die Hilfe!
Sie sollten diesen Trick mit den meisten modernen Programmiersprachen verwenden.