PHP if Problem

HoB

HoB
ID: 79596
L
22 April 2006
2.521
74
hi leute. hab ein kleines problem und bekomm es nicht gebacken. 8O

bei mir kann ein user an einen anderen user punkte transferieren. nun möchte ich verhindern, dass man kommas, oder punkte als trenner eingeben kann.

}elseif($punkte == '*,'){
$update2="NUR GANZE BETRÄGE ÜBERWEISEN! KEINE KOMMAS UND KEINE PUNKTE!";

}elseif($punkte == '*.'){
$update2="NUR GANZE BETRÄGE ÜBERWEISEN! KEINE KOMMAS UND KEINE PUNKTE!";

leider geht das wohl nicht... ich habe noch nie mit nem stern gearbeitet. geht das überhaupt??
 
bin jetzt kein PHP-Crack, aber wenn du das mit Stern machen möchtest, wirst du wohl eher Reguläre Ausdrücke nutzen müssen.

Einfacher geht es (z.B.) so:
Code:
}elseif(strpos($punkte,',') !== false) {
    $update2="NUR GANZE BETRÄGE ÜBERWEISEN! KEINE KOMMAS UND KEINE PUNKTE!";
}elseif(strpos($punkte,'.') !== false) {
    $update2="NUR GANZE BETRÄGE ÜBERWEISEN! KEINE KOMMAS UND KEINE PUNKTE!";

strpos gibt dir die position eines teilstrings in einem anderen string zurück. Wird dieser nicht gefunden, so gibt die Funktion false zurück.
 
Deine Vergleiche mit == vergleichen den exakten String. Eine Wildcard-Syntax existiert hier nicht.

Du könntest mittels strpos() auf verbotene Zeichen prüfen:

PHP:
if(strpos($string, ',') !== FALSE) { /* ... */ }

Sicherer wäre aber zu prüfen, ob nur erlaubte Zeichen (z.B. 0..9) vorkommen. Das kann man mit regulären Ausdrücke und z.B. der Funktion preg_match() machen:

PHP:
if(preg_match('/[^0-9]/', $string)) {
	die('Fehler');
}
 
bin jetzt kein PHP-Crack, aber wenn du das mit Stern machen möchtest, wirst du wohl eher Reguläre Ausdrücke nutzen müssen.

Einfacher geht es (z.B.) so:
Code:
}elseif(strpos($punkte,',') !== false) {
    $update2="NUR GANZE BETRÄGE ÜBERWEISEN! KEINE KOMMAS UND KEINE PUNKTE!";
}elseif(strpos($punkte,'.') !== false) {
    $update2="NUR GANZE BETRÄGE ÜBERWEISEN! KEINE KOMMAS UND KEINE PUNKTE!";
strpos gibt dir die position eines teilstrings in einem anderen string zurück. Wird dieser nicht gefunden, so gibt die Funktion false zurück.

das passt perfekt! danke dir!