Tester un input de formulaire pour voir si c'est un nombre

Eléphanteau du PHP | 17 Messages

31 janv. 2006, 16:17

Bonjour,

Je cherche un petit bout de code qui me permette de tester une donnee entree dans un formulaire.
En gros, l'tulisateur entre son code postal et je voudrais etre sur que le code est valide en verifiant qu'il s'agit d'un nombre de 5 chiffres...
if(isset($_POST["submit"]))
{
	$Code     = $_POST['code'];
	if(empty($Code))
	{
    		$Vide.="Il manque le code postal de votre adresse personnelle!<br>";
	}
	elseif /*C'est la function qu'il me manque !!*/
	{	
    		$Vide.="Le code postal : "$Code" n'est pas valide !<br>";
	}
Voila merci beaucoup pour votre aide

Pascal [/php]

Eléphant du PHP | 219 Messages

31 janv. 2006, 16:57

Là, tu es dans la FAQ ;)

Sinon, va jeter un coup d'oeil aux expressions régulières. (tu as un tuto sur phpfrance)

Mammouth du PHP | 768 Messages

31 janv. 2006, 17:30

En gros, l'tulisateur entre son code postal et je voudrais etre sur que le code est valide en verifiant qu'il s'agit d'un nombre de 5 chiffres...
Il faut utiliser les expressions régulières.
Attentions, un code postal corse possède une lettre :)
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphanteau du PHP | 17 Messages

31 janv. 2006, 20:36

je me suis gourre de liste je crois bien !
Milles excuses, encore un coup de debutant.
Merci de me l'avoir signale.
Pascal

Eléphanteau du PHP | 17 Messages

31 janv. 2006, 20:54

Est-ce que finalement ( en exceptant la corse...)
Si je fais un test du code postal en utilisant is_numerique et que je regarde si le nombre est inferieur a 99999, je devrais tombe juste a peu de chose pres non ?
Qu'en pensent ceux qui savent ?
Merci
Pascal

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

31 janv. 2006, 22:35

en exceptant la corse...
(...)
Qu'en pensent ceux qui savent ?
C'est de la discrimination :lol:

regarde ici pour prendre en compte nos amis Corses :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

31 janv. 2006, 22:40

La vraie discrimination est ici :
nos amis Corses :wink:
Avoir besoin de préciser que les Corses sont "nos amis"
atteste incontestablement que ce n'est donc pas une évidence ! :langue:

Je n'ai jamais eu besoin de préciser "nos ennemis lyonnais"... :mrgreen:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

31 janv. 2006, 22:46

atteste incontestablement que ce n'est donc pas une évidence ! :langue:
Peut-être :-k

En tout cas, je n'ai jamais été invité à boire un verre du coté de la Corse :lol:

Mais je suppose qu'ils sont tout de même amicaux :-({|=

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

31 janv. 2006, 22:49

Quand ils ne plastiquent pas une gendarmerie ou une sous-préfecture, je suis certain que les Corses sont aussi charmants que des continentaux voire même comme des Bretons ou de Basques :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

31 janv. 2006, 22:51

Merci merci.
Ca m'a l'air tout simplement impec !
Le seul c'est que je patouille et je ne sais pas declarer une fonction ou peut-etre, l'appeler :
si je mets :
function cp_valide ($cp) {
  return ereg ("^(2[ab]|0[1-9]|[1-9][0-9])[0-9]{3}$", $cp);
} 
dans mon script et que je teste mon code postal, je mets un truc du genre :
if(!(cp_valide($Code)))
{
Vide.="code non valide<br>";
}
Ca me semble logique mais ca me renvoie une fatal error...
Fatal error: Call to undefined function: cp_valid() in coordonnees.php on line 68.

Arrgggggg![/php]

Mammouth du PHP | 19672 Messages

31 janv. 2006, 22:56

Si ta fonction est dans un fichier externe, as-tu bien fait un include() de ce fichier dans ta page ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

31 janv. 2006, 22:59

Non.
Elle est au debut du fichier php exactement telle que je l'ai mise dans mon post precedent.
Peut-etre faut-il dire que c'est du java ?
D'ailleurs est-ce du java ou du php cette fonction ?
Je me demandais aussi pourquoi laisser un espace entre le nom de la function et la parenthese qui suit...
Enfin je me perds un peu ici.

Mammouth du PHP | 19672 Messages

31 janv. 2006, 23:02

Effectivement, si tu appelles une fonction JavaScript (et non Java) depuis une ligne en PHP, tu te fais jeter, c'est normal. garde ta fonction, mais mets-la entre balise PHP, c'est une fonction PHP. En JavaScript, les variables ne sont pas préfixées par un "$".
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

31 janv. 2006, 23:03

Pour plus de clarte, voila le code tel quel :
<?php
function cp_valide ($cp) {
  return ereg ("^(2[ab]|0[1-9]|[1-9][0-9])[0-9]{3}$", $cp);
} 

if(isset($_POST["submit"]))
{
	$Code     = $_POST['code'];
      if (empty($Code))
	{
    		$Vide.="Il manque le code postal de votre adresse personnelle!<br>";
	}
	elseif(!(cp_valid($Code)))
	{	
    		$Vide.="Le code postal personnel n'est pas valide !<br>";
	}
echo $Vide;
}
c'est idiot non ?

Mammouth du PHP | 19672 Messages

31 janv. 2006, 23:11

Non, ce n'est pas idiot, mais il y a une faute d'inattention:
elseif(!(cp_valid($Code)))
au lieu de
elseif(!(cp_valide($Code)))
L'espace entre le nom de la fonction et la parenthèse n'a aucune incidence, mais une lettre manquante donne une erreur automatique puisque c'est un nom différent..
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: