if/else non reconnu si deux instructions se suivent

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 : if/else non reconnu si deux instructions se suivent

Re: if/else non reconnu si deux instructions se suivent

par sirakawa » 12 nov. 2012, 22:50

Enfance de la programmation: vérifier les valeurs manipulées
$page_actua = isset($_SESSION['page_actua']) ? $_SESSION['page_actua'] : false;
$variable_1 = isset($_SESSION['variable_1']) ? isset($_SESSION['variable_1']) : false;
var_dump ($page_actua);
var_dump ($variable_1);
éclairciraient la situation.

Par pitié, ne pas ajouter maintenant une troisième variable sortie on,ne sait d'où....

Re: if/else non reconnu si deux instructions se suivent

par gesualda » 12 nov. 2012, 14:43

Bonjour xTG,

j'ai réglé le problème de la variable $filiation. J'avais oublié de la déclarer. :oops:

Ceci étant, cela ne règle pas mon soucis, pour l'expédition de tel ou tel page. Je veux dire, c'est un peu comme s'il n'y avait que la dernière partie du controle qui est vérifié.

Re: if/else non reconnu si deux instructions se suivent

par xTG » 12 nov. 2012, 14:32

Et que donnes un :
var_dump($filiation);

Re: if/else non reconnu si deux instructions se suivent

par gesualda » 12 nov. 2012, 14:04

Voila, j'ai donc refais le code suivant tes explications, mais toujours pareil, c'est le dernier control qui est retenu dans switch.

Je me permet de remettre tout le code. la valeur de $_SESSION['acte'] n'est pas prise en compte sur la page appelée. que faire ?
				$page_envoyer = 0;				
				// 1er Controle - Envoie mail NAI
$page_actua = isset($_SESSION['page_actua']) ? $_SESSION['page_actua'] : false;
$filiation = isset($_SESSION['filiation']) ? $_SESSION['filiation'] : false;

switch ($page_actua)
{
        case 1:
                
				$_SESSION['acte_mail'] = 'd\'acte de naissance';
                $_SESSION['page_envoyer'] = 1;  
				
                switch ($filiation)
                {
                        case 1:
                        $_SESSION['acte'] = 'sans filiation' ;
                        break;
                        case 2:
                        $_SESSION['acte'] = 'avec filiation' ;                 
                        break;
                }
				if(file_exists(path_mail.'inc_mail_nais.php')){
       				 include(path_mail.'inc_mail_nais.php');
      					}
      			else {
        			 echo "Le fichier inc_mail_nais n\'existe pas";
     					 }
	      
        break;
        case 2:
				$_SESSION['acte_mail'] = 'd\'acte de mariage';
                $_SESSION['page_envoyer'] = 2;  
                switch ($filiation)
                {
                        case 1:
                          $_SESSION['acte'] = 'sans filiation' ;
                        break;
                        case 2:
                        $_SESSION['acte'] = 'avec filiation' ;                 
                        break;
                } 
				if(file_exists(path_mail.'inc_mail_mar.php')){
       				 include(path_mail.'inc_mail_mar.php');
      					}
      			else {
        			 echo "Le fichier inc_mail_mar n\'existe pas";
     					 }
        break;       
		case 3:
				 $_SESSION['acte_mail'] = 'd\'acte de décès';
                $_SESSION['page_envoyer'] = 3;  
                switch ($filiation)
                {
                        case 1:
                          $_SESSION['acte'] = 'sans filiation' ;
                        break;
                        case 2:
                        $_SESSION['acte'] = 'avec filiation' ;                 
                        break;
                }
				if(file_exists(path_mail.'inc_mail_deces.php')){
       				 include(path_mail.'inc_mail_deces.php');
      					}
      			else {
        			 echo "Le fichier inc_mail_deces n\'existe pas";
     					 } 
        break;
        default:
}

Re: if/else non reconnu si deux instructions se suivent

par gesualda » 12 nov. 2012, 07:20

Bonjour sirikawa,

Merci pour la lisibilité de ce morceau. Je vais procéder ainsi pour la suite et je reviens pour dire quoi.

Re: if/else non reconnu si deux instructions se suivent

par sirakawa » 11 nov. 2012, 21:42

