Form qui appelle la page où il se trouve

cs_Krasha Messages postés 36 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 29 mars 2010 - 29 mars 2010 à 01:20
cs_Krasha Messages postés 36 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 29 mars 2010 - 29 mars 2010 à 04:08
Bonjour à tous,

Je suis en train d'essayer d'installer un petit sondage sur mon site et sur la page de création des sondages j'ai une erreur : Notice: Undefined variable: action in C:\wamp\www\test-sondage\poll\creer.php on line 8
Avec mes maigres connaissances en php je comprend qu'il manque la définition de la variable $action, mais d'un autre coté je ne comprends pas trop le fonctionnement de cette page. Je crois que le 'create' fait référence au <form method="POST" action="creer.php?action=create"> mais ce qui me parait bizarre c'est que la page s'appelle elle-même!?!

J'ai chopé ce code à cette adresse

Si quelqu'un voit ce qui ne va pas, je l'écoute avec attention :ange:

la page en question (creer.php)
<html>
<head>
<title>Créer un sondage</title>
</head>

<?php
if($action == 'create')
{
include("parametres.php");
$connexion = mysql_connect("$url_db" , "$login" , "$password");
$sql = "INSERT INTO sondage VALUES('', '$question', '$reponse1', '$reponse2', '$reponse3', '$reponse4')";
$result = mysql_db_query("$table",$sql,$connexion);
echo("Sondage créé !");
}
else
{
echo("<form method="POST" action="creer.php?action=create">\n");
echo("Question : 
\n");
echo("Réponse 1 : 
\n");
echo("Réponse 2 : 
\n");
echo("Réponse 3 (si nécessaire) : 
\n");
echo("Réponse 4 (si nécessaire) : 
\n");
echo("
\n");
echo("</form>\n");
}
?>

</html>


ps: j'ai fait quelques modifications sur le code d'origine mais le résultat est identique (problème antérieur aux modifications).

2 réponses

JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
29 mars 2010 à 03:06
Essaie en remplaçant $action par $_GET['action'], on dirait que ton code date de l'époque ou register_globals était activée par défaut... Tu risques d'avoir le même genre de soucis avec les variables qui sont déclarées dans ton formulaire, qui elles sont accessibles à travers la globale $_POST.
0
cs_Krasha Messages postés 36 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 29 mars 2010
29 mars 2010 à 04:08
Salut et merci !

J'ai modifié le code comme tu me le conseilles mais je me retrouve avec une erreur : Notice: Undefined index: action in C:\wamp\www\test-sondage\poll\creer.php on line 8

Pourtant ton explication me parait assez logique, il doit y avoir un petit détail qui m'échappe. Apparemment c'est l'index cette fois qui pose problème.

<html>
<head>
<title>Créer un sondage</title>
</head>

<?php
if($_GET['action'] == 'create')
{
include("parametres.php");
$connexion = mysql_connect("$url_db" , "$login" , "$password");
$sql = "INSERT INTO sondage VALUES('', '".$_POST['question']."', '".$_POST['question1']."', '".$_POST['question2']."', '".$_POST['question3']."', '".$_POST['question4']."')";
$result = mysql_db_query("$table",$sql,$connexion);
echo("Sondage créé !");
}
else
{
echo("<form method="POST" action="creer.php?action=create">\n");
echo("Question : 
\n");
echo("Réponse 1 : 
\n");
echo("Réponse 2 : 
\n");
echo("Réponse 3 (si nécessaire) : 
\n");
echo("Réponse 4 (si nécessaire) : 
\n");
echo("
\n");
echo("</form>\n");
}
?>

</html>
0
Rejoignez-nous