Formulaire php html faille

dwieser Messages postés 235 Statut Membre -  
dwieser Messages postés 235 Statut Membre -
Bonjour,

je viens de réaliser ce code

j'ai un dysfonctionnement relier directement
avec mon bouton radio

si pas cocher ça fonctionne
si le bouton radio est coché là deuxieme partie de mon formulaire
ne devrait pas s'afficher et poutant il s'affiche

les autres champs si pas de valeur la deuxieme partie de mon formulaire ne s'affiche pas
c'est correct

j'ai beau chercher y a une faille

MERCI DE VOS REPONSES


<center>
<h1>REALISER UN BREVET</h1>
<?php

//on n'a pas de valeur on affiche le début du formulaire

if((!isset($_SESSION['type_usine'], $_SESSION['nb_mat'], $_SESSION['nom_usine'], $_SESSION['nom_produit'])) && (!isset($_POST['type_usine'], $_POST['nb_mat'], $_POST['nom_usine'], $_POST['nom_produit'])))
{
?>
<form name="form_brevet" method="POST" action="brevet.php">
Nom de votre usine : <input type="text" name="nom_usine" value="">
Type d'usine : <select name="type_usine" selected="ameublement">
<optgroup label="usine traditionnelle"> 
<option>ameublement</option>
<option>décoration</option>
<option>agroalimentaire</option>
<option>véhicule</option>
<option>aéronautique</option>
<option>autre...</option>
</optgroup>
<optgroup label="usine militaire">
<option>véhicule</option>
<option>aéronautique</option>
<option>munition</option>
<option>arme</option>
<option>autre...</option>
</optgroup>
</select><br /><br />
Nombre de matière première :
1<input type="radio" name="nb_mat" value="1">
2<input type="radio" name="nb_mat" value="2">
3<input type="radio" name="nb_mat" value="3">
<br /><br />
Nom du produit à fabriquer : <input type="text" name="nom_produit" value="">
<br /><br />
<input type="submit" value="suivant1">
</form>
<?php




//si valeur on affiche la deuxième partie du formulaire
}
if (isset($_POST['type_usine'] , $_POST['nb_mat'] , $_POST['nom_usine'] , $_POST['nom_produit']))	
		{
$_SESSION['nom_usine']=$_POST['nom_usine'];		
$_SESSION['type_usine']=$_POST['type_usine'];
$_SESSION['nb_mat']=$_POST['nb_mat'];
$_SESSION['nom_produit']=$_POST['nom_produit'];	

echo 'Nom de votre usine: '.$_SESSION['nom_usine'].'<br />';
echo 'Type d\'usine: '.$_SESSION['type_usine'].'<br />';
echo 'Nombre de matière première: '.$_SESSION['nb_mat'].'<br />';
echo 'Nom du produit à fabriquer: '.$_SESSION['nom_produit'].'<br />'.'<br />';
?>
		<form name="form_matiere" method="POST" action="brevet.php">
	<?php	
		$i=1;
		while ($i<=$_SESSION['nb_mat'])
		{
		echo "Nom de la ".$i."ème matière première".'<input type="text" name="mat_pre'.$i.'" value="">'.'<br />';
		echo "Url de la ".$i."ème matière première".'<input type="text" name="img_mat_pre'.$i.'" value="">'.'<br />';
		echo '<br />';
		$i++;
		}
		echo '<input type="submit" value="suivant2"></form>';
		}
		
?>
</center>
<a href="brevet.php">Brevet</a><br />
<a href="users.php">Classement</a><br />
<a href="option.php">Option</a><br />
<a href="list_pm.php">Messages(<?php echo $nb_new_pm; ?> non-lus)</a><br />
<a href="index.php">Se déconnecter</a>
<?php



unset ($_SESSION['type_usine']);
unset ($_SESSION['nom_usine']);
unset ($_SESSION['nb_mat']);
unset ($_SESSION['nom_produit']);

}
else
{
//Sinon, on lui donne un lien pour sinscrire et un autre pour se connecter
header('location:index.php');

}
?>
		</div>
		
	</body>
</html>






--
Moi je plante et toi tu creuses !!!

