Valisation des codes allopass par php

  • Auteur de la discussion Auteur de la discussion sff
  • Date de début Date de début
WRInaute impliqué
Bonjours, j'ai un petit soucis. J'aimerai vérifier la validité de 4 codes allopass par php.

J'ai cette ligne de code, le problème c'est qu'elle ne vérifie que le premier code.
Code:
if (ereg('ERR', $r[0]) || ereg('NOK', $r[0])) {

echo 'erreur';
}

Il faudrait vérifier en fonction d'une variable. Exemple si $var = 3, on verifie 3 code allopass, si il est égal à 4, on verifie 4 codes allopass. Etc

Avez vous une idée?

Merci
 
WRInaute occasionnel
oui bien sur j'ai une idée, mais pour te donner un exemple il faudrait plus d'infos.
ou seront tes retours pour les X codes suivants? tous dans la variable array $r ? $r[1] $r[2] etc ?

tu veux chercher la construction conditionnelle switch en php

Code:
switch (expression)
{
case label1:
  code to be executed if expression = label1;
  break;  
case label2:
  code to be executed if expression = label2;
  break;
default:
  code to be executed
  if expression is different 
  from both label1 and label2;
}
 
WRInaute impliqué
suite

Oui exact, au lieu de mettre ceci:


Code:
if (ereg('ERR', $r[0]) || ereg('NOK', $r[0])) {// condition 1

echo 'code 1 incorrect';
}
elseif (ereg('ERR', $r[2]) || ereg('NOK', $r[2])) {// condition 2

echo 'code 2 incorrect';
}
elseif (ereg('ERR', $r[4]) || ereg('NOK', $r[4])) {// condition 3

echo 'code 3 incorrect';
}
elseif (ereg('ERR', $r[6]) || ereg('NOK', $r[6])) {// condition 4

echo 'code 4 incorrect';
}else{
echo'code correct';}


On peut utiliser des switch, mais ca ne suffit pas justement. En fait faudrait le faire en fonction d'une variable. Genre si $var = 2 on teste seulement les 2 premières condition, si $var = 3 on teste les 3 première condition. Etc. C'est cela que je sais pas comment faire. Tout le problème étant de tester en fonction de $var.
 
WRInaute occasionnel
et bien c'est $var que tu vas utiliser dans le switch :
si var = 1 tu ne teste qu'un code, si var = 2 tu teste deux codes, etc.
tu vas imbriquer les IF ELSE dans le switch

switch ($var)
{
case 1:
if code1 = OK then ok else notok;
break;
case 2:
if code1 = OK and code2 = OK then ok else notok;
break;
case 3: etc.
}
 
WRInaute impliqué
suite

Ca fait pas térrible comme code je suis sur qu'il y a possibilité de réduire ca.

Code:
switch ($var)
{
case 1:

if (ereg('ERR', $r[0]) || ereg('NOK', $r[0])) {// condition 1

echo 'code 1 incorrect';

}else{echo'correct';
}
break;
case 2:
f (ereg('ERR', $r[0]) || ereg('NOK', $r[0])) {// condition 1

echo 'code 1 incorrect';
}
elseif (ereg('ERR', $r[2]) || ereg('NOK', $r[2])) {// condition 2

echo 'code 2 incorrect';
}else{echo'correct';
}
break;
case 3: 
if (ereg('ERR', $r[0]) || ereg('NOK', $r[0])) {// condition 1

echo 'code 1 incorrect';
}
elseif (ereg('ERR', $r[2]) || ereg('NOK', $r[2])) {// condition 2

echo 'code 2 incorrect';
}
elseif (ereg('ERR', $r[4]) || ereg('NOK', $r[4])) {// condition 3

echo 'code 3 incorrect';
}else{echo'correct';
}
break;
case 4: 
if (ereg('ERR', $r[0]) || ereg('NOK', $r[0])) {// condition 1

echo 'code 1 incorrect';
}
elseif (ereg('ERR', $r[2]) || ereg('NOK', $r[2])) {// condition 2

echo 'code 2 incorrect';
}
elseif (ereg('ERR', $r[4]) || ereg('NOK', $r[4])) {// condition 3

echo 'code 3 incorrect';
}
elseif (ereg('ERR', $r[6]) || ereg('NOK', $r[6])) {// condition 4

echo 'code 4 incorrect';
}else{
echo'code correct';}
break;
}
 
Discussions similaires
Haut