Probleme en php

Résolu/Fermé
Profil bloqué - 13 déc. 2009 à 16:40
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 - 13 déc. 2009 à 17:40
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
A voir également:

15 réponses

Profil bloqué
13 déc. 2009 à 16:46
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
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
13 déc. 2009 à 16:47
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
Profil bloqué
13 déc. 2009 à 16:57
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
Profil bloqué
13 déc. 2009 à 17:01
if ($_POST['Envoie'] == "OK")

Cela doit etre un probleme de majuscule a mon avis

$_POST['envoie'] <-- il ne faut pas utiliser de majuscule
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
13 déc. 2009 à 17:01
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
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
13 déc. 2009 à 17:12
Essai sinon:
if(isset($_POST['Envoie']) && ($_POST['Envoie'] == 'OK'))
0
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
13 déc. 2009 à 17:17
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
Profil bloqué
13 déc. 2009 à 17:22
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
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
13 déc. 2009 à 17:25
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
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
13 déc. 2009 à 17:28
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
Profil bloqué
13 déc. 2009 à 17:31
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
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
13 déc. 2009 à 17:33
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
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
13 déc. 2009 à 17:35
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
Profil bloqué
13 déc. 2009 à 17:37
Oui l'erreur venait du fait que je n'avais pas défini la variable avant l'envoi
Merci pour les reponses

Flareski.
0
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
13 déc. 2009 à 17:40
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