3 réponses

  1. MastercroW Messages postés 1259 Date d'inscription   Statut Membre Dernière intervention   163
     
    Quel logiciel utilises-tu ?
    Avec Dreamweaver, on peut constater qu'il y a une erreur. Il y a un " } " en trop !
    A priori,
    }
    else
    {
    //Sinon, on lui donne un lien pour sinscrire et un autre pour se connecter
    header('location:index.php');
    
    }

    Ne correspond à rien.
    0
  2. dwieser Messages postés 235 Statut Membre 9
     
    bonjour,
    je vous ai mis mon code de ma page en entier
    j'utilise notepad++
    config.php c'est la connection au serveur local rien de plus

    probleme au niveau bouton radio pourtant mon "isset" deuxieme partie de mon formulaire me parait bon à moins que j'ai loupé quelque chose
    si radio pas cocher ça fonctionne

    si le bouton radio est coché là deuxieme partie de mon formulaire
    ne devrait pas s'afficher si les autres champs ne sont pas rempli et poutant il s'affiche c'est pas bon

    les autres champs si pas de valeur la deuxieme partie de mon formulaire ne s'affiche pas
    c'est correct

    j'ai beau chercher y a une faille

    MERCI PAR AVANCE DE VOS REPONSES

    <?php   
    include('config.php')   
    ?>   
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
    <html xmlns="http://www.w3.org/1999/xhtml">   
        <head>   
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
            <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />   
            <title>Brevet</title>   
        </head>   
        <body>   
     <div class="titre">   
    <center>   
     <img src = "default/images/titre.gif"></img><br />   
    </center>    
    </div>    
     <div class="content">   
    <?php if(isset($_SESSION['username'])){echo ' '.htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');} ?><br />   
    <br />   
    <?php   
    //si l'utilisateur est connecté  
    if(isset($_SESSION['username']))   
    {   
      //on enregistre heure actuel et heure fin de connection    
      $time_fin_connect = time() + $seconde_fin_connect;   
      mysql_query("UPDATE users SET time_connect = '".time()."' , time_fin_connect = '".$time_fin_connect."' WHERE username='".$_SESSION['username']."'") or die("erreur time_connect ou time_fin_connect<br>");    
    
      //On compte le nombre de nouveaux messages que lutilisateur a   
      $nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));   
      //Le nombre de nouveaux messages est stocké dans la variable $nb_new_pm   
      $nb_new_pm = $nb_new_pm['nb_new_pm'];   
    ?>   
    <center>   
    <h1>REALISER UN BREVET</h1>   
    <?php   
    
    
    
    //on n'a pas de valeur on affiche le début du formulaire   
    if((!isset($_SESSION['type_usine'], $_SESSION['nb_mat'], $_SESSION['nom_usine'], $_SESSION['nom_produit'])) && (!isset($_POST['type_usine'], $_POST['nb_mat'], $_POST['nom_usine'], $_POST['nom_produit'])))   
    {   
    ?>   
    <form name="form_brevet" method="POST" action="brevet.php">   
    Nom de votre usine : <input type="text" name="nom_usine" value="">   
    Type d'usine : <select name="type_usine" selected="ameublement">   
    <optgroup label="usine traditionnelle">    
    <option>ameublement</option>   
    <option>décoration</option>   
    <option>agroalimentaire</option>   
    <option>véhicule</option>   
    <option>aéronautique</option>   
    <option>autre...</option>   
    </optgroup>   
    <optgroup label="usine militaire">   
    <option>véhicule</option>   
    <option>aéronautique</option>   
    <option>munition</option>   
    <option>arme</option>   
    <option>autre...</option>   
    </optgroup>   
    </select><br /><br />   
    Nombre de matière première :   
    1<input type="radio" name="nb_mat" value="1" >   
    2<input type="radio" name="nb_mat" value="2">   
    3<input type="radio" name="nb_mat" value="3">   
    <br /><br />   
    Nom du produit à fabriquer : <input type="text" name="nom_produit" value="">   
    <br /><br />   
    <input type="submit" value="suivant1">   
    </form>   
    
    
    
    <?php   
    //si valeur on affiche la deuxième partie du formulaire   
    }   
    if (isset($_POST['type_usine'] , $_POST['nb_mat'] , $_POST['nom_usine'] , $_POST['nom_produit']))    
      {   
    $_SESSION['nom_usine']=$_POST['nom_usine'];     
    $_SESSION['type_usine']=$_POST['type_usine'];   
    $_SESSION['nb_mat']=$_POST['nb_mat'];   
    $_SESSION['nom_produit']=$_POST['nom_produit'];    
    
    echo 'Nom de votre usine: '.$_SESSION['nom_usine'].'<br />';   
    echo 'Type d\'usine: '.$_SESSION['type_usine'].'<br />';   
    echo 'Nombre de matière première: '.$_SESSION['nb_mat'].'<br />';   
    echo 'Nom du produit à fabriquer: '.$_SESSION['nom_produit'].'<br />'.'<br />';   
    ?>   
      <form name="form_matiere" method="POST" action="brevet.php">   
     <?php    
      $i=1;   
      while ($i<=$_SESSION['nb_mat'])   
      {   
      echo "Nom de la ".$i."ème matière première".'<input type="text" name="mat_pre'.$i.'" value="">'.'<br />';   
      echo "Url de la ".$i."ème matière première".'<input type="text" name="img_mat_pre'.$i.'" value="">'.'<br />';   
      echo '<br />';   
      $i++;   
      }   
      echo '<input type="submit" value="suivant2"></form>';   
      }   
         
    ?>   
    </center>   
    <a href="brevet.php">Brevet</a><br />   
    <a href="users.php">Classement</a><br />   
    <a href="option.php">Option</a><br />   
    <a href="list_pm.php">Messages(<?php echo $nb_new_pm; ?> non-lus)</a><br />   
    <a href="index.php">Se déconnecter</a>   
    <?php   
    
    unset ($_SESSION['type_usine']);   
    unset ($_SESSION['nom_usine']);   
    unset ($_SESSION['nb_mat']);   
    unset ($_SESSION['nom_produit']);   
    
    }   
    else   
    {   
    //si pas connecté on le renvoie page connection et inscription   
    header('location:index.php');   
    
    }   
    ?>   
      </div>   
         
     </body>   
    </html>   
    
    


    Moi je plante et toi tu creuses !!!
    0
    1. dwieser Messages postés 235 Statut Membre 9
       
      peut être que ceci est mal ecrit

      if (isset($_POST['type_usine'] , $_POST['nb_mat'] , $_POST['nom_usine'] , $_POST['nom_produit']))

      si valeur existe ds type usine et nb mat et nom usine et nom produit
      executer instruction
      0
  3. dwieser Messages postés 235 Statut Membre 9
     
    bonjour,

    je viens de vous mettre mon formulaire
    que j'ai simplifié en autant le superflux
    j'ai refait des tests avec mon bouton radio

    si je ne mets rien ds mon champ "text" et je mets 1 pour radio
    la deuxieme partie de mon formulaire s'affiche .....????????

    Pourtant j'ai bien
    elseif ((isset($_POST['nom_usine'])) && (isset($_POST['nb_mat'])))

    sur ma deuxieme partie
    je pense que du moment ou je n'ai pas rentré mes deux valeurs
    ça ne devrai pas s'afficher

    MERCI DE VOS EXPLICATIONS

    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
    <html xmlns="http://www.w3.org/1999/xhtml">   
        <head>   
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
           
            <title>Brevet</title>   
        </head>   
        <body>   
      
    <?php 
      $t=3;  
    //si l'utilisateur est connecté  
    if($t=3)   
    {   
     
    ?>   
    <center>   
    <h1>REALISER UN BREVET</h1>   
    <?php
    
    
    //on n'a pas de valeur on affiche le début du formulaire   
    if((!isset($_POST['nom_usine'])) && (!isset($_POST['nb_mat'])))
    {
    ?>   
    <form name="form_brevet" method="POST" action="index.php">   
    Nom du produit à fabriquer : <input type="text" name="nom_usine" value=""> 
        Nombre de matière première :   
    1<input type="radio" name="nb_mat" value="1" >   
    2<input type="radio" name="nb_mat" value="2">   
    3<input type="radio" name="nb_mat" value="3">  
    <input type="submit" value="suivant1">   
    </form>   
    <?php   
    
    
    //si valeur on affiche la deuxième partie du formulaire   
    }   
    elseif ((isset($_POST['nom_usine'])) && (isset($_POST['nb_mat'])))    
      { 
    $_SESSION['nom_usine']=$_POST['nom_usine']; 
    $_SESSION['nb_mat']=$_POST['nb_mat'];
      
      echo '<form name="form_matiere" method="POST" action="index.php">';  
    echo 'Nom de votre usine: '.$_SESSION['nom_usine'].'<br />'; 
      echo 'Nombre de matiere: '.$_SESSION['nb_mat'].'<br />'; 
    
    echo '<input type="submit" value="suivant2"></form>';   
     
       unset ($_SESSION['nom_usine']);
      unset ($_SESSION['nb_mat']);
      }   
       else
    {
    echo "une erreur blablabla";
    }   
    ?>   
    <?php  
    
    }   
    else   
    {   
    //si pas connecté on le renvoie page connection et inscription   
    //header('location:index.php');   
    
    }   
    ?>      
     </body>   
    </html>   
    
    

    0