Regex: Nur Ganzzahl darf vorhanden sein

uafsc

Erfahrenes Mitglied
Hallo, ich brauche einen Regex, der überprüft, ob in einer GET-Variable eine Ganzzahl ist (eine ID). Ich hab das mal so probiert:

PHP:
if(isset($_GET['matches_id']) && "" !== $_GET['matches_id']){
	if(preg_match('/0-9/', $_GET['matches_id'])){
		$matches_id=htmlspecialchars(mysql_real_escape_string(trim($_GET['matches_id'])));
    }else{
		echo "<font color=\"red\"><b>Ung&uuml;ltiger Match zum Bearbeiten gew&auml;hlt</b></font>";
	}
}
Also zuerst überprüfe ich, ob die GET-Variable überhaupt gesetzt ist und ob diese nicht leer ist. Dann kommt der Regex-Versuch.

PS: Hab keine Ahnung von Regex, bin denen immer ausgewichen -.-
 
PHP:
if(!empty($_GET['matches_id']) && ctype_digit($_GET['matches_id'])
{
  # korrekt
}
else
{
  # falsch
}

[phpf]empty[/phpf] prüft ob die Variable gesetzt ist und ob sie leer ist.
[phpf]ctype_digit[/phpf] prüft ob der Inhalt wirklich NUR Zahlen sind.
 
Zuletzt bearbeitet:
minni Korrektur

PHP:
// | < Hier fehlte das "!"
if(!empty($_GET['matches_id']) && ctype_digit($_GET['matches_id'])
{
  # korrekt
}
else
{
  # falsch
}

eigentlich korrekt, nur gibt empty() true zurück wenn der Parameter Leer ist und false, wenn er nicht leer ist.

PHP:
$var = "nicht leer";

if (empty($var))
{
    echo "\$var ist leer<br>";
} else {

    echo "\$var ist nicht leer<br>";
}
gibt
Code:
$var ist nicht leer
aus
 
Zurück