créer un site
Salemioche.net : creer un site internet - retour au site - accueil du forum





is_int

Poster un nouveau sujet sur php   Répondre au sujet à php:is_int    Accueil Forum -> php
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
iowa
php mioche
php mioche
Messageis_int , Posté le: 15-07-2005 10:27

bonjour,

voila je dois recuperer une variable passe avec la method GET et pour eviter la tentatives de hack je suis oblige de la filtrer j'ai deja mis 2 filtres

Code:

$dep = $_GET['dep'];
if ( empty ($dep)) // verifie que la variable est renseigne
{
echo "il faut renseigner un departement<br>" ;
exit();
}
if(strlen($dep) >2) // verifie la taille pour eviter toute tentatives de hack
{
echo "erreur dans le departement<br>" ;
exit();
}



j'aimerais en mettre une troisieme qui test si la variable $dep est un nombre et une 4eme qui test si c'est un nombre a virgule ( is_float )

voila j'ai trouve la fonction is_int mais je sais pas m'en servir
quoi que je balance dans l'url rien ! sa renvoie toujours false

voila ma condition :

Code:

if ( !is_int($dep))
{
echo "tentative de hack<br>" ;
exit();
}


merci
salemioche
salemioche
salemioche
Messageis_int , Posté le: 15-07-2005 10:35

quel est l'interet d'un float pour un departement ???

ma suggestion

Code:
$dep = "";

  function safe_num($s) {
    return preg_replace("/[^0-9]/",'',rtrim(rtrim(trim($s)),"\\"));
  }


if ( isset($_GET['dep']) && strlen($_GET['dep']) > 0 )
     $dep = safe_num($_GET['dep']);

if ( is_int($dep) ) {
 // OK
} else {
// KO
}

.
.
______________________________________
creation site internet - Hébergement web - Agence Web
iowa
php mioche
php mioche
Messageis_int , Posté le: 15-07-2005 10:39

Embarassed je comprend pas ton code tu peux commentais stp


la variable $_GET['dep']; doit recevoire une valeur int

exemple ?dep=57

ce que je veux eviter c'est sa : ?dep=include("hack.php");
par exemple c'est pour ca que je limite a 2 caracteres

merci
salemioche
salemioche
salemioche
Messageis_int , Posté le: 15-07-2005 10:45

isset verifie que le champ est présent dans la requete, ensuite on verifie la longueur

safe-num enleve tous les caractères qui ne sont pas des chiffres de $dep, comme ca tu es sur d'avoir que des 0,1,2..9

voilou
.
.
______________________________________
creation site internet - Hébergement web - Agence Web
iowa
php mioche
php mioche
Messageis_int , Posté le: 15-07-2005 15:53

ok merci

une fois de plus tu me sauve Wink
iowa
php mioche
php mioche
Messageis_int , Posté le: 15-07-2005 15:59

encore un autre truc je peux mettre ou le exit(); ???

pour que si sa soit pas un nombre sa s'affiche pas
parce que quand je rentre ?dep=salut

ben sa s'affiche comment faire pour eviter cela

merci
salemioche
salemioche
salemioche
Messageis_int , Posté le: 15-07-2005 16:03

le exit c'est a la place du '// KO'.
.
______________________________________
creation site internet - Hébergement web - Agence Web
iowa
php mioche
php mioche
Messageis_int , Posté le: 15-07-2005 16:05

c'est ce que j'ai fait mais sa execute tout le temp exit();
meme quand la valeur passe en parametre est 48 ou 12 ou 57 ...
salemioche
salemioche
salemioche
Messageis_int , Posté le: 15-07-2005 16:10

je connais pas la fonction is_int, il faut que tu mettes des traces dans ton code pour voir ce qui se passe, combien vaut $dep, etc....
.
______________________________________
creation site internet - Hébergement web - Agence Web
iowa
php mioche
php mioche
Messageis_int , Posté le: 15-07-2005 16:20

code :

Code:

$dep = "";
  function safe_num($s) {
    return preg_replace("/[^0-9]/",'',rtrim(rtrim(trim($s)),"\\"));
  }
if ( isset($_GET['dep']) && strlen($_GET['dep']) > 0 )
     $dep = safe_num($_GET['dep']);

if ( is_int($dep) ) {
 // OK
} else
 {

exit();
}


1er test avec dep = 57
retourne = exit();

2eme test avec dep = salut
retourne = exit();

que sa soit salut ou 57 il retourne toujours exit();
salemioche
salemioche
salemioche
Messageis_int , Posté le: 15-07-2005 16:49

je comprends pas bien le fonctionnement de is_int, tu n'as qu'a faire ca :

Code:
$dep = -1;
  function safe_num($s) {
    return preg_replace("/[^0-9]/",'',rtrim(rtrim(trim($s)),"\\"));
  }
if ( isset($_GET['dep']) && strlen($_GET['dep']) > 0 )
     $dep = safe_num($_GET['dep']);

if ( $dep > 0) {
 // OK
} else
 {

exit();
}
.
.
______________________________________
creation site internet - Hébergement web - Agence Web
iowa
php mioche
php mioche
Messageis_int , Posté le: 15-07-2005 17:01

hihi sa marche nikel merci
Montrer les messages depuis:   
Poster un nouveau sujet sur php   Répondre au sujet à php:is_int    Accueil Forum -> php Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
S'enregistrerS'enregistrer
ProfilProfil
Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés
RechercherRechercher
Liste des MembresMembres
FAQFAQ
ConnexionConnexion 


Nom de domaine
Enregistrement, transfert, gestion:
Nom de domaine

Hébergement
Trouver un hébergeur











Salemioche.net

créer un site web internet
Création site internet
Nom de domaine
blog gratuit
Idées Web

St Barth
Rachat de crédit
protection rapprochée
aménagement de bureau
Affilzen

Jumeaux
Communiqué de Presse
Piscine
Argent
Publier

Publier un article sur votre site internet et boostez sa visibilité. avec Pipelette
Présentez votre site web
Partenaires

forums
forum gratuit
Casino
Piscine
© Mentions Légales - CV