Bsr,
Rapidement,
// 1er Controle - Envoie mail NAI
$page_actua = isset($_SESSION['page_actua']) ? $_SESSION['page_actua'] : false;
$variable_1 = isset($_SESSION['variable_1']) ? isset($_SESSION['variable_1']) : false;
  /****************************************************************/
  //if(isset($_SESSION['page_actua']) && $_SESSION['page_actua'] == 1 && isset($_SESSION['variable_1']) && $_SESSION['variable_1'] == 1){  
  //est synonyme de:                                                                                              
if($page_actua == 1 && $variable_1 == 1)
{    
//$page_actua == 1 ET $variable_1 == 1                                                                                              
	$_SESSION['acte_mail'] = 'd\'acte de naissance';
   $_SESSION['acte'] = 'sans filiation' ;
   $page_envoyer = 1;
   $_SESSION['page_envoyer'] = $page_envoyer;                             
     
      if(file_exists(path_mail.'inc_mail_nais.php'))
      {
      	include(path_mail.'inc_mail_nais.php');
      }
      else 
      {
      	echo "Le fichier inc_mail_nais n\'existe pas";
      }                                           
 }
 else
 {
 // contraire de $page_actua == 1 ET $variable_1 == 1  ==>>>DEMORGAN=>>>> $page_actua !=1 OU $variable_1 != 1

     $_SESSION['acte_mail'] = 'd\'acte de naissance';
     $_SESSION['acte'] = 'avec filiation' ;
     $page_envoyer = 1;
     $_SESSION['page_envoyer'] = $page_envoyer;                                             
}       
//repenser ainsi:
switch ($page_actua)
{
	case 1:
		$_SESSION['acte_mail'] = 'd\'acte de naissance';
 		$_SESSION['page_envoyer'] = 1;  
 		switch ($variable_1)
 		{
 			case 1:
 			  $_SESSION['acte'] = 'sans filiation' ;
 			break;
 			case 2:
     			$_SESSION['acte'] = 'avec filiation' ;			
 			break;
 		}    
	break;
	case 2:
	break;
	default:
}

if/else non reconnu si deux instructions se suivent

par gesualda » 11 nov. 2012, 18:51

Bonjour à tous,

Je vous mets un bout de code qui me pose problème, et dont je comprends plus très bien. Il n'y aucune erreur d'affichée et les sessions sont les bonnes par rapport au contrôle.

- le premier contrôle doit inclure une page.
- Le deuxième contrôle doit inclure une autre page.

Quoi qu'il arrive, c'est toujours le deuxième contrôle ( if/else ) qui est pris en valeur en zappant le premier ( if/else ). Comment puis je expliquer cela ?
De toute façon, je passe à coter de quelques choses, mais pas moyen de mettre le doigt dessus

Merci de vos aides et explications.

				// 1er Controle - Envoie mail NAIS
				/****************************************************************/
				if(isset($_SESSION['page_actua']) && $_SESSION['page_actua'] == 1 && isset($_SESSION['variable_1']) && $_SESSION['variable_1'] == 1){													
							
							$_SESSION['acte_mail'] = 'd\'acte de naissance';
								$_SESSION['acte'] = 'sans filiation' ;
									$page_envoyer = 1;
										$_SESSION['page_envoyer'] = $page_envoyer;				
						
						if(file_exists(path_mail.'inc_mail_nais.php')){include(path_mail.'inc_mail_nais.php');}else {echo "Le fichier inc_mail_nais n\'existe pas";}						
				}
				else{
							$_SESSION['acte_mail'] = 'd\'acte de naissance';
								$_SESSION['acte'] = 'avec filiation' ;
									$page_envoyer = 1;
										$_SESSION['page_envoyer'] = $page_envoyer;						
				}			
				/****************************************************************/
				// 2me controle - Envoie autre MAR
				/****************************************************************/
				if(isset($_SESSION['page_actua']) && $_SESSION['page_actua'] == 2 && isset($_SESSION['variable_1']) && $_SESSION['variable_1'] == 1){												
							
							$_SESSION['acte_mail'] = 'd\'acte de mariage';
								$_SESSION['acte'] = 'sans filiation' ;						
									$page_envoyer = 2;
										$_SESSION['page_envoyer'] = $page_envoyer;				
						
						if(file_exists(path_mail.'inc_mail_mar.php')){include(path_mail.'inc_mail_mar.php');}else {echo "Le fichier inc_mail_mar n\'existe pas";}						
				}
				else{
							$_SESSION['acte_mail'] = 'd\'acte de mariage';
								$_SESSION['acte'] = 'avec filiation' ;
									$page_envoyer = 2;
										$_SESSION['page_envoyer'] = $page_envoyer;						
				}