8795 sujets

Développement web côté serveur, CMS

Bonjour,

Je souhaite controler l'url pour qu'il force $_GET['page'] à 1 si le @param passé est du type string. Voici mon code qui ne marche pas :




	if ( isset($_GET['page']) ) {
		$toint = intval($_GET['page']);
		if (is_int($toint)) {
			$page = $_GET['page'];
		}
		else {
			$page = 1;
		}
	}




where is the problem ?
Modifié par M3hdi (15 Oct 2008 - 01:12)
Salut,

intval('abcd') va retourner 0 et donc is_int sera toujours vérifié. Smiley cligne

Tu pourrais faire :
<?php
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
if ($page == 0) $page = 1;
?>

A+
thx a lot !

Mais cette syntaxe de test est bizzar, pourrais tu xpliquer ...
Modifié par M3hdi (15 Oct 2008 - 01:14)
Yep ! Il s'agit de l'opérateur ternaire :

$variable = (test) ? valeur_si_true : valeur_si_false;

$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
revient à faire :
if (isset($_GET['page'])) {
   $page = intval($_GET['page']);
} else {
   $page = 1;
}

PS : You're welcome ! Smiley smile