Champs vide et comparaison de variables - PHP - Programmation
Marsh Posté le 20-11-2003 à 12:39:42
deja il manquait un ; ... mais ça suffit pas !
Marsh Posté le 20-11-2003 à 12:45:42
if ($y =='' && $z =='')
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" ); ?>
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 :
|
->manque les infos, pas encore codé ?
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 !
Marsh Posté le 20-11-2003 à 13:52:54
j'ai recupéré ma session... c bon signe !!
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
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 :
|
Comme ça tu as déjà tes valeurs par défaut.
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