Perte de donnée

ines -  
 ines2007 -
Bonjour,
j'ai fait la création d'un site web en php où on a 2 types d'inscription: client et enseignant.
le problème c que je reçois parfois des inscriptions vides dans les 2 types d'inscription.
j'ai dans les formulaires d'inscription l'élément : select multiple que la plupart des pertes se fait à son niveau.
NB :je fais un contrôle javascript et un contrôle sur le serveur pour vérifier que j'ai au moins une sélection; et malgré ces 2 contrôles
la perte existe encore.
merci de m'aider.

8 réponses

  1. le père
     
    bonjour,

    ça veut dire quoi, la perte existe encore, si tu fais un contrôle sur le serveur ?
    Peux-tu montrer le script ?
    0
  2. ZOUARI Messages postés 62 Statut Contributeur 29
     
    il faut donner la source (code) pour vous aidez.
    0
  3. ines2007 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
     
    $civilite=$_POST['civilite'];
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];

    if(empty($civilite)||empty($nom)||empty($prenom)) {
    echo'veuillez vérifier la saisie de vos données';
    }
    elseif(empty($_POST["heure"]))// heure:select multiple
    {
    echo' Veuillez choisir les heures auxquelles vous désirez être appelé';
    }
    else{$req2="INSERT INTO ...//insertion dans la BD
    }
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. le père
     
    $_POST convient mieux que HTTP_POST_VARS. HTTP_POST_VARS est obsolète (voir doc PHP)
    Le INSERT INTO serait intéressant. Le contenu $_POST["heure"] aussi.
    0
  6. ines2007
     
    je ne trouve toujours pas de solution pour mon problème, j'ai encore qq inscription perdues dans le select multiple.
    0
  7. le père
     
    Bonjour

    Peux-tu montrer le script complet ? (en cachant les éventuels identifiants, bien sûr)
    0
  8. ines2007
     
    formulaire:
    <?PHP
    include("connexion.php");
    $req="SELECT num_mat,matiere FROM liste_matiere";
    $res= mysql_query($req);
    ?>
    Matières désirées:</font></b>
    <select name="matiere[]" multiple>
    <?php
    while($data=mysql_fetch_row($res)){
    echo'<option value="'.$data[0].'">'.$data[1].'</option>';
    }
    echo'
    </select>';?>
    script traitement:
    $identite=$_POST['identite'];
    $interet=$_POST['interet'];
    $civilite=$_POST['civilite'];
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $tab= array('mat'=>1);
    $j=1;
    if(empty($identite)||empty($interet)||empty($civilite)||empty($nom)||empty($prenom))
    {
    echo'euillez vérifier la saisie de vos données</font></center>';
    }
    elseif(empty($_POST["matiere"])){ // matiere: select multiple
    echo' veuillez choisir au moins une matière';
    }
    else{
    $req="INSERT INTO client(identite,interet,civilite,nom,prenom)
    VALUES('$identite','$interet','$civilite','$nom','$prenom''')";
    $result= mysql_query($req);
    if($result)
    {
    foreach($_POST["matiere"] as $value)
    {
    $tab[$j]=$value;
    $j++;
    }
    for($p=1;$p<sizeof($tab);$p++)
    {
    $req2="INSERT INTO choix_mat(numero,matiere)VALUES('$prenom','$tab[$p]')";
    $res2=mysql_query($req2);
    }
    }}
    //remarque: la perte se fait uniquement au niveau du select multiple,c à dire je ne récupère pas les matières selectionnées.
    dans le formulaire, le contenu du select multiple: matiere est chargé depuis la base de donnée.
    merci d'avance pour votre aide.
    0