steps avec $_GET

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 : steps avec $_GET

Re: steps avec $_GET

par sirakawa » 30 déc. 2012, 14:08

Comme dit xtg, il est difficile de mariser les conditions complexes. 108 cas si je me souviens bien
Il faudrait en avoir fait les tables de vérité...
Mais un truc dans le genre
switch ($a) // celle qui a le plus de cas
{
   case 1:
   {
      switch ($b) // celle a 3 cas
      {
        case 1:
             if ($c == 1)
            {
              $cas =1;
           }
           else
           {
             $cas =2;
           }
         break;
         default:
           $cas =0;
      }
}
// suivi
switch ($cas)
{

}

Re: steps avec $_GET

par xTG » 30 déc. 2012, 11:46

Le nombre de condition n'est pas un problème.
Le principe est de ne penser qu'à une seule variable à la fois pour ne pas s'embrouiller.

Actuellement tu travailles sur du N*M, moi je te propose de travailler sur du N à la fois. ;)
Car ton souci est que tu as trop de conditions et que tu t'y perds, cela ne fonctionne pas et tu ne sais plus trouver pourquoi dans ton usine.

Re: steps avec $_GET

par dmsr » 30 déc. 2012, 10:15

Merci pour cette explication mais hélas ce n'est pas que 0 et 1 ... en réalité 's' peut avoir une valeur allant de 1 à 18, 'h' 1 à 3 et 'b' 0 ou 1. Ca en ferait beaucoup de conditions ternaires non ? :(

Merci d'avance

Re: steps avec $_GET

par xTG » 30 déc. 2012, 10:01

Le mieux dans ces conditions là est d'écrire la condition de la façon la plus lisible.
Et pour ce cas là rien de mieux que les conditions ternaires :
A est actif ssi h est à 1 et que c est à 0
B est actif ssi h est à 1 et que c est à 1
C est actif ssi h est différent de c
$A = ($h == 1 && c == 0) ? true : false;
$B = ($h == 1 && $c == 1) ? true : false;
$C = ($h != $c) ? true : false;
Ainsi tu réfléchis à la condition pour une variable à la fois et tu restes vrai dans tous les autres cas. ;)

steps avec $_GET

par dmsr » 30 déc. 2012, 09:34

Bonjour à tous,

J'aurais besoin d'un peu d'aide sur le moyen de pouvoir faire des étapes sur un même php. Ci-dessous le code mis en place mais helas je reste bloqué sur la $viewSitu2 :(

if (($_GET['s']==1)||($_GET['s']==2)||))
{
if (($_GET['h']==1)||($_GET['h']==2))
{
if (($_GET['b']==0)||($_GET['b']==1))
{
$viewFront = true;
$viewSitu3 = false;
$viewSitu2 = false;
$viewSitu1 = false;
}
$viewFront = false;
$viewSitu3 = true;
$viewSitu2 = false;
$viewSitu1 = false;
}
$viewFront = false;
$viewSitu3 = false;
$viewSitu2 = true;
$viewSitu1 = false;
}
else
{
$viewFront = false; // VIEW FRONT
$viewSitu3 = false; // VIEW PART 3
$viewSitu2 = false; // VIEW PART 2
$viewSitu1 = true; // VIEW PART 1
}

if ($viewFront)
{ // code ma page finale }
if ($viewSitu1)
{ echo 'lien vers meme page php?s=1'; }
if ($viewSitu2)
{ echo 'lien vers meme page php?s='.$_GET['s'].'&h=1'; }
if ($viewSitu3)
{ echo 'lien vers meme page php?s='.$_GET['s'].'&h='.$_GET['h'].'&b=1'; }

Vos retours m'aideraient grandement car là ma jeunesse phpdienne me fait defaut.
Un grand merci d'avance