Probleme en php

Résolu
Profil bloqué -  
vladivostok Messages postés 239 Statut Membre -
Bonjour,

Je n'arriva pas à comprendre pourquoi j'ai l'erreur suivante :

Notice: Undefined index: Envoie in C:\wamp\www\TPC\Php\AdminSiteSondage.php on line 479

Mon code est le suivant :

if ($test == $NouveauSondageSuite)
{

$Titre1 = $_POST['Titre'];

if ($_POST['Envoie'] == "OK")
{
$ValeurAvant = $_POST['Nb_choix'];
$Ajout = $_POST['NCategorie'];
$Valeur = $Valeur + $Ajout;
}
else
{
$Valeur = $_POST['Nb_choix'];
}

echo"

<div class='NouveauSondage'>
<form method='post' action='AdminSiteSondage.php?Page=Nouveau&Autre=fin' name='F1'>
<div class='TitreNouveau2'> </div>
<div class='SelectChoix'>Titres catégories :</div>
<table class='TableNouveauSondage4'>";
for ($i = 0; $i < $Valeur; $i++)
{
$numero = $i + 1;
echo"<tr>
<td class='LigneTableau'>Titre $numero :</td>
<td class='LigneTableau'><input type='text' name='Choix[]' value='' size='24'></td>
</tr>";
}
echo"</table></form>";
?>

<form method="POST" action='AdminSiteSondage.php?Page=Nouveau&Suite=etape2'>
<div class="AjoutNouveau">Nouvelles catégorie :
<select name='NCategorie' value=''>
<option value=''>Nombre</option>
<option value='1'>1</option><option value='2'>2</option><option value='3'>3</option>
<option value='4'>4</option><option value='5'>5</option><option value='6'>6</option>
</select> 
<input type="submit" name="Envoie" value="OK" />
</div>

}

Je suis desolé si le code n'est pas trés lisible.
Si quelqu'un a une idée du probleme

Merci d'avance.
Flareski
Configuration: Windows Vista Internet Explorer 7.0

