Champs vide et comparaison de variables

Champs vide et comparaison de variables - PHP - Programmation

Marsh Posté le 20-11-2003 à 12:28:27    

Bonjour à tous !
 
Pouvez vous m'indiquer mes erreurs (une fois de plus !! lol)
 
voici mon code :
 
<?
$x=$_POST['type_nb_pages'];
$y=$_POST['type_nb_pages_nb'];
$z=$_POST['type_nb_pages_coul'];
 
if ($x != ($y+$z))
{
$field2="Attention la somme des pages noir et blanc et couleur doit être égale au nombre total de pages !";
}
if ($x =='')
{
$field="Le champ est vide !";
}
if ($y =='')&&($z =='')
{
$field2="Vous devez choisir au minimum une page noir et blanc ou couleur !"
}
else
{
session_name("devis1" );
session_start();
 
$_SESSION['nb_pages']=$x;
$_SESSION['format_papier']=$_POST['type_format_papier'];
$_SESSION['nb_pages_nb']=$y;
$_SESSION['nb_pages_coul']=$z;
header ("Location : index_etape2.php" );
}
 
include("../includes/variables.php" ); ?>


---------------
Freed102
Reply

Marsh Posté le 20-11-2003 à 12:28:27   

Reply

Marsh Posté le 20-11-2003 à 12:39:42    

deja il manquait un ; ... mais ça suffit pas ! :)


---------------
Freed102
Reply

Marsh Posté le 20-11-2003 à 12:45:42    

if ($y =='' && $z =='')


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 20-11-2003 à 13:07:08    

merci ! ya plus d'erreur.. mais ça marche pas comme je voudrais !!
 
il s'arrete d'office sur le dernier test... donc ça va pas  ! lol
 
http://www.clonecopy.net/php/devis/index_etape1.php
 
 
j'ai changé un truc.. Mais ça suffit pas :
 
<?
$x=$_POST['type_nb_pages'];
$y=$_POST['type_nb_pages_nb'];
$z=$_POST['type_nb_pages_coul'];
 
if ($submit)
{
if ($x != ($y+$z))
{
$field2="Attention la somme des pages noir et blanc et couleur doit être égale au nombre total de pages !";
}
elseif ($x =='')
{
$field="Le champ est vide !";
}
elseif ($y =='' && $z =='')
{
$field2="Vous devez choisir au minimum une page noir et blanc ou couleur !";
}
else
{
session_name("devis1" );
session_start();
 
$_SESSION['nb_pages']=$x;
$_SESSION['format_papier']=$_POST['type_format_papier'];
$_SESSION['nb_pages_nb']=$y;
$_SESSION['nb_pages_coul']=$z;
header ("Location : index_etape2.php" );
}
}
include("../includes/variables.php" ); ?>


---------------
Freed102
Reply

Marsh Posté le 20-11-2003 à 13:21:39    

Bé ça marche, t'as fait des changements ?
 
Par habitude, je ferais des
 
$x=trim($_POST['type_nb_pages'])
 
et  
 
If (empty($x))
plutôt que
If ($x=="" )
 
mais bon, c'est presque du détail.
 
Sinon, les données stockées en session ne semblent pas être transférées à la page 2, puisque j'obtiens

Code :
  1. Documents à copier/imprimer :  page(s) en format
  2. Incluant page(s) en noir et blanc et page(s) en couleur.


 
->manque les infos, pas encore codé ?


Message édité par deliriumtremens le 20-11-2003 à 13:27:04
Reply

Marsh Posté le 20-11-2003 à 13:38:07    

oui ça marche presque ! !mais j'arrive pas encore à faire le systeme avec le champ vide !! il m'indique toujours "Dois etre supérieur à 1"
 
voici le code (j'ai changé pas mal de choses :

<?
session_name("devis1" );
session_start();
 
$_SESSION['nb_pages']=$_POST['type_nb_pages'];
$_SESSION['format_papier']=$_POST['type_format_papier'];
$_SESSION['nb_pages_nb']=$_POST['type_nb_pages_nb'];
$_SESSION['nb_pages_coul']=$_POST['type_nb_pages_coul'];
 
$x=trim($_POST['type_nb_pages']);
$y=trim($_POST['type_nb_pages_nb']);
$z=trim($_POST['type_nb_pages_coul']);
 
if ($submit)
{
if (empty($x))
{
$field="Le champ est vide !";
}
if ($x < 1)
{
$field="Doit être supérieur à 1 !";
}
if ($x != ($y+$z))
{
$field2="Attention la somme des pages noir et blanc et couleur doit être égale au nombre total de pages !";
}
if ($y =='' && $z =='')
{
$field2="Vous devez choisir au minimum une page noir et blanc ou couleur !";
}
elseif ($x >=1 && $x ==($y+$z))
{
header("Location: index_etape2.php" );
}
}
include("../includes/variables.php" ); ?>

 
... et effectivement les donnée ne sont pas stockées en session... je sais pas pourquoi ! ça marchait très bien avant ça ! :(


---------------
Freed102
Reply

Marsh Posté le 20-11-2003 à 13:52:54    

j'ai recupéré ma session... c bon signe !! :)


---------------
Freed102
Reply

Marsh Posté le 20-11-2003 à 15:31:35    

...bon, j'ai arrangé un peu mon systeme de session... ça marche parfaitement bien !
 
Maintenant je me remets sur mon systeme de test de variables... mais là je capte plus trop... en fait ya des conditions dans mon programme qui marchent pas on dirait... surtout celle concernant les champs vide !! j'ai essayé :
 
if (empty($x))
{
$field="Le champ est vide !";
}
 
... mais ça marche pas...  
 
revoici mon code complet (sur les conditions) :
 

if ($submit)
{
if (empty($x))
{
$field="Le champ est vide !";
}
if ($x < 1)
{
$field="Doit être supérieur à 1 !";
}
if ($x != ($y+$z))
{
$field2="Attention la somme des pages noir et blanc et couleur doit être égale au nombre total de pages !";
}
if (empty ($y) && empty ($z))
{
$field2="Vous devez choisir au minimum une page noir et blanc ou couleur !";
}
elseif ($x >=1 && $x ==($y+$z))
{
header("Location: index_etape2.php?".session_name()."=".session_id());
}
}

 
zavez une idée ?
 
Merci


Message édité par freed102 le 20-11-2003 à 15:31:51

---------------
Freed102
Reply

Marsh Posté le 20-11-2003 à 15:42:44    

Ben c'est que ton $x correspond à rien si $_POST['nb_de_pages'] n'est pas rempli.
 
 
 
Donc tu peux faire
If(!empty(trim($_POST['nb_de_pages'])))
{$x=$_POST['nb_de_pages'];}
Else
{$x="";}
 
Et là tes contrôles en faisant des if (empty($x)) devraient fonctionner.
 
Perso, j'utilise une petite fonction
 

Code :
  1. Function PParameter ($name, $default)
  2.     {
  3.     If (isset($_POST[$name]))
  4.         {
  5.         $result=trim(htmlspecialchars($_POST[$name]));
  6.         }
  7.     Else
  8.         {
  9.         $result=$default;
  10.         }
  11.    
  12.     return($result);
  13.     }
  14. //Puis pour "déclarer" une variable tu n'as plus qu'à faire
  15. $x=PParameter("nb_de_pages","" );


 
Comme ça tu as déjà tes valeurs par défaut.


Message édité par deliriumtremens le 20-11-2003 à 15:43:19
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed