Probléme

Résolu
termifr Messages postés 58 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 26 août 2009 - 17 nov. 2007 à 22:10
termifr Messages postés 58 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 26 août 2009 - 18 nov. 2007 à 10:40
<?php
$pagedemande=$_GET['page'];
$nombreactu='5';
mysql_connect("xxx", "xxx", "xxx");
mysql_select_db("xxx");
$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM xxx");
$donnees = mysql_fetch_array($retour);
$a=$donnees['nbre_entrees'];
if ($nombreactu*($pagedemande-1)>=$a)
{
echo'non ok';
$pagedemande=1;
echo $pagedemande;
}
else
{
echo'ok';
echo $pagedemande;
}
mysql_close();
?>

voila mon petit probélme quand j'exécute ce code tout est ok
mais quand  je rentre $_get['page']=beurk (en gros une ou plusieurs lettres)
le script il me dit ok $pagedemande=rien j'aurais aimé que $pagedemande=1

merci

5 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
17 nov. 2007 à 22:24
Hello,

si tu mets une chaîne dans ta variable, tu effectues ensuite une opération à priori illicite :
$pagedemande - 1
bref :
'beurk' - 1 = ???
Tu ne sais pas faire une telle opération ? moi non plus. php non plus.
Ensuite, tu assignes un entier à $pagedemande...
bref, ton code n'est vraiment pas propre, et je ne le comprends pas franchement.
Selon ce que tu fais, en assignant une chaîne à $pagedemande, tu rentres forcément dans la 1ère condition.
(une chaîne convertie en entier renvoie 1, et 5 * (1-1) = 0.
3
termifr Messages postés 58 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 26 août 2009
17 nov. 2007 à 22:29
comment filtrer pour que quand on rentre une variable $_get[page] qui n'est pas un nombre on le foute a 1?
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 nov. 2007 à 00:19
Salut,

$pagedemande = is_int($_GET['page']) ? $_GET['page'] : 1;
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
18 nov. 2007 à 09:27
$pagedemande = is_numeric($_GET['page']) ? $_GET['page'] : 1;
ou mieux (is_numeric va accepter certaines chaînes alphanumériques) :
$pagedemande = ctype_digit($_GET['page']) ? $_GET['page'] : 1;

Les variables provenant d'un GET sont toujours des chaînes. Donc is_int() renverra toujours faux.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
termifr Messages postés 58 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 26 août 2009
18 nov. 2007 à 10:40
merci
0
Rejoignez-nous