eu ok ... ben la c'est le code d'une administration de bdd
l'index.php qui appelle tous les controlleurs et renvoie un echo :
ce qui peut générer un formulaire qui pose problème tel queCode:
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 <?php session_start( ) ; ini_set( 'memory_limit', '64M' ) ; define( 'BASEDIR', '/var/www/c...........e.fr' ) ; define( 'OFFICE', 'admin' ) ; define( 'DEBUG' , false ) ; # tout à false en production define( 'DEVMODE', true ) ; define( 'SWITCHSECURITY', false ) ; include BASEDIR.'/config/db.inc.php' ; # database include BASEDIR.'/config/init.inc.php' ; # class et models include BASEDIR.'/config/init.administration.php' ; # constantes et controlleurs # déclaration des variables globales global $route, $titre ; # init sécurité par page Session::securite( 'admin' ) ; $route = new Route( ) ; $menu = new Menu( 'adminMenu' ) ; $menu->setTpl( 'adminMenu.tpl' ) ; $tpl = new template( TPL_DIR ) ; $tpl->set_filenames( array( 'index' => 'structure.tpl' ) ) ; $structureVars = array( ) ; $structureVars['TITRE'] = SITENAME.' '.$titre ; $structureVars['SCRIPTS'] = Scripts::html( ) ; $structureVars['CSS'] = Css::html( ) ; # pour le menu de l'administration $menu->setItemSelected( $route->getParam( 0 ) ) ; $structureVars['MENU'] = $menu->html( false, 'adminMenu' ) ; $structureVars['CONTENT'] = $route->getContent( ) ; $tpl->assign_vars( $structureVars ) ; echo $tpl->parse( 'index' ) ; ?>
Code:
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156 <!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" xml:lang="fr" lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <!-- balises métas --> <title>... / Administration Editer le Page 3</title> <!-- CSS --> <link type="text/css" href="http://admin.c...........e.com/css/admin.css" rel="stylesheet"/> <link type="text/css" href="http://admin.c...........e.com/css/admin_page.css" rel="stylesheet"/> <link type="text/css" href="http://admin.c...........e.com/css/adminMenu.css" rel="stylesheet"/> <!-- SCRIPTS --> <script type="text/javascript" src="http://admin.c...........e.com/js/jquery.js"></script> <!-- je sais pas me servir de ça pour l'instant <script type="text/javascript" src="http://admin.c...........e.com/js/history.jquery.js"></script> --> <script type="text/javascript" src="http://admin.c...........e.com/js/j_gen.js"></script> <script type="text/javascript" src="http://admin.c...........e.com/js/j_my_over_menu.js"></script> <script type="text/javascript" src="http://admin.c...........e.com/js/j_my_click_menu.js"></script> <!-- pas besoin pour l'instant <script type="text/javascript" src="http://admin.c...........e.com/js/j_my_tab_system.js"></script> --> <script type="text/javascript" src="http://admin.c...........e.com/js/j_arbored_tab.js"></script> <script type="text/javascript" src="http://admin.c...........e.com/js/j_selectable.js"></script> <script type="text/javascript" src="http://admin.c...........e.com/js/j_highlight_checkboxs.js"></script> <script type="text/javascript" src="http://admin.c...........e.com/js/j_highlight_radios.js"></script> <script type="text/javascript" src="http://admin.c...........e.com/js/cle_de_securite.js"></script> <script type="text/javascript" src="http://admin.c...........e.com/js/tiny_mce/jquery.tinymce.js"></script> <script type="text/javascript"> //<!-- var Cle ; $( function( ){ Cle = new cleDeSecurite( "46d2b15525c8d5d65215aee719ce7231623d4de1" ) ; Cle.addCle( ) ; } ) ; //--> </script> <script type="text/javascript"> //<!-- var ABSOLUTE = "http://admin.c...........e.com" ; var HERE = "http://admin.c...........e.com/pages/3/edit" ; //--> </script> <script type="text/javascript"> //<!-- $( function( ){ $("textarea.tinyPage").tinymce({ script_url : "http://admin.c...........e.com/js/tiny_mce/tiny_mce.js", etc....... je raccourcis un peu pour le post }); } ) ; //--> </script> <script type="text/javascript"> //<!-- $( function( ){ myOverMenu( "adminMenu" ) ; } ) ; //--> </script> <script type="text/javascript" src="http://admin.c...........e.com/js/control.js"></script> </head> <body> <!-- bodyadminbodyadminbodyadminbodyadminbodyadminbodyadmin --> <div id="tank"> <!-- je vous ai skippé le menu à rallonge pour le post --> <div id="content"> <!-- file:administration/vue/pages/edit.tpl --> <div id="pages"> <h1> Edition du page id:3 - Contact </h1> <!-- file:administration/vue/pages/form.tpl --> <form method="post" action="http://admin.c...........e.com/pages/3/update"><!-- enctype="multipart/form-data"> --> <input type="hidden" name="page[id]" value="3" /> <p> Les champs marqués d'une astérisque ( * ) sont obligatoires. </p> <fieldset> <legend> Informations Page </legend> <p> <label>Titre : </label> Contact <input type="text" name="page[titre]" value="Contact" /> </p> <p> <label> Menu : </label> <select name="page[menu]" size="1"> <option value="none">Aucun</option> <option value="footermenu" selected="selected">footerMenu</option> </select> </p> <p> <label>Content : *</label> <span class="descShow"> <textarea name="page[content]" class="tinyPage"><p>Constituendi autem sunt qui sint in amicitia fines et quasi termini diligendi. De quibus tres video sententias ferri, quarum nullam probo, unam, ut eodem modo erga amicum adfecti simus, quo erga nosmet ipsos, alteram, ut nostra in amicos benevolentia illorum erga nos benevolentiae pariter aequaliterque respondeat, tertiam, ut, quanti quisque se ipse facit, tanti fiat ab amicis.</p> <p>Oportunum est, ut arbitror, explanare nunc causam, quae ad exitium praecipitem Aginatium inpulit iam inde a priscis maioribus nobilem, ut locuta est pertinacior fama. nec enim super hoc ulla documentorum rata est fides.</p></textarea> </span> </p> </fieldset> <p class="p_submit_form"> <input type="submit" value="enregistrer" /> | <a href="http://admin.c...........e.com/pages" title="annuler"> annuler </a> </p> </form> <!-- /file:administration/vue/pages/form.tpl --> </div> <!-- /file:administration/vue/pages/edit.tpl --> </div><!-- /content --> </div><!-- tank --> </body> </html>
mais la double requete est indifférentes des actions appelées, elle part de tous les liens et formulaires non ajax, je la vois apparaitre dans le debuggeur de chrome avant que celui-ci affiche la deuxieme requete,(dans Network) j'ai cherché s'il y avait moyen et comment de bloquer le nav pour accèder au données du debuggeur sur cette requete mais j'ai encore rien trouvé.