begin process at 2012 05 28 19:25:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Autoriser seulement des nombres dans une variable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Autoriser seulement des nombres dans une variable

dimanche 4 septembre 2011 à 19:56:18 | Autoriser seulement des nombres dans une variable

spacedelta

Bonjour,
Cela fait depuis une bonne journée que je m'énerve sur mon code.
Je recherche un bout de script qui me permettrait d'autoriser seulement des nombres
dans une variable. J'ai cherché, et j'avais trouvé ceci :
Code PHP :
preg_match('`[^1-9]`', $mavariable);

Donc moi ça m'allait. Oui mais je me suis après rendu compte que je ne pouvais pas mettre de nombre du genre 11, 12, 13, 14, ... mais seulement des grand trucs ou du moins avec des 0 (comme 9000058 ou 10)!
Du coup je viens sur ce forum pour vous demander si vous ne connaissez pas une solution qui me permettrait d'autoriser les caractères 0123456789 et bien sûr, de bloquer tous les autres.

Merci d'avance pour votre aide !!
@+
lundi 5 septembre 2011 à 08:58:18 | Re : Autoriser seulement des nombres dans une variable

spacedelta

Re Bonjour, je sais que ça fait que une nuit que ce sujet est posté mais mon code ne pouvait pas attendre =S.
Donc pour ceux qui voulait connaître une possibilité pour le faire (que j'ai fait avec un preg_replace) je vous met le code à disposition.
Code PHP :
$mavariable = "211021005"; // on peut, il n'y a que des nombres
$mavariable = "abc123"; // ah, là on ne pourrait pas =/
$caractereamodifier = array ('@[éèêëÊË]@i','@[àâäÂÄ]@i','@[îïÎÏ]@i','@[ûùüÛÜ]@i','@[ôöÔÖ]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9_]@', '@[abcdefghijklmnopqrstuvwxyz]@i');
$transformerparsa = array ('','','','','','','','', '');
$verifnocaractspe = preg_replace($caractereamodifier, $$transformerparsa, $mavariable);  
     if($mavariable == $verifnocaractspe){ // là on compare la valeur reçu de preg_replace
echo("Ma valeur n'a pas de caractères spéciaux, on peut continuer ! =D");
}else{
echo("ben merde, y'a des caractères spéciaux =( ");
}

Bon @+ tout le monde si quelqu'un connait une autre façon moins spartiate et plus homogène il sera le bienvenu, @+
lundi 5 septembre 2011 à 18:29:53 | Re : Autoriser seulement des nombres dans une variable

kohntark

Membre Club
Réponse acceptée !
Salut,

Mon dieu ce que tu te prends la tête !!

[...] mais seulement des grand trucs ou du moins avec des 0 (comme 9000058 ou 10)!
preg_match('`[^1-9]`', $mavariable);



Normal, puisque là tu cherches tout ce qui n'est pas (^) un chiffre entre 1 et 9 (1-9)

preg_match() retournera donc 1 dès qu'il y a un 0 ou un caractère non numérique.

$mavariable = "211021005"; // on peut, il n'y a que des nombres
$mavariable = "abc123"; // ah, là on ne pourrait pas =/
$caractereamodifier = array ('@[éèêëÊË]@i','@[àâäÂÄ]@i','@[îïÎÏ]@i','@[ûùüÛÜ]@i','@[ôöÔÖ]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9_]@', '@[abcdefghijklmnopqrstuvwxyz]@i');
$transformerparsa = array ('','','','','','','','', '');
$verifnocaractspe = preg_replace($caractereamodifier, $$transformerparsa, $mavariable);
if($mavariable == $verifnocaractspe){ // là on compare la valeur reçu de preg_replace
echo("Ma valeur n'a pas de caractères spéciaux, on peut continuer ! =D");
}else{
echo("ben merde, y'a des caractères spéciaux =( ");
}



C'est affreux, pas beau, lourd, complexe, en doublon et ça ne fonctionnera pas à tous les coups.
... et puis ça ne réponds pas à ta demande initiale qui est de n'autoriser que les chiffres (et pas les remplacer)

Bref, avec une regex :
Code PHP :
'`^[0-9]*$`'


^ : début de chaîne
[0-9] : les caractères 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9
+ : une ou plusieurs fois (mettre * si tu veux autoriser les chaînes vides)
$ : fin de la chaîne

ou mieux :
Code PHP :
'`^\d+$`'

\d == [0-9]

ou encore mieux : utiliser les fonctions natives de PHP qui sont généralement moins gourmandes en ressources que les expressions régulières :
ctype_digit()
is_numeric()
is_int()

Attention à bien lire la doc avant leur utilisation afin que cela réponde correctement à ta demande (comparaison des types, notations style "1e23", etc ...)


Cordialement,


Kohntark -


Cette discussion est classée dans : code, variable, nombres, seulement, autoriser


Répondre à ce message

Sujets en rapport avec ce message

Variable dans une session [ par RockmanX ] Voila,je voudrais stocker des données dans une session nommée session_user qui s'ouvre à la suite d'un formulaire de login si le mot de passe et le no Prendre un morceau de code et le mettre dans une variable [ par Enishi ] Je voudrais prendre un morceau de mon code et le mettre dans une variable. Avez-vous une idée?$text = preg_replace("/\[next=1\](.*?)\[nex/si", $code[' Mettre le contenu de <title> dans une variable [ par ElGaunt ] Salut à tous,J'aimerais mettre le contenu de la balise du code html dans une variable que je pourrai utiliser dans mon code php.C'est possible ? Ci o Prob de variable [ par yuwoz8 ] Voila je viens de me mettre ds le php et je galerevoici mon code:global $etat;global $ Problème de easy PHP 1.6 à easy PHP 1.7, variable [ par kilgoreweb ] Bonjour !, en installant la nouvelle version de easy PHP 1.7 je me suis aperçue que les variables de mes scripts PHP déliraient ex : Notice: Undefined incrementer une variable. [ par zzzzzz ] Salut voici mon code:$idvalid = 0;$idsupr = 0;while($rs = mysql_fetch_array($sql,MYSQL_ASSOC)) {$idvalid++;$idsupr++;$rituel = "".$rs['rituel']."";ech Unexpected T_IF T_variable .... [ par x0s ] bonjour j'ai une erreur dans mon script, il m'indique:"Parse error: parse error, unexpected T_IF in w:\design\easyphp\www\bac-fr\admin\modif_fiche.php Probleme de formulaire et de variable a reccuperer ds un case [ par Fantomas33 ] Bonjour,Sur ma page j'ai un case. L'action par défaut est de valider le formulaire, l'autre cas est l'action voulue. Voici mon code : switch($v pb de variable non defini avec switch [ par loicba ] BonjourJe suis débutant et j'ai un petit probler avec mon code sourcece code se trouve sur index.php et donc lor du 1er lancement , la variable $mod n Petit pb en PHP, iniatiliser une variable dans une liste deroulante [ par dadoudamien ] Bonjour,JE galère un peu.J'essaye de mettre a jour dynamiquement la variable $qte666, avec une liste déroulante.voici le tronche de mon code (c juste


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,162 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales