Bonjour,
J’ai besoin d’aide pour créer un questionnaire en PHP/XML. Le but serait d’enregistrer les réponses dans un fichier excel. Le fichier excel est atteignable grâce à une partie admin avec un mot de passe.
J’arrive à afficher l’interface graphique (entête de page), le champ pour le mot de passe de l’admin (et ça, ça fonctionne) ainsi que le bouton enregistrer. Mais le questionnaire ne s’affiche pas. J’ai un programme Php dans lequel je fais appel à mon fichier XML contenant les questions et les réponses.
On m’affiche une erreur : Notice: Undefined index: action in C:\wamp\www\questionnaire 0402\index.php on line 55.

La ligne en question c'est la ligne $action = $_POST['action'];

Voici les codes php et xml en question :

XML:
Code xml : 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
<?xml version="1.0" encoding="UTF-8"?>
<quest>
<subject>QUESTIONNAIRE POUR L'ETUDE D'IMPACTS</subject>
 
<item type="checkbox" name="q1" display="line">1. Pour  vous, quelle sont les 2 principales sources de questionnement quant à la future organisation ?
    <subitem val="q1|1">Aménagement des locaux et collectif de travail</subitem>
    <subitem val="q1|2">Temps de trajet domicile/travail</subitem>
    <subitem val="q1|3">Incertitude quant à ma future fonction</subitem>
    <subitem val="q1|4">Période de montée en charge</subitem>
    <subitem val="q1|5">Missions et activités dans la nouvelle organisation</subitem>
</item>  
 
<b>Aménagement des locaux et collectif de travail</b>
 
<item type="checkbox" name="q2" display="line">2. Selon vous, quels sont les 2 principaux points sur lesquels il faut travailler dans le cadre de l’aménagement des futurs locaux :
    <subitem val="q2|1">Luminosité</subitem>
    <subitem val="q2|2">Ambiance sonore</subitem>
    <subitem val="q2|3">Ambiance thermique</subitem>
    <subitem val="q2|4">Confidentialité des espaces de travail</subitem>
    <subitem val="q2|5">Open-space</subitem>
    <subitem val="q2|6">Autre : <input type="text" /></subitem>
</item>  
 
<item type="checkbox" name="q3" display="line">3. Selon vous, l’organisation de la convivialité doit passer par :
    <subitem val="q3|1">Un espace de convivialité</subitem>
    <subitem val="q3|2">Un espace détente</subitem>
    <subitem val="q3|3">Un espace d’information</subitem>
    <subitem val="q3|4">L’organisation d’évènements collectifs</subitem>
    <subitem val="q3|5">Autre : <input type="text" /></subitem>
</item>
 
<item type="radio" name="q4" display="line">4. L’installation dans les locaux va modifier votre temps de trajet domicile / travail dans quelle proportion :
    <subitem val="q4|1">Aucun changement</subitem>
    <subitem val="q4|2">Réduction du temps de trajet</subitem>
    <subitem val="q4|3">Allongement inférieur à 20 minutes par jour</subitem>
    <subitem val="q4|4">Allongement supérieur à 20 minutes par jour</subitem>
</item>
 
/*... ....14 questions au total*/
</quest>

PHP:
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
****<head><!-- definition du titre de la page --><!-- ici la rurbique 1 est la rubrique techique --><title>DC</title>
****<link rel="stylesheet" href="css/style.css" type="text/css" /><!--link href="css/nicetitle.css" rel="stylesheet" type="text/css" /-->
****<link rel="bookmark" href="#contenu" title="Aller au contenu">
****<link rel="bookmark" href="#menu" title="Aller au menu">
****<img src="css/images/bibi.png">
****</head>
****<script language="JavaScript">
********function verif(){
**********if (document.layers){
************formulaire = document.forms.quest;
************}
**********else{
************formulaire = document.quest;
************}
********}
****</script>
*
********<body>
************<div id="page2">*
****************<form name='Admin' method='post' action='<?php echo($_SERVER['PHP_SELF']) ?>'>
********************<input type="text" name="mpa" /><input type='submit' name='Admin' value='Admin'/>
****************</form>**
*
********************<h1>Questionnaire pour l'étude d'impacts<span style="margin-left:300px;"><img src="./img/logodrrc.png" alt="quest" title="quest"/></span></h1></br></br>
*********************
********************<?php
********************if (isset($_POST["Admin"])){
************************if ($_POST["mpa"]== "IMPACT2014"){
****************************echo '<p style="float: left;"><a href="./"><img src="./img/homee.png" alt="retour menu" title="Retourner au menu"/> Retour au menu</a><br><br>';
************************?>**
****************************<center>
****************************<table>******
********************************<tr>
************************************<td>
****************************************<b>Voir et &eacute;diter les statistiques</b></td><td><a href="./interpretation_enqeta.php"><img src="./img/valider.png" alt="Voir et Editer" title="Voir et Editer"/></a>
************************************</td>
********************************</tr>
****************************</table>
****************************</center>
************************<?php***
************************}
************************else{
****************************echo "Vous n'avez pas le bon mot de passe ....";
****************************echo '<p style="float: left;"><a href="./"><img src="./img/homee.png" alt="retour menu" title="Retourner au menu"/> Retour au menu</a><br><br>';
************************}
************************echo "<img src='css/images/bibi2.png'>";
********************}
*************************
********************else{** ?>
*********
********<?php********
*********
********$action =* $_POST['action'];
********$fp = @fopen("results/Quest.csv", "r"); // ouvrir le fichier qui se situe a la racine (avec tes fichiers sources, sinon tu mets l'arboresence)
********set_time_limit(1000); // temps dexecution du script le plus longtemps possible ,si cette instruction n'y est pas le temps d'execution d'un script est de 30 secondes par defaut cela pose un probleme lorsque l'on doit traiter de gros fichiers comme c'est mon cas ici
*********
********if($fp){
************$i=0;
************while (!feof($fp)) // tant que ce n'est pas la fin du fichier boucler**
************{**
****************$ligne = @fgets($fp, 1024);
****************$split=split(";",$ligne);
*****************
****************$Forma[$i]=$split[0];
****************$DASS[$i]=$split[1];
****************$nbtest++;
****************$i++;
************}
************fclose($fp);
********}
*
********if($action == "Enr"){
*************
************$xml = simplexml_load_file("data/Quest.xml") or die ("impossible d'ouvrir le fichier");
************$nbrequest =* count($xml->item);
*
************for($i=0;$i<$nbrequest;$i++){
*****************
****************$subitems=count($xml->item[$i]->subitem);
****************if(isset($_POST["aff1"]) && utf8_decode($xml->item[$i]->attributes()->name) == "q1"){*****
********************do{
************************$formula.= ";";
************************$i++;
************************$subitems=count($xml->item[$i]->subitem);
********************}
********************while (utf8_decode($xml->item[$i]->attributes()->name) != "q15");
****************}
*****************
****************if($xml->item[$i]->attributes()->type == "checkbox"){
********************$formula.= getval($xml->item[$i]->attributes()->name).";";
****************}
*****************
****************if($xml->item[$i]->attributes()->type == "radio"){
********************$formula.= getval($xml->item[$i]->attributes()->name).";";
****************}
*****************
****************if($xml->item[$i]->attributes()->type == "textarea"){
********************$zonet = urldecode(str_replace("%0D%0A","| ",getval($xml->item[$i]->attributes()->name)));
********************$formula.= $zonet.";";
****************}
************}
************$formula .="\n";
************$filename2 = "results/Quest.csv";
************$fd2 = fopen($filename2,"a");
************fwrite($fd2, $formula);
************fclose($fd2);
************header('Location: fin.php');
************exit();*
********}
********$xml = simplexml_load_file("data/Quest.xml") or die ("impossible d'ouvrir le fichier");
********$sujet = utf8_decode($xml->subject);
*
********$formula =* "<form name='quest' method='post' onsubmit='return verif();' action='".$_SERVER['PHP_SELF']."'><table width='100%' align='center'>";
********$nbrequest =* count($xml->item);
********for($i=0;$i<$nbrequest;$i++){
************$subitems=count($xml->item[$i]->subitem);
********}
*********
********$formula.= "<center><input type='hidden' name='action' value='Enr'><input type='submit' value='Enregistrer'><button type='submit' onClick='clickMonBouton();'><img src='css/images/enre.png'></button></td></tr></table></form><center>";
********?>
************<div id="home">
****************<table width="90%" align="center"><tr>
****************<td colspan="2" bgcolor="#666699" align="center">
****************<div id="okcourrier"><font color="#FFFFFF"><b><?php echo $sujet?></b></font></div></td></tr></table>
****************<?php echo $formula?>
************</div>
************<?php
****************}
************?>
********</div>
****</body>
</html>******
Merci d'avance