15 réponses

  1. Profil bloqué
     
    Bonjour, essaye ceci :

    <?php

    if ($test == $NouveauSondageSuite)
    {

    $Titre1 = $_POST['Titre'];

    if ($_POST['Envoie'] == "OK")
    {
    $ValeurAvant = $_POST['Nb_choix'];
    $Ajout = $_POST['NCategorie'];
    $Valeur = $Valeur + $Ajout;
    }
    else
    $Valeur = $_POST['Nb_choix'];

    echo
    "

    <div class='NouveauSondage'>
    <form method='post' action='AdminSiteSondage.php?Page=Nouveau&Autre=fin' name='F1'>
    <div class='TitreNouveau2'> </div>
    <div class='SelectChoix'>Titres catégories :</div>
    <table class='TableNouveauSondage4'>";

    for ($i = 0; $i < $Valeur; $i++)
    {
    $numero = $i + 1;
    echo"<tr>
    <td class='LigneTableau'>Titre $numero :</td>
    <td class='LigneTableau'><input type='text' name='Choix[]' value='' size='24'></td>
    </tr>";
    }

    echo"</table></form>";
    ?>

    <form method="POST" action='AdminSiteSondage.php?Page=Nouveau&Suite=etape2'>
    <div class="AjoutNouveau">Nouvelles catégorie :
    <select name='NCategorie' value=''>
    <option value=''>Nombre</option>
    <option value='1'>1</option><option value='2'>2</option><option value='3'>3</option>
    <option value='4'>4</option><option
    *value='5'>5</option><option value='6'>6</option>
    </select>
    <input type="submit" name="Envoie" value="OK" />
    </div>
    <?php
    }
    0
  2. arthezius Messages postés 3756 Statut Membre 475
     
    Comme son nom l'indique:
    Notice: Undefined index: Envoie in C:\wamp\www\TPC\Php\AdminSiteSondage.php on line 479 

    Tu as une variable non défini à la ligne 479 dans le fichier AdminSiteSondage.php.

    Peux tu mettre ici la ligne en question ?
    0
  3. Profil bloqué
     
    Merci à vous pour les réponses je vais essayer la premiére proposition. Pour répondre à arthezius la ligne 479 c'est la suivante :

    if ($_POST['Envoie'] == "OK")
    0
  4. Profil bloqué
     
    if ($_POST['Envoie'] == "OK")

    Cela doit etre un probleme de majuscule a mon avis

    $_POST['envoie'] <-- il ne faut pas utiliser de majuscule
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. vladivostok Messages postés 239 Statut Membre 20
     
    Soit tu n'a pas de superglobal $_POST avec comme nom Envoie,

    Soit essaye de mettre sans majuscule je ne sais plus si la casse est prise en compte ou non, sinon fait un

    if (isset ($_POST['Envoie']))
    {
    /* Le reste du code */
    }

    avant pour que tu n'est plus ce problème.
    0
  7. arthezius Messages postés 3756 Statut Membre 475
     
    Essai sinon:
    if(isset($_POST['Envoie']) && ($_POST['Envoie'] == 'OK'))
    0
  8. vladivostok Messages postés 239 Statut Membre 20
     
    C'est vrai que l'on peut faire comme cela mais c'est plus pratique de séparer les conditions afin de déterminer et renvoyer une erreur au niveau ou elle se trouve ainsi tu ne pourra connaitre qu'un niveau d'erreur avec ta condition alors qu'avec des conditions séparées tu peut mettre des else à tout tes niveaux de conditions ainsi tu sais ou sa plante c'est plus pratique pour le débuging après c'est sur qu'en pratique c'est plus simple de faire comme tu le fait et surtout plus rapide.

    if (isset ($_POST['Envoie']))
    {
    if ($_POST['Envoie'] == 'OK')
    {
    /* le reste du code */
    }
    else
    {
    echo 'La variable n'est pas egal a OK';
    }
    }
    else
    {
    echo 'la variable n'est pas définit';
    }

    Encore un conseil n'utilise jamais des valeurs de post directement dans ton code sans passer par des vérifications comme htmlspecialchars ou addslashes et j'en oublie afin d'éviter les problèmes de sécurité.
    0
  9. Profil bloqué
     
    Malgré tous vos conseils, l'erreur persiste, sans pour autant comprendre d'ou elle vient. Est ce que cela peut venir du fait que mon url soit composée :

    AdminSiteSondage.php?Page=Nouveau&Suite=etape2

    Je ne pensse pas que cela vienne de la case j'ai toujours nomé mais variable avec une majuscule sans aucun probléme.

    Franchement je ne vois pas d'ou peut venir l'erreur.
    0
  10. vladivostok Messages postés 239 Statut Membre 20
     
    Bien sur que cela viens de la ta variable n'est pas envoyer par post on ne la trouve pas dans ton url il faudrait que quelque part on voit ?Envoie=OK

    Essaye de faire comme je t'ai dit au dessus tu verra ou exactement ton code plante et tu pourra corriger ensuite.
    0
  11. vladivostok Messages postés 239 Statut Membre 20
     
    Déjà dans ton code cela ne va pas si tu veut passer la variable Envoie par post il faudrait que tu rajoute une ligne comme :

    <input type="hidden" name="Envoie" id="Envoie" value="OK" />

    avant la fin de ta <form>
    0
  12. Profil bloqué
     
    Merci vladivostok pour le conseil j'ai testé le code et comme attendu j'ai eu le message 'la variable n'est pas définit'.
    d'ou peut bien venir le probléme je me demande pourquoi cette variable n'est pas définie
    0
  13. vladivostok Messages postés 239 Statut Membre 20
     
    En fait tu essaye de faire passer une variable par intermédiaire d'un formulaire et dans ce formulaire du bouton sur lequel tu clique donc c'est pour cela que sa ne marche pas pour que sa marche rajoute la ligne

    <input type="hidden" name="Envoie" id="Envoie" value="OK" />

    avant ton bouton c'est a dire <input type="submit" />
    et tout rentrera dans l'ordre.
    0
  14. vladivostok Messages postés 239 Statut Membre 20
     
    En fait voila ton code que j'ai modifier.
    if ($test == $NouveauSondageSuite)
    {

    $Titre1 = $_POST['Titre'];

    if (isset ($_POST['Envoie']))
    {
    if ($_POST['Envoie'] == "OK")
    {
    $ValeurAvant = $_POST['Nb_choix'];
    $Ajout = $_POST['NCategorie'];
    $Valeur = $Valeur + $Ajout;
    }
    else
    {
    $Valeur = $_POST['Nb_choix'];
    }
    }
    else
    {
    echo 'la variable n'est pas définit.'
    }

    echo"

    <div class='NouveauSondage'>
    <form method='post' action='AdminSiteSondage.php?Page=Nouveau&Autre=fin' name='F1'>
    <div class='TitreNouveau2'> </div>
    <div class='SelectChoix'>Titres catégories :</div>
    <table class='TableNouveauSondage4'>";
    for ($i = 0; $i < $Valeur; $i++)
    {
    $numero = $i + 1;
    echo"<tr>
    <td class='LigneTableau'>Titre $numero :</td>
    <td class='LigneTableau'><input type='text' name='Choix[]' value='' size='24'></td>
    </tr>";
    }
    echo"</table></form>";
    ?>

    <form method="POST" action='AdminSiteSondage.php?Page=Nouveau&Suite=etape2'>
    <div class="AjoutNouveau">Nouvelles catégorie :
    <select name='NCategorie' value=''>
    <option value=''>Nombre</option>
    <option value='1'>1</option><option value='2'>2</option><option value='3'>3</option>
    <option value='4'>4</option><option value='5'>5</option><option value='6'>6</option>
    </select>
    <input type="hidden" name="Envoie" id="Envoie" value="OK" />
    <input type="submit" />
    </div>

    }

    La sa devrai marcher.
    0
  15. Profil bloqué
     
    Oui l'erreur venait du fait que je n'avais pas défini la variable avant l'envoi
    Merci pour les reponses

    Flareski.
    0
  16. vladivostok Messages postés 239 Statut Membre 20
     
    Un conseil vérifie toujours tes variables avant de les utiliser par exemple tu ferait bien d'utiliser la fonction intval() pour vérifier que ce soit bien des chiffres qui sont envoyer par l'utilisateur.

    Mais résolu en au de la page.
    0