Page arrête de s'afficher lors d'un appel

Résolu/Fermé
Jodu Messages postés 89 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 3 février 2010 - 28 mai 2009 à 09:41
Jodu Messages postés 89 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 3 février 2010 - 28 mai 2009 à 17:04
Bonjour à tous,

voilà, je suis confronté à un certain problème que je vais détailler le plus simplement possible.
Mes clients ont un affichage issu d'une base de données, de leur commande détaillée. De là, ils peuvent cocher, sur chacune de leur ligne de commande, si leur produit a un défaut. Ils peuvent aussi en saisir la quantité de défectueuse, si ils ont commandé plusieurs produits (par exemple, pour 5 produits commandés, 2 sont défectueux).

Une fois ceci fait, le client soumet le formulaire, et celui-ci est traité.

Voici le code :

 
 
<?php
if (isset($_POST['verif_num_commande']) and isset($_POST['param_hidden']))
   {
      $i = $_POST['param_hidden'];
      $j = 1;
      $numcommande = $_POST['verif_num_commande'];
      while ($j <= $i)
         {
            $quantite = $_POST['quantite'.$j];
            $quantite_real = $_POST['quantite_real'.$j];
    
             if ($quantite != NULL)
                {   
                   $quantite_verification = "ok" ;
                   if (!isset($_POST['a'.$j]) and !isset($_POST['b'.$j]) and !isset($_POST['c'.$j]))
                      {
                           echo "<a href='".FILENAME_ACCOUNT_CLAIM."?order_id=$numcommande'>Erreur, vous devez indiquer si votre article est cassé, défectueux, ou manquant.</a><br />";
                           $error = "error";
                       }
                                  
                       if ($quantite > $quantite_real or isnumeric($quantite)==FALSE )
                          {
                              echo "<a href='".FILENAME_ACCOUNT_CLAIM."?order_id=$numcommande'>Erreur, la quantité réclamée est supérieure à la quantité commandée, veuillez réessayer</a><br />";
                               $error = "error";
                            }   
                   }
                              
                        $j = $j+1 ;
           }
           if ($quantite_verification!="ok")
              {
                    echo "<a href='".FILENAME_ACCOUNT_CLAIM."?order_id=$numcommande'>Erreur, vous n'avez pas saisi la quantité à réclamer.</a><br />";
                    $error = "error";
                }
                if ($error!="error" and $quantite_verification=="ok")
                   {
                      echo "lulu";
                      $solution = $_POST['solution'];
                         
                    }
   }
                      ?>



Les $_POST[a] [b] et [c] correspondent à des checkbox, chacune donnant le défaut du produit (cassé, manquant ou défectueux)

Mon problème est donc ici, le code a l'air de bien marcher en lui, mais non.
En effet, j'ai testé pour les différentes erreurs verifiées par les "if", et j'obtiens des résultats prodigieux.
Pour toutes les erreurs, sauf celle qui vérifie si les "a" "b" "c" n'existent pas, la page s'affiche correctement.

Quand il n'y a aucune erreur, ou quand l'autre erreur que je vous ai citée intervient, la page se charge mais s'arrete en plein de milieu du si, c'est a dire qu'on dirait que php refuse de bosser et qu'il donne la page telle qu'elle.
En gros, lorsque je n'ai pas d'erreur, je devrais avoir "lulu" qui s'affiche mais malheureusement non, et meme le pied de page ne vient pas terminer la page web (fin de la balise html et tout le reste)

Après quelques tests, j'ai remarqué que le soucis venait d'un des if que je faisais.
J'ai mis en commentaire les lignes 15 à 25 (c'est a dire : )
if (!isset($_POST['a'.$j]) and !isset($_POST['b'.$j]) and !isset($_POST['c'.$j]))
                      {
                           echo "<a href='".FILENAME_ACCOUNT_CLAIM."?order_id=$numcommande'>Erreur, vous devez indiquer si votre article est cassé, défectueux, ou manquant.</a><br />";
                           $error = "error";
                       }
                                  
                       if ($quantite > $quantite_real or isnumeric($quantite)==FALSE )
                          {
                              echo "<a href='".FILENAME_ACCOUNT_CLAIM."?order_id=$numcommande'>Erreur, la quantité réclamée est supérieure à la quantité commandée, veuillez réessayer</a><br />";
                               $error = "error";
                            }


et là, le code fonctionne bien et la page s'affiche totalement. Malheureusement, le contrôle des erreurs ne se fait pas.

Avez vous une idée ?

Merci
A voir également:

1 réponse

Jodu Messages postés 89 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 3 février 2010 14
28 mai 2009 à 17:04
Erreur de débutant :
is_numeric et pas isnumeric (trop de VB ça =D )

Merci quand même, a bientôt
0