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
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
A voir également:
- Probleme en php
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Fichier php en pdf ✓ - Forum PDF
- Php if plusieurs conditions ✓ - Forum PHP
- -> En php - Forum PHP
15 réponses
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
}
<?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
}
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
13 déc. 2009 à 16:47
Comme son nom l'indique:
Tu as une variable non défini à la ligne 479 dans le fichier AdminSiteSondage.php.
Peux tu mettre ici la ligne en question ?
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 ?
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")
if ($_POST['Envoie'] == "OK")
if ($_POST['Envoie'] == "OK")
Cela doit etre un probleme de majuscule a mon avis
$_POST['envoie'] <-- il ne faut pas utiliser de majuscule
Cela doit etre un probleme de majuscule a mon avis
$_POST['envoie'] <-- il ne faut pas utiliser de majuscule
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
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.
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.
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
13 déc. 2009 à 17:12
Essai sinon:
if(isset($_POST['Envoie']) && ($_POST['Envoie'] == 'OK'))
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
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é.
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é.
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.
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.
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
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.
Essaye de faire comme je t'ai dit au dessus tu verra ou exactement ton code plante et tu pourra corriger ensuite.
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
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>
<input type="hidden" name="Envoie" id="Envoie" value="OK" />
avant la fin de ta <form>
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
d'ou peut bien venir le probléme je me demande pourquoi cette variable n'est pas définie
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
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.
<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.
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
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.
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.
Oui l'erreur venait du fait que je n'avais pas défini la variable avant l'envoi
Merci pour les reponses
Flareski.
Merci pour les reponses
Flareski.
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
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.
Mais résolu en au de la page.