La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  Langages de programmation divers
(Modérateurs: Shain, Lilian, lauryv, ToToMaStEr)
  Insérer une regex dans une structure conditionnelle
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: Insérer une regex dans une structure conditionnelle  (Lu 9754 fois)
Insérer une regex dans une structure conditionnelle
« sur: le 26-02-2015 a 23:15:35 »
Jdoss
Membre récent
*

Hors-Ligne

Messages: 3





Voir le Profil    E-Mail
Répondre avec citation

Bonjour à tous. Je débute dans la conception de site Web, et j'aurai besoin d'aide pour utiliser une expression régulière, dans une condition.

J'ai récemment trouvé un exercice de maths. Je ne vais pas tout vous détailler, mais dans l’énoncer de cet exercice, il y a la présence de condition :
Dans un magasin, c'est les soldes, et SI on achète pour moins de 100€ (au total), on a une réduction de 10%, si on achète pour 100€ ou + de 100€, on a une réduction de 25%.

J'ai donc voulu créer un programme qui s'adapte à cet exercice.
L'utilisateur rempli un formulaire simple et entre une donné dans une fenêtre, par exemple "100", et ainsi le programme charge une nouvelle page qui affiche le prix final après réduction, (donc dans mon exemple, 75).

Dans une première page, j'ai utilisé un formulaire très simple, où l'utilisateur doit insérer une valeur : 

<p>
    Veuillez insérer le montant de vos achats :
</p>

<form action="reeduction_.php" method="post">
<p>
    <input type="text" name="prixx" />
    <input type="submit" value="Valider" />
</p>
</form>

Ce formulaire fonctionne très bien.
Dans une deuxième page nommé "reeduction_.php", j'ai utilisé la structure conditionnelle qui est la suivante :

<?php

if ($_POST['prixx'] < 100)
{
   echo 'Le prix après réduction est de ' .$_POST['prixx']  * (9/10).'  € !' ;
}

elseif ($_POST['prixx'] >= 100)
{
   echo 'Le prix après réduction est de ' . $_POST['prixx'] * (3/4).' € ! ' ;
}

?>

Ce code fonctionne très bien. Mais maintenant, je voudrais faire en sorte que l'utilisateur ne puisse insérer que un prix, et pas autre chose qu'un prix. Par exemple, si l'utilisateur écrit "Grrr", (ceci n'est pas un prix), je voudrais afficher le message suivant :
"Ceci n'est pas un prix ! Veuillez réessayer."

Pour ce faire, j'ai écrit la regex suivante qui fonctionne très bien :
#^[0-9]+[,.]?[0-9]{1,2}$#

Seulement voilà, maintenant je ne sais plus comment faire.

Est-ce que quelqu'un pourrait m'aider pour que je puisse insérer et adapter cette regex dans ma structure conditionnelle ? De façon à ce que, si l'utilisateur insère "Grrr" (ou tout autre chose qui n'est pas un prix), dans mon formulaire, je puisse lui demander de recommencer.

J'ai essayé par moi même d'obtenir ce que je voulais en changeant et en adoptant le code suivant :

<?php

if (preg_match("#^[0-9]+[,.]?[0-9]{1,2}$#", $_POST['prixx'] < 100))
{
   echo 'Le prix après réduction est de ' .$_POST['prixx']  * (9/10).'  € !' ;
}

elseif (preg_match("#^[0-9]+[,.]?[0-9]{1,2}$#", $_POST['prixx'] >= 100))
{
   echo 'Le prix après réduction est de ' . $_POST['prixx'] * (3/4).' € ! ' ;
}
else
{
   echo "Ceci n'est pas un prix ! Veuillez réessayer." ;
}

?>

Seulement voilà, avec ce code, quoi que je remplisse dans le formulaire, le résultat sera toujours « Ceci n'est pas un prix ! Veuillez réessayer. » Or, si j'insère vraiment un prix juste, je souhaite avoir le prix finale après réduction, introduit dans la phrase « Le prix final après la réduction est ... »

Est-ce que quelqu'un pourrait m'aider à résoudre ce problème ?

Merci beaucoup, cordialement.

Rapporter au modérateur  

Re:Insérer une regex dans une structure conditionnelle
« Répondre #1 sur: le 27-02-2015 a 10:01:23 »
pppplus
Habitué
***

Hors-Ligne

Messages: 482



php / mysql

Voir le Profil    WWW
Répondre avec citation

Bonjour

Pas besoin de regex :

if(!is_numeric($_POST['prix'])echo "Ce n'est pas un prix";
else
{
  //votre traitement en fonction de la somme.
}

Rapporter au modérateur  

capsules rechargeables Dolce Gusto et Nespresso
jeux flash gratuits avec la plus grosse boutique cadeaux du net
Accessoires cuisine pratiques
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2025 - Tous droits réservés

creation site internet strasbourg