IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problèmes d'index non défini


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Points : 60
    Points
    60
    Par défaut Problèmes d'index non défini
    Au secours...

    J'ai une saisie de critères par un formulaire POST qui me rends
    $_POST['NOM']
    $_POST['DISPONIBILITE']
    $_POST['FAMILLE']
    Ce formulaire appelle une page affiche_critères1.php
    Dont le rôle est de traiter les options, envoyer la requête et faire afficher les données.
    Je voudrais les faire afficher page par page. Le premier affichage avec la limite ici de 4 fonctionne. Aussitôt que je clique sur le lien suivant j'ai la catastrophe
    Notice: Undefined index: NOM in C:\Program Files\EasyPHP 2.0b1
    Notice: Undefined index: DISPONIBLE in C:\Program Files\EasyPHP 2.0b1
    Notice: Undefined index: FAMILLE in C:\Program Files\EasyPHP 2.0b1

    Je précise que la CASSE est bonne que le var_dump($_POST) me rend les bonnes valeur. J'ai hésité à vous envoyer le code car il est long et je veux pas abuser. Donc j'ai enlevé tous les cas sauf 1. Voilà le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    </head>
    </body>
    <script type="text/javascript"> 
    <!-- 
    function FenetreImage(image, commentaire, commentaire2)
    { 
     oFenetre = window.open('','Image','width=600,height=600,toolbar=no,scrollbars=no,resizable=no');
     oFenetre.document.write("<html><head><title>"+commentaire+"</title></head>"); 
     oFenetre.document.write("<script type=\"text/javascript\">function AjusteFenetre() { if (document.images[0].complete) { window.resizeTo(document.images[0].width+2,document.images[0].height+100); window.focus();} else { setTimeout('AjusteFenetre()',1000) } }</"+"script>");
     oFenetre.document.write("<body onload='AjusteFenetre()' onblur='window.close()' onclick='window.close()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0>"); 
     oFenetre.document.write("<table width='100%' border='0' cellspacing='0' cellpadding='0' height='100%'><tr><td valign='middle' align='center'>"); 
     oFenetre.document.write("<img src='"+image+"' border='0' alt='"+commentaire2+"' title='"+commentaire2+"'>");
     oFenetre.document.write("</td></tr></table></body></html>"); 
     oFenetre.document.close(); 
     } 
    //--> 
    </script>
    <?php
    include("connect.inc");
    if (($_POST['NOM'] == "")AND ($_POST['DISPONIBLE']==""))
       {
        $page = isset($_GET['page']) ? $_GET['page'] : '';  
        // Prepare le requete MySql 
        $req = "SELECT * from coleopteres WHERE (FAMILLE    ='".$_POST['FAMILLE']."')"; 
        $res = mysqli_query($connection, $req) or die ("La requête à échouée");
        // Variable nombre d'enreg par page 
        $limit=4; 
        if(!isset($debut)) $debut=0; 
        $debut=$page*$limit; 
        // Compte le nombre de champ 
        $nb_total=mysqli_num_rows($res); 
        // Requete 
    		$limite=mysqli_query($connection,"$req limit $debut,$limit");
    		$_POST['NOM']="Non renseigné";
    		$_POST['DISPONIBLE']="Non renseignée";
     
    		// Affiche le page par page avec ses liens 
        if ($page>0)
    		{ 
        $precedent=$page-1; 
        echo "<a href=\"". $_SERVER['PHP_SELF'] . "?page=$precedent\">PRECEDENT</a>"; 
        } 
        $i=0; 
        $j=1; 
        if($nb_total>$limit) 
    		{ 
        while($i<($nb_total/$limit))
    		{ 
        if($i!=$page){echo "<a href=\"". $_SERVER['PHP_SELF'] . "?page=$i\>$j</a> ";}
        else { echo "<b>$j</b>";} 
        $i++;$j++; 
        } 
        } 
        if($debut+$limit<$nb_total)
    		{ 
        $suivant=$page+1;
    		echo "<a href=\"". $_SERVER['PHP_SELF'] . "?page=$suivant\">SUIVANT</a>";
        } 
        //Affichage le contenu de votre table 
        //avec une limite, dans l'exemple $limit est à 4 
        $limit_str = "LIMIT ". $page * $limit .",$limit"; 
        $result = mysqli_query($connection, "SELECT * from coleopteres WHERE (FAMILLE    ='".$_POST['FAMILLE']."') $limit_str"); 
    	 }
    echo "<font color=#CC3300><big><b><i>Rappel de vos critères :&nbsp;&nbsp;&nbsp;
                                         $nb_total insectes rendus.</i></b></big></font><br>";
    $rappelcritère['Le nom contient &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:'] = $_POST['NOM'];
    $rappelcritère['La disponibilité est&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '] = $_POST['DISPONIBLE'];
    $rappelcritère['La famille choisie &nbsp;&nbsp;&nbsp;&nbsp;: '] = $_POST['FAMILLE'];
    echo "<table border=0 cellpadding=3 cellspacing=3>";
    foreach($rappelcritère as $critère => $valeur)
           {
    			  echo"<tr><td><font color=#3300ff>$critère</font></td><td><font color=#009999>$valeur</font></td></tr>";
    			 } 
    echo "</table>";"<br>";"<br>";
    echo "<table width='100%' border='1' bordercolor=#FFCC66 bgcolor=#FFFFCC cellpadding='4' cellspacing='0'>";
    echo "<br>";"<br>";	
    echo "<tr> <td colspan='7'></td></tr> 
          <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Référence</strong></font></div></td>
          <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Nom</strong></font></div></td>
          <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Famille</strong></font></div></td>
          <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Origine</strong></font></div></td>
          <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Prix</strong></font></div></td>
          <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Dispo</strong></font></div></td>
          <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Image</strong></font></div></td>			
          </tr>";
    while($ligne = mysqli_fetch_assoc($result))
         {
          extract($ligne);
          echo '<tr onmouseover="this.style.background=\'#F0FFF0\';" onmouseout="this.style.background=\'#FFFFCC\';">';
     			echo '<td><div align="left"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$REFERENCE.'</strong></font></div></td>';
          echo '<td><div align="left"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$NOM.'</strong></font></div></td>';
          echo '<td><div align="left"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$FAMILLE.'</strong></font></div></td>';
          echo '<td><div align="left"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$ORIGINE.'</strong></font></div></td>';
          echo '<td><div align="right"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$PRIX.' €</strong></font></div></td>';
          echo '<td><div align="center"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$DISPONIBLE.'</strong></font></div></td>';
          echo '<td><div align="center"><a href=javascript:FenetreImage("../img_cetoine/'.$ligne['IMAGE'].'","'.$REFERENCE.'","Origine:'.$ORIGINE.'")>
               <img src="../img_cetoine/'.$ligne['IMAGEV'].'" border="0" class="image" align="middle" alt="Cliquez pour Agrandir"></a></td>';
          echo   '</tr>'; 
         }
    echo '</table>';
    ?>
    </body>
    </html>
    Merci à celles ou ceux qui pourront m'aider.

  2. #2
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    Que donne:


  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Points : 60
    Points
    60
    Par défaut
    Bonjour,
    le var_dump($_POST); me rends

    array(3) { ["NOM"]=> string(13) "Non renseigné" ["DISPONIBLE"]=> string(14) "Non renseignée" ["FAMILLE"]=> string(12) "Cerambycidae" }

    ce qui est vrai.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Points : 60
    Points
    60
    Par défaut
    Bonjour

    Personne ne peut vraiement m'aider?
    J'ai essayé les sessions, le passage des variables directement dans l'URL je suis à cours d'idées....

  5. #5
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    ca veut dire que le POST ne reçoit pas des données de ton formulaire fais nous voir le code de ton formulaire , ainsi que les différents champs.....

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    session_start();
     
    if (isset($_POST['NOM'], $_POST['DISPONIBILITE'], $_POST['FAMILLE']) && !empty($_POST['NOM']) && !empty($_POST['DISPONIBILITE']) && !empty($_POST['FAMILLE'])) {
        if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
            function stripslashes_array($array) {
                return is_array($array) ? array_map('stripslashes_array', $array) : stripslashes($array);
            }
     
            $_POST = stripslashes_array($_POST);
        }
     
        $disponibilite = $_SESSION['disponibilite'] = $_POST['DISPONIBILITE'];
        $nom = $_SESSION['nom'] = $_POST['NOM'];
        $famille = $_SESSION['famille'] = $_POST['FAMILLE'];
    } else if (isset($_SESSION['NOM'], $_SESSION['DISPONIBILITE'], $_SESSION['FAMILLE'])) {
        $disponibilite = $_SESSION['disponibilite'];
        $nom = $_SESSION['nom'];
        $famille = $_SESSION['famille'];
    }
     
    if (!isset($disponibilite, $nom, $famille)) {
        // Afficher le formulaire
    } else {
        // Faire votre requête
    }


    Notez qu'une requête SELECT * FROM table [...] peut être optimisée par l'usage de la fonction d'aggrégation COUNT (SELECT COUNT(*) FROM table [...]) si le but est simplement d'obtenir le nombre de résultats.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Points : 60
    Points
    60
    Par défaut
    Un grand merci à JulP avec qui j'ai appris beaucoup de chose.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Probléme bloc with non défini
    Par maclolo2 dans le forum IHM
    Réponses: 1
    Dernier message: 07/04/2012, 11h43
  2. [SQL] Problème de variable non définies
    Par micka39 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 01/05/2007, 23h10
  3. un index à la fois défini et non-défini
    Par Biosox dans le forum Langage
    Réponses: 4
    Dernier message: 03/04/2007, 16h00
  4. [PHP-JS] Index non défini
    Par philippef dans le forum Langage
    Réponses: 1
    Dernier message: 15/05/2006, 13h40
  5. Problème de variable non définie
    Par Mimi Bulles dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2006, 09h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo