[RESOLU] comment tester la présence de 2 valeurs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] comment tester la présence de 2 valeurs

Re: comment tester la présence de 2 valeurs

par gillescoste2006 » 12 févr. 2015, 18:42

ça marche !

Merci beaucoup pour ton aide

Re: comment tester la présence de 2 valeurs

par Ryle » 12 févr. 2015, 17:20

Tu as deux solutions :

- Soit tu passes par des conditions imbriquées (un if dans un if) :
if (isset($_GET['ml'])) { 
   // si le paramètre "ml" est passé en get dans l'url
   $url = $_SERVER["REQUEST_URI"];
   if (strpos($url, 'collier')!==false && strpos($url, 'dreissage')!==false) {
      // si l'url contient "collier" ET l'url contient "dreissage"

   }
}
- Soit tu ajoutes d'autres conditions dans ton if, en utilisant les opérateurs appropriés ( && pour un ET, || pour un OU, etc.) :
$url = $_SERVER["REQUEST_URI"];
if (isset($_GET['ml']) && strpos($url, 'collier')!==false && strpos($url, 'dreissage')!==false) {
   // si le paramètre "ml" est passé en get dans l'url ET l'url contient "collier" ET l'url contient "dreissage"
}
Le choix se fait en général en fonction du besoin d'avoir un ELSE ou non pour les différents IF, de la lisibilité et de la compréhension du code (le 2nd est plus court, mais le premier est découpé selon une logique métier, donc peut être plus facile à relire dans 3 mois si tu as besoin de corriger quelque chose) et surtout du confort et de ce qui te parait le plus clair à maintenir quand tu reviendras dessus dans 6 mois pour ajouter une nouvelle fonctionnalité ;)

Re: comment tester la présence de 2 valeurs

par gillescoste2006 » 12 févr. 2015, 17:08

Au départ je testai la présence de la valeur ml de cette manière car je testai si l'internaute venait de ma mailing list

Code : Tout sélectionner

if(isset($_GET['ml'])){
Est ce que je peux ajouter ta syntaxe

Code : Tout sélectionner

$url = $_SERVER["REQUEST_URI"]; if (strpos($url, 'collier')!==false && strpos($url, 'dreissage')!==false) { }
c'est à dire tester en plus la présence de ml dans le GET

Comment je peux l'écrire à utilisant le tout c'est à dire tester la présence de collier et de dreissage et la présence du ml dans le GET

Merci beaucoup pour ta réponse et l'aide que tu pourra m'apporter

Re: comment tester la présence de 2 valeurs

par Ryle » 12 févr. 2015, 16:47

Hello !

Il suffit de mettre deux conditions dans ton if :)
$url = $_SERVER["REQUEST_URI"];
if (strpos($url, 'collier')!==false && strpos($url, 'dreissage')!==false) {

}
Ainsi la condition du if() n'est vraie que si la chaîne contient "collier" (en minuscule) ET contient "dreissage" (en minuscule)



EDIT : attention d'ailleurs à ton code, tu as des apostrophes en trop autour de $_SERVER["REQUEST_URI"] :
$url = '$_SERVER["REQUEST_URI"]'; // la variable $url contient le texte $_SERVER["REQUEST_URI"] en toutes lettres

$url = $_SERVER["REQUEST_URI"]; // la variable $url contient la valeur retournée par $_SERVER["REQUEST_URI"] (et donc l'url de la page demandée)

comment tester la présence de 2 valeurs

par gillescoste2006 » 12 févr. 2015, 16:15

Bonjour,

Je veux tester la présence du mot "mot1" et la présence du mot "mot2" dans une url $_SERVER["REQUEST_URI"] pour écrire une condition.

J'ai écrit

Code : Tout sélectionner

$url = '$_SERVER["REQUEST_URI"]'; if (false !== strpos($url,'collier')) {
Pour l'instant ça ne teste que la présence du mot collier dans l'url mais je voudrait que cela teste la présence du mot "collier" + le mot "dreissage" même si ces 2 mots ne sont pas l'un à côté de l'autre

Comme je peux faire ?

Merci pour votre aide