• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Überprüfung zeigt alles doppelt und 3mal an

Status
Für weitere Antworten geschlossen.

RaZ0oR

Neues Mitglied
Hi,
ich habe jetzt eine überprüfung geschriebn, die einen string auf "erlaubte" zeichen prüft
PHP:
   $gruppenname = "Lol";
        $zeichen = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
  $a=0;
  $b="";
  $laenge=0;
  $laenge=strlen($gruppenname);
  for ($a=0; $a<$laenge;$a++) {
  $b=substr($gruppenname,$a,1);
  $a1 = 2;
  if(strstr($zeichen,$b)==false) {
  print("<br>Du Benutzt ungültige Zeichen");
  break;
     } else {
     print("alles korrekt");
     }
      }
Funktioniert soweit ganz gut, dann habe ich den else teil eingebaut, da ich wollte wenn alles stimmt, das z.B:"alles korrekt" angezeigt wird. Wenn jetzt der string nur "korrekte" zeichen beinhält erscheint dies hier
alles korrektalles korrektalles korrekt
Wenn jetzt aber falsche zeichen drine sind erscheint dies
alles korrektalles korrekt
Du Benutzt ungültige Zeichen
Wie euch vielleicht auffällt, wiederholt sich der text immer wieder, weiß jemand woran das liegt, und wie ich mein prob behen kann???

Edit: ich habe jetzt eine andere lösung gefunden,
PHP:
$zeichen = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
  $a=0;
  $b="";
  $test="14";
  $laenge=0;
  $laenge=strlen($gruppenname);
  for ($a=0; $a<$laenge;$a++) {
  $b=substr($gruppenname,$a,1);
  $a1 = 2;
  if(strstr($zeichen,$b)==false) {
  $test = "durchgefallen";
  break;
     }    }
 
if($test == "durchgefallen") {
print("ungültige zeichen");
}
 else {
print("bla");
}
Bin auch gerne für andere/bessere lösungen offen
 
Zuletzt bearbeitet:
kann man ja super lesen...

PHP:
// In diesem Beispiel sind nur folgende Zeichen erlaubt
// abcdefghijklmnopqrstuvwxyt
// ABCDEFGHIJKLMNOPQRSTUVWXYZ
// 1234567890 - _

$zeichen = 'abcdefghijklmnopqrstuvwxyt'.
           'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
           '1234567890-_';

// if(preg_match("/[0-9]/i", $zeichen)) // Nur Zahlen
// if(preg_match("/[a-z]/i", $zeichen)) // Nur Buchstaben
// if(preg_match("/[a-z]/" , $zeichen)) // Nur Kleinbuchstaben
// if(preg_match("/[A-Z]/" , $zeichen)) // Nur Großbuchstaben
if(preg_match("/[a-z0-9_\-]/i", $zeichen)) // Zeichen wie oben angegeben
{
    echo "Alles ok. :)";
}
else
{
    echo "Nichts ok. ):";
}
 
ich schreibe es immer so :

$form['feldname']['regex'] = '/[a-B]/i';
$form['feldname']['error'] = 'Irgendwas ist hier bei xyz falsch gelaufen';


für jedes feld lege ich einen solchen array im form array an .... mit ner schleife ists wunderschön, natürlich ist das ganze ausbaufähig :)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben