bonjours, j'ai un petit probleme : mes variables globales
disparaissent!
dans une fonction, j'en appele une autre (rien de plus normal) et au
moment ou le deboguer rentre dans la deuxieme fonction, toutes mes
variable globales disparaisse (elle ne sont plus affiché dans la
fenetre varaible globale, et ne sont plus definies...?!?
code :
index.php
=> require_once todo.php
fonction 1
=> fonction 2
=>plus rien
(ensuite d'autres require_once qui n'ont pas
acces aux variable globales...)
le code est :
if (($todo[(count($todo)-1)]) <> "" )
return getPage($todo[(count($todo)-1)], false
avec getPage() la fonction appelée.
j'utilise php 4.2.3 (pour des raison internes a l'entreprise)
apache 1.3
ce probleme vous est-il deja arrivé?
le pire c'est que il me semble que tout se passait bien avant un
instant "T" où je n'ai de plus pas touché a ce code...
bonjours, j'ai un petit probleme : mes variables globales disparaissent!
dans une fonction, j'en appele une autre (rien de plus normal) et au moment ou le deboguer rentre dans la deuxieme fonction, toutes mes variable globales disparaisse (elle ne sont plus affiché dans la fenetre varaible globale, et ne sont plus definies...?!?
Le problème se vérifie-t-il sans le débuggeur ?
code :
index.php => require_once todo.php fonction 1 => fonction 2 =>plus rien (ensuite d'autres require_once qui n'ont pas acces aux variable globales...)
Je ne suis pas sûr de comprendre. Qu'y a t'il dans todo.php ? c'est du script ou des fonctions ? 'fonction 1' et 'fonction 1' sont-ils des appels ou des définitions ? Dans les deux cas, où sont-elles définies ? Les autres "require_once", sont-ils placés dans du script ou dans des fonctions ? Bref, si tu pouvais poster le bout de code minimum reproduisant le problème...
le code est : if (($todo[(count($todo)-1)]) <> "" ) return getPage($todo[(count($todo)-1)], false
Quel code ? On est dans une fonction, là ? Et $todo, il vient d'où ?
bonjours, j'ai un petit probleme : mes variables globales
disparaissent!
dans une fonction, j'en appele une autre (rien de plus normal) et au
moment ou le deboguer rentre dans la deuxieme fonction, toutes mes
variable globales disparaisse (elle ne sont plus affiché dans la
fenetre varaible globale, et ne sont plus definies...?!?
Le problème se vérifie-t-il sans le débuggeur ?
code :
index.php
=> require_once todo.php
fonction 1
=> fonction 2
=>plus rien
(ensuite d'autres require_once qui n'ont pas
acces aux variable globales...)
Je ne suis pas sûr de comprendre. Qu'y a t'il dans todo.php ? c'est du
script ou des fonctions ? 'fonction 1' et 'fonction 1' sont-ils des
appels ou des définitions ? Dans les deux cas, où sont-elles définies ?
Les autres "require_once", sont-ils placés dans du script ou dans des
fonctions ? Bref, si tu pouvais poster le bout de code minimum
reproduisant le problème...
le code est :
if (($todo[(count($todo)-1)]) <> "" )
return getPage($todo[(count($todo)-1)], false
Quel code ? On est dans une fonction, là ? Et $todo, il vient d'où ?
bonjours, j'ai un petit probleme : mes variables globales disparaissent!
dans une fonction, j'en appele une autre (rien de plus normal) et au moment ou le deboguer rentre dans la deuxieme fonction, toutes mes variable globales disparaisse (elle ne sont plus affiché dans la fenetre varaible globale, et ne sont plus definies...?!?
Le problème se vérifie-t-il sans le débuggeur ?
code :
index.php => require_once todo.php fonction 1 => fonction 2 =>plus rien (ensuite d'autres require_once qui n'ont pas acces aux variable globales...)
Je ne suis pas sûr de comprendre. Qu'y a t'il dans todo.php ? c'est du script ou des fonctions ? 'fonction 1' et 'fonction 1' sont-ils des appels ou des définitions ? Dans les deux cas, où sont-elles définies ? Les autres "require_once", sont-ils placés dans du script ou dans des fonctions ? Bref, si tu pouvais poster le bout de code minimum reproduisant le problème...
le code est : if (($todo[(count($todo)-1)]) <> "" ) return getPage($todo[(count($todo)-1)], false
Quel code ? On est dans une fonction, là ? Et $todo, il vient d'où ?
Le problème se vérifie-t-il sans le débuggeur ? =>oui, mes sripts ne recuperent plus les get/post...
Qu'y a t'il dans todo.php ? =>j'ai une seule page : "index.php". Cette page fait plusieurs require_once : require_once "HTMLHead.php"; ... require_once "classes/HTML_DB.php"; require_once "todo.php"; ...
la seule interressante est "todo.php", c'est a partir de là que la page a afficher va etre selectionné. le code de cette page commence par l'appel d'une fonction acronyme : todo() :
if (todo() == false) { //en gros si todo = false : j'appelle un page qui n'existe pas. }
------- cette fonction qui recupere une variable ("todo"?!?) recupérée par $_GET afin de selectionner la page a afficher grace à "getPage()" est la suivante :
function todo(){// on appele la fonction juste apres sa declaration if (isset($_GET['todo'])) {//todo renvoyé normalement if ($_GET['todo'] <> "") { $todo = $_GET['todo']; return getPage($todo); }else {//si todo est vide, on prend le dernier todo utilisé, stocké dans le rollback $todo = explode(",",$_SESSION['rollback']); return getPage($todo[(count($todo)-1)], false);//on envoie le dernier param envoyé en rollback } } else { $todo = explode(",",$_SESSION['rollback']); if (($todo[(count($todo)-1)]) <> "" ) {//si aucun todo n'est definit, on essaie de reculer d'un pas dans l'historique' return getPage($todo[(count($todo)-1)], false);//on envoie le dernier param envoyé en rollback } else {//si l'historique est vide, on affiche la page de demarage. require_once 'pages/choixDuSDUM.php';//si y'a pas de todo defini, on affiche le menu de selection du sdum return true; } } } //fin de la fonction
----- enfin, la fonction "getPage($todo)" qui en fonction de todo appel telle ou telle page :
function getPage($todo, $rollbacker = true) {
switch ($todo) { case "deconnexion": //on efface le cookie de sesssion if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } //on efface la session session_destroy(); echo "<A href="?todo=ChoixDuSDUM">continuer</a>"; }
switch ($todo) {//pour les menus case "menuGlobal": require_once "pages/{$todo}.php";
return true; case "MenuClasseurOutil": require_once "pages/{$todo}.php";
return true; case "ChoixDuSDUM" : require_once 'pages/{$todo}.php"; return true; } //fin du switch menu switch ($todo){ case "COModifie" : require_once "pages/co/{$todo}.php"; return true; case "COAssocie" : require_once "pages/co/{$todo}.php"; return true; }
//fin des switch, si rien n'a ete trouvé alors le todo est erroné, on retourne faux pour le debug return false; }
---- donc la perte des variables globales apparait à l'entrée du debuggeur dans la fonction getPage....
Bon, le code n'en est qu'a ses debuts, y'a pas mal d'ameliorations a apporter, mais le bug que je subit... là je voit vraiment pas....
Le problème se vérifie-t-il sans le débuggeur ?
=>oui, mes sripts ne recuperent plus les get/post...
Qu'y a t'il dans todo.php ?
=>j'ai une seule page : "index.php". Cette page fait plusieurs
require_once :
require_once "HTMLHead.php";
...
require_once "classes/HTML_DB.php";
require_once "todo.php";
...
la seule interressante est "todo.php", c'est a partir de là que la
page a afficher va etre selectionné.
le code de cette page commence par l'appel d'une fonction acronyme :
todo() :
if (todo() == false) {
//en gros si todo = false : j'appelle un page qui n'existe pas.
}
-------
cette fonction qui recupere une variable ("todo"?!?) recupérée par
$_GET afin de selectionner la page a afficher grace à "getPage()" est
la suivante :
function todo(){// on appele la fonction juste apres sa declaration
if (isset($_GET['todo'])) {//todo renvoyé normalement
if ($_GET['todo'] <> "") {
$todo = $_GET['todo'];
return getPage($todo);
}else {//si todo est vide, on prend le dernier todo utilisé,
stocké dans le rollback
$todo = explode(",",$_SESSION['rollback']);
return getPage($todo[(count($todo)-1)], false);//on envoie
le dernier param envoyé en rollback
}
} else {
$todo = explode(",",$_SESSION['rollback']);
if (($todo[(count($todo)-1)]) <> "" ) {//si aucun todo
n'est definit, on essaie de reculer d'un pas dans l'historique'
return getPage($todo[(count($todo)-1)], false);//on
envoie le dernier param envoyé en rollback
} else {//si l'historique est vide, on affiche la page de
demarage.
require_once 'pages/choixDuSDUM.php';//si y'a pas de
todo defini, on affiche le menu de selection du sdum
return true;
}
}
}
//fin de la fonction
-----
enfin, la fonction "getPage($todo)" qui en fonction de todo appel telle
ou telle page :
function getPage($todo, $rollbacker = true) {
switch ($todo) {
case "deconnexion":
//on efface le cookie de sesssion
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
//on efface la session
session_destroy();
echo "<A href="?todo=ChoixDuSDUM">continuer</a>";
}
switch ($todo) {//pour les menus
case "menuGlobal":
require_once "pages/{$todo}.php";
return true;
case "MenuClasseurOutil":
require_once "pages/{$todo}.php";
return true;
case "ChoixDuSDUM" :
require_once 'pages/{$todo}.php";
return true;
}
//fin du switch menu
switch ($todo){
case "COModifie" :
require_once "pages/co/{$todo}.php";
return true;
case "COAssocie" :
require_once "pages/co/{$todo}.php";
return true;
}
//fin des switch, si rien n'a ete trouvé alors le todo est erroné, on
retourne faux pour le debug
return false;
}
----
donc la perte des variables globales apparait à l'entrée du debuggeur
dans la fonction getPage....
Bon, le code n'en est qu'a ses debuts, y'a pas mal d'ameliorations a
apporter, mais le bug que je subit... là je voit vraiment pas....
Le problème se vérifie-t-il sans le débuggeur ? =>oui, mes sripts ne recuperent plus les get/post...
Qu'y a t'il dans todo.php ? =>j'ai une seule page : "index.php". Cette page fait plusieurs require_once : require_once "HTMLHead.php"; ... require_once "classes/HTML_DB.php"; require_once "todo.php"; ...
la seule interressante est "todo.php", c'est a partir de là que la page a afficher va etre selectionné. le code de cette page commence par l'appel d'une fonction acronyme : todo() :
if (todo() == false) { //en gros si todo = false : j'appelle un page qui n'existe pas. }
------- cette fonction qui recupere une variable ("todo"?!?) recupérée par $_GET afin de selectionner la page a afficher grace à "getPage()" est la suivante :
function todo(){// on appele la fonction juste apres sa declaration if (isset($_GET['todo'])) {//todo renvoyé normalement if ($_GET['todo'] <> "") { $todo = $_GET['todo']; return getPage($todo); }else {//si todo est vide, on prend le dernier todo utilisé, stocké dans le rollback $todo = explode(",",$_SESSION['rollback']); return getPage($todo[(count($todo)-1)], false);//on envoie le dernier param envoyé en rollback } } else { $todo = explode(",",$_SESSION['rollback']); if (($todo[(count($todo)-1)]) <> "" ) {//si aucun todo n'est definit, on essaie de reculer d'un pas dans l'historique' return getPage($todo[(count($todo)-1)], false);//on envoie le dernier param envoyé en rollback } else {//si l'historique est vide, on affiche la page de demarage. require_once 'pages/choixDuSDUM.php';//si y'a pas de todo defini, on affiche le menu de selection du sdum return true; } } } //fin de la fonction
----- enfin, la fonction "getPage($todo)" qui en fonction de todo appel telle ou telle page :
function getPage($todo, $rollbacker = true) {
switch ($todo) { case "deconnexion": //on efface le cookie de sesssion if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } //on efface la session session_destroy(); echo "<A href="?todo=ChoixDuSDUM">continuer</a>"; }
switch ($todo) {//pour les menus case "menuGlobal": require_once "pages/{$todo}.php";
return true; case "MenuClasseurOutil": require_once "pages/{$todo}.php";
return true; case "ChoixDuSDUM" : require_once 'pages/{$todo}.php"; return true; } //fin du switch menu switch ($todo){ case "COModifie" : require_once "pages/co/{$todo}.php"; return true; case "COAssocie" : require_once "pages/co/{$todo}.php"; return true; }
//fin des switch, si rien n'a ete trouvé alors le todo est erroné, on retourne faux pour le debug return false; }
---- donc la perte des variables globales apparait à l'entrée du debuggeur dans la fonction getPage....
Bon, le code n'en est qu'a ses debuts, y'a pas mal d'ameliorations a apporter, mais le bug que je subit... là je voit vraiment pas....
Olivier Miakinen
function todo(){// on appele la fonction juste apres sa declaration if (isset($_GET['todo'])) {//todo renvoyé normalement if ($_GET['todo'] <> "") { $todo = $_GET['todo']; return getPage($todo); }else {//si todo est vide, on prend le dernier todo utilisé, stocké dans le rollback $todo = explode(",",$_SESSION['rollback']);
Ah ? Et si $_SESSION['rollback'] est vide ou non défini ?
return getPage($todo[(count($todo)-1)], false);//on envoie le dernier param envoyé en rollback }
function todo(){// on appele la fonction juste apres sa declaration
if (isset($_GET['todo'])) {//todo renvoyé normalement
if ($_GET['todo'] <> "") {
$todo = $_GET['todo'];
return getPage($todo);
}else {//si todo est vide, on prend le dernier todo utilisé,
stocké dans le rollback
$todo = explode(",",$_SESSION['rollback']);
Ah ? Et si $_SESSION['rollback'] est vide ou non défini ?
return getPage($todo[(count($todo)-1)], false);//on envoie
le dernier param envoyé en rollback
}
function todo(){// on appele la fonction juste apres sa declaration if (isset($_GET['todo'])) {//todo renvoyé normalement if ($_GET['todo'] <> "") { $todo = $_GET['todo']; return getPage($todo); }else {//si todo est vide, on prend le dernier todo utilisé, stocké dans le rollback $todo = explode(",",$_SESSION['rollback']);
Ah ? Et si $_SESSION['rollback'] est vide ou non défini ?
return getPage($todo[(count($todo)-1)], false);//on envoie le dernier param envoyé en rollback }
bruno modulix
bruno wrote:
Bon, le code n'en est qu'a ses debuts, y'a pas mal d'ameliorations a apporter,
BTW, petite proposition de refactoring (attention, j'ai pris quelques libertés avec ton code !-)...
function action() { if (! empty($_GET['action'])) { $action = trim($_GET['action']); } elseif (! empty($_SESSION['rollback'])) { $action = @trim(@end(@explode(",",$_SESSION['rollback']))); } if (empty($action)) { $action = "choixDuSDUM"; } require_once getPage($action)); }
function getPage($action) { if ($action == "deconnexion") { logout(); $action="ChoixDuSDUM"; }
// TODO : mettre ça dans un fichier de conf à inclure ? // (ou dans un .ini lut avec parse_ini_file() ?) $action_map = Array( "404NotFound" => "pages/404.php", "MenuGlobal" =>"pages/menu_global.php", "MenuClasseurOutil" =>"pages/menu_classeur_outil.php", "ChoixDuSDUM" => "pages/choix_du_sdum.php", "COModifie" => "pages/co/modifie.php", "COAssocie" => "pages/co/associe.php" );
function logout() { //on efface le cookie de session $session_name = session_name(); if (isset($_COOKIE[$session_name])) { setcookie($session_name, '', time()-42000, '/'); } //on efface la session session_destroy(); }
Voili voilà... Bon, maintenant, on aime ou on aime pas ce style, et puis ça ne s'intègre pas forcément au reste de ton architecture. Enfin bref, fais en ce que bon te semble !-)
-- bruno desthuilliers ruby -e "print ''.split('@').collect{|p| p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"
bruno wrote:
Bon, le code n'en est qu'a ses debuts, y'a pas mal d'ameliorations a
apporter,
BTW, petite proposition de refactoring (attention, j'ai pris quelques
libertés avec ton code !-)...
function action()
{
if (! empty($_GET['action'])) {
$action = trim($_GET['action']);
}
elseif (! empty($_SESSION['rollback'])) {
$action = @trim(@end(@explode(",",$_SESSION['rollback'])));
}
if (empty($action)) {
$action = "choixDuSDUM";
}
require_once getPage($action));
}
function getPage($action)
{
if ($action == "deconnexion") {
logout();
$action="ChoixDuSDUM";
}
// TODO : mettre ça dans un fichier de conf à inclure ?
// (ou dans un .ini lut avec parse_ini_file() ?)
$action_map = Array(
"404NotFound" => "pages/404.php",
"MenuGlobal" =>"pages/menu_global.php",
"MenuClasseurOutil" =>"pages/menu_classeur_outil.php",
"ChoixDuSDUM" => "pages/choix_du_sdum.php",
"COModifie" => "pages/co/modifie.php",
"COAssocie" => "pages/co/associe.php"
);
function logout()
{
//on efface le cookie de session
$session_name = session_name();
if (isset($_COOKIE[$session_name])) {
setcookie($session_name, '', time()-42000, '/');
}
//on efface la session
session_destroy();
}
Voili voilà... Bon, maintenant, on aime ou on aime pas ce style, et puis
ça ne s'intègre pas forcément au reste de ton architecture. Enfin bref,
fais en ce que bon te semble !-)
--
bruno desthuilliers
ruby -e "print 'onurb@xiludom.gro'.split('@').collect{|p|
p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"
Bon, le code n'en est qu'a ses debuts, y'a pas mal d'ameliorations a apporter,
BTW, petite proposition de refactoring (attention, j'ai pris quelques libertés avec ton code !-)...
function action() { if (! empty($_GET['action'])) { $action = trim($_GET['action']); } elseif (! empty($_SESSION['rollback'])) { $action = @trim(@end(@explode(",",$_SESSION['rollback']))); } if (empty($action)) { $action = "choixDuSDUM"; } require_once getPage($action)); }
function getPage($action) { if ($action == "deconnexion") { logout(); $action="ChoixDuSDUM"; }
// TODO : mettre ça dans un fichier de conf à inclure ? // (ou dans un .ini lut avec parse_ini_file() ?) $action_map = Array( "404NotFound" => "pages/404.php", "MenuGlobal" =>"pages/menu_global.php", "MenuClasseurOutil" =>"pages/menu_classeur_outil.php", "ChoixDuSDUM" => "pages/choix_du_sdum.php", "COModifie" => "pages/co/modifie.php", "COAssocie" => "pages/co/associe.php" );
function logout() { //on efface le cookie de session $session_name = session_name(); if (isset($_COOKIE[$session_name])) { setcookie($session_name, '', time()-42000, '/'); } //on efface la session session_destroy(); }
Voili voilà... Bon, maintenant, on aime ou on aime pas ce style, et puis ça ne s'intègre pas forcément au reste de ton architecture. Enfin bref, fais en ce que bon te semble !-)
-- bruno desthuilliers ruby -e "print ''.split('@').collect{|p| p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"
bruno
je n'ai pas mis tout le code, si $_SESSION['rollback'] est vide, alors la page afichée est celle par defaut (ChoixDuSDUM) , et $_SESSION['rollback'] = ",ChoixDuSDUM"
mais le pb n'est pas là... tout fonctionne bien, mais j'ai quand meme une perte de mes variables globales (ok, donc tout ne fonctionne pas bien :'( )
je n'ai pas mis tout le code, si $_SESSION['rollback'] est vide, alors
la page afichée est celle par defaut (ChoixDuSDUM) , et
$_SESSION['rollback'] = ",ChoixDuSDUM"
mais le pb n'est pas là...
tout fonctionne bien, mais j'ai quand meme une perte de mes variables
globales
(ok, donc tout ne fonctionne pas bien :'( )
je n'ai pas mis tout le code, si $_SESSION['rollback'] est vide, alors la page afichée est celle par defaut (ChoixDuSDUM) , et $_SESSION['rollback'] = ",ChoixDuSDUM"
mais le pb n'est pas là... tout fonctionne bien, mais j'ai quand meme une perte de mes variables globales (ok, donc tout ne fonctionne pas bien :'( )
bruno modulix
bruno wrote:
Le problème se vérifie-t-il sans le débuggeur ? =>oui, mes sripts ne recuperent plus les get/post...
<question-con> En passant par les superglobales $_GET et $_POST ? </question-con>
Qu'y a t'il dans todo.php ? =>j'ai une seule page : "index.php". Cette page fait plusieurs (snip)
require_once "todo.php";
la seule interressante est "todo.php", (snip)
le code de cette page commence par l'appel d'une fonction acronyme : todo() :
if (todo() == false) { //en gros si todo = false : j'appelle un page qui n'existe pas. }
ok...
------- cette fonction qui recupere une variable ("todo"?!?) recupérée par $_GET afin de selectionner la page a afficher grace à "getPage()" est la suivante :
function todo(){// on appele la fonction juste apres sa declaration if (isset($_GET['todo'])) {//todo renvoyé normalement (snip)
Pas de pb à ce niveau là si j'ai bien compris la suite ?
} //fin de la fonction
----- enfin, la fonction "getPage($todo)" qui en fonction de todo appel telle ou telle page :
function getPage($todo, $rollbacker = true) { (snip)
}
donc la perte des variables globales apparait à l'entrée du debuggeur dans la fonction getPage....
Je ne vois pas quelles globales sont utilisées dans cette fonction, à part la superglobale $_COOKIE. A moins que tu ne veuilles dire que les .php inclus par getPage() n'accèdent pas à des globales positionnées avant l'appel à getPage() ? Ou aux superglobales $_GET et $_POST ? Excuses-moi, je comprend vite mais faut m'expliquer longtemp :(
BTW, a tu essayé d'isoler le code minimum strictement nécessaire à la reproduction du phénomène ?
(désolé, pas mieux...)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
bruno wrote:
Le problème se vérifie-t-il sans le débuggeur ?
=>oui, mes sripts ne recuperent plus les get/post...
<question-con>
En passant par les superglobales $_GET et $_POST ?
</question-con>
Qu'y a t'il dans todo.php ?
=>j'ai une seule page : "index.php". Cette page fait plusieurs
(snip)
require_once "todo.php";
la seule interressante est "todo.php",
(snip)
le code de cette page commence par l'appel d'une fonction acronyme :
todo() :
if (todo() == false) {
//en gros si todo = false : j'appelle un page qui n'existe pas.
}
ok...
-------
cette fonction qui recupere une variable ("todo"?!?) recupérée par
$_GET afin de selectionner la page a afficher grace à "getPage()" est
la suivante :
function todo(){// on appele la fonction juste apres sa declaration
if (isset($_GET['todo'])) {//todo renvoyé normalement
(snip)
Pas de pb à ce niveau là si j'ai bien compris la suite ?
}
//fin de la fonction
-----
enfin, la fonction "getPage($todo)" qui en fonction de todo appel telle
ou telle page :
function getPage($todo, $rollbacker = true) {
(snip)
}
donc la perte des variables globales apparait à l'entrée du debuggeur
dans la fonction getPage....
Je ne vois pas quelles globales sont utilisées dans cette fonction, à
part la superglobale $_COOKIE. A moins que tu ne veuilles dire que les
.php inclus par getPage() n'accèdent pas à des globales positionnées
avant l'appel à getPage() ? Ou aux superglobales $_GET et $_POST ?
Excuses-moi, je comprend vite mais faut m'expliquer longtemp :(
BTW, a tu essayé d'isoler le code minimum strictement nécessaire à la
reproduction du phénomène ?
(désolé, pas mieux...)
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
Le problème se vérifie-t-il sans le débuggeur ? =>oui, mes sripts ne recuperent plus les get/post...
<question-con> En passant par les superglobales $_GET et $_POST ? </question-con>
Qu'y a t'il dans todo.php ? =>j'ai une seule page : "index.php". Cette page fait plusieurs (snip)
require_once "todo.php";
la seule interressante est "todo.php", (snip)
le code de cette page commence par l'appel d'une fonction acronyme : todo() :
if (todo() == false) { //en gros si todo = false : j'appelle un page qui n'existe pas. }
ok...
------- cette fonction qui recupere une variable ("todo"?!?) recupérée par $_GET afin de selectionner la page a afficher grace à "getPage()" est la suivante :
function todo(){// on appele la fonction juste apres sa declaration if (isset($_GET['todo'])) {//todo renvoyé normalement (snip)
Pas de pb à ce niveau là si j'ai bien compris la suite ?
} //fin de la fonction
----- enfin, la fonction "getPage($todo)" qui en fonction de todo appel telle ou telle page :
function getPage($todo, $rollbacker = true) { (snip)
}
donc la perte des variables globales apparait à l'entrée du debuggeur dans la fonction getPage....
Je ne vois pas quelles globales sont utilisées dans cette fonction, à part la superglobale $_COOKIE. A moins que tu ne veuilles dire que les .php inclus par getPage() n'accèdent pas à des globales positionnées avant l'appel à getPage() ? Ou aux superglobales $_GET et $_POST ? Excuses-moi, je comprend vite mais faut m'expliquer longtemp :(
BTW, a tu essayé d'isoler le code minimum strictement nécessaire à la reproduction du phénomène ?
(désolé, pas mieux...)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
bruno
Voili voilà... Bon, maintenant, on aime ou on aime pas ce style, et puis ça ne s'intègre pas forcément au reste de ton architecture. Enfin bref, fais en ce que bon te semble !-)
=> heu... bein en fait merci ;D, quand j'ai dit qu'on pouvait l'optimiser, en gros c'etait faire ce que tu vietn de fiare (pour moi, merci encore :p )
Je ne vois pas quelles globales sont utilisées dans cette fonction, à
part la superglobale $_COOKIE => en fait c'est dans les pages appelées plus loins, mais hors du contexte du probelme car ma perte de variables se situe ici :)
a tu essayé d'isoler le code minimum strictement nécessaire à la reproduction du phénomène ? => roh! c une bonne idée... :'( (je suis fatigué aujourd'hui :'[ )
<question-con> En passant par les superglobales $_GET et $_POST ? </question-con> => <reponse humouristique> Non en demandant a ma grand mere... </reponse humouristique> <excuses> <excuses> dsl </excuses> </excuses>
sinon, je voudrait recentrer la question :
mon pb est po mon code (pourri certe...)... (bon ok, c'est un pb...)... (mais po le bon...)... (dsl)
le vrai pb la c'est que mon dev est stoppé par ces satanée variable globales qui sont parties boir du café (grand mere dsl)
donc, je voit vraiment pas pourquoi le fait d'apeller une fonction avec un parametre pose un pb...
return getPage($todo);
ca rentre dedans et... pouf plus rien...
vous voyez de quoi ca peut venir?
pour vous dire, j'ai ercommencé mon dev, tellment je trouve pas d'ou ca vient... (j'etait pas trop avancé)
sinon pour le model MVC, baser son menu general sur une GROSSE page pricipale pleine de JS, puis passer le relais à PHP des que la fin de l'arborescence des menus est atteinte... voila ma nouvelle optique...
n'empeche ces variables... je l'ai en travers, je pense pas que mon code soit faux...
Voili voilà... Bon, maintenant, on aime ou on aime pas ce style, et
puis
ça ne s'intègre pas forcément au reste de ton architecture. Enfin
bref,
fais en ce que bon te semble !-)
=> heu... bein en fait merci ;D, quand j'ai dit qu'on pouvait
l'optimiser, en gros c'etait faire ce que tu vietn de fiare (pour moi,
merci encore :p )
Je ne vois pas quelles globales sont utilisées dans cette fonction, à
part la superglobale $_COOKIE
=> en fait c'est dans les pages appelées plus loins, mais hors du
contexte du probelme car ma perte de variables se situe ici :)
a tu essayé d'isoler le code minimum strictement nécessaire à la
reproduction du phénomène ?
=> roh! c une bonne idée... :'( (je suis fatigué aujourd'hui :'[ )
<question-con>
En passant par les superglobales $_GET et $_POST ?
</question-con>
=>
<reponse humouristique>
Non en demandant a ma grand mere...
</reponse humouristique>
<excuses>
<excuses>
dsl
</excuses>
</excuses>
sinon, je voudrait recentrer la question :
mon pb est po mon code (pourri certe...)... (bon ok, c'est un pb...)...
(mais po le bon...)... (dsl)
le vrai pb la c'est que mon dev est stoppé par ces satanée variable
globales qui sont parties boir du café (grand mere dsl)
donc, je voit vraiment pas pourquoi le fait d'apeller une fonction avec
un parametre pose un pb...
return getPage($todo);
ca rentre dedans et... pouf plus rien...
vous voyez de quoi ca peut venir?
pour vous dire, j'ai ercommencé mon dev, tellment je trouve pas d'ou
ca vient... (j'etait pas trop avancé)
sinon pour le model MVC, baser son menu general sur une GROSSE page
pricipale pleine de JS, puis passer le relais à PHP des que la fin de
l'arborescence des menus est atteinte... voila ma nouvelle optique...
n'empeche ces variables... je l'ai en travers, je pense pas que mon
code soit faux...
Voili voilà... Bon, maintenant, on aime ou on aime pas ce style, et puis ça ne s'intègre pas forcément au reste de ton architecture. Enfin bref, fais en ce que bon te semble !-)
=> heu... bein en fait merci ;D, quand j'ai dit qu'on pouvait l'optimiser, en gros c'etait faire ce que tu vietn de fiare (pour moi, merci encore :p )
Je ne vois pas quelles globales sont utilisées dans cette fonction, à
part la superglobale $_COOKIE => en fait c'est dans les pages appelées plus loins, mais hors du contexte du probelme car ma perte de variables se situe ici :)
a tu essayé d'isoler le code minimum strictement nécessaire à la reproduction du phénomène ? => roh! c une bonne idée... :'( (je suis fatigué aujourd'hui :'[ )
<question-con> En passant par les superglobales $_GET et $_POST ? </question-con> => <reponse humouristique> Non en demandant a ma grand mere... </reponse humouristique> <excuses> <excuses> dsl </excuses> </excuses>
sinon, je voudrait recentrer la question :
mon pb est po mon code (pourri certe...)... (bon ok, c'est un pb...)... (mais po le bon...)... (dsl)
le vrai pb la c'est que mon dev est stoppé par ces satanée variable globales qui sont parties boir du café (grand mere dsl)
donc, je voit vraiment pas pourquoi le fait d'apeller une fonction avec un parametre pose un pb...
return getPage($todo);
ca rentre dedans et... pouf plus rien...
vous voyez de quoi ca peut venir?
pour vous dire, j'ai ercommencé mon dev, tellment je trouve pas d'ou ca vient... (j'etait pas trop avancé)
sinon pour le model MVC, baser son menu general sur une GROSSE page pricipale pleine de JS, puis passer le relais à PHP des que la fin de l'arborescence des menus est atteinte... voila ma nouvelle optique...
n'empeche ces variables... je l'ai en travers, je pense pas que mon code soit faux...
ftc
n'empeche ces variables... je l'ai en travers, je pense pas que mon code soit faux...
A tout hasard, est-ce que les globales sont bien déclarées dans les fonctions par:
global $var1, $var2 ...
Sinon, essayer de les appeler via $GLOBALS['var1'], $GLOBALS['var2'] ...
Est-ce que ce sont de vraies globales ? Si un fichier est inclus à partir d'une fonction, les variables globales dans ce fichier ne sont accessibles que dans cette fonction.
n'empeche ces variables... je l'ai en travers, je pense pas que mon
code soit faux...
A tout hasard, est-ce que les globales sont bien déclarées dans les
fonctions par:
global $var1, $var2 ...
Sinon, essayer de les appeler via $GLOBALS['var1'], $GLOBALS['var2'] ...
Est-ce que ce sont de vraies globales ?
Si un fichier est inclus à partir d'une fonction, les variables globales
dans ce fichier ne sont accessibles que dans cette fonction.
n'empeche ces variables... je l'ai en travers, je pense pas que mon code soit faux...
A tout hasard, est-ce que les globales sont bien déclarées dans les fonctions par:
global $var1, $var2 ...
Sinon, essayer de les appeler via $GLOBALS['var1'], $GLOBALS['var2'] ...
Est-ce que ce sont de vraies globales ? Si un fichier est inclus à partir d'une fonction, les variables globales dans ce fichier ne sont accessibles que dans cette fonction.
Olivier Miakinen
donc, je voit vraiment pas pourquoi le fait d'apeller une fonction avec un parametre pose un pb...
return getPage($todo);
ca rentre dedans et... pouf plus rien...
Je sors ma boule de cristal pour essayer de comprendre quelles sont ces variables globales qui disparaissent. Par hasard, ce ne serait pas « $todo », dont tu espèrerais que la fonction va la modifier ?
vous voyez de quoi ca peut venir?
Sans savoir si ta variable globale « qui disparaît » s'appelle $_SESSION, $todo ou $grand-mère, non, je ne vois pas.
Par ailleurs, merci d'essayer de citer correctement : en l'état, c'est assez illisible. Voir <http://www.giromini.org/usenet-fr/repondre.html>.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
donc, je voit vraiment pas pourquoi le fait d'apeller une fonction avec
un parametre pose un pb...
return getPage($todo);
ca rentre dedans et... pouf plus rien...
Je sors ma boule de cristal pour essayer de comprendre quelles sont
ces variables globales qui disparaissent. Par hasard, ce ne serait pas
« $todo », dont tu espèrerais que la fonction va la modifier ?
vous voyez de quoi ca peut venir?
Sans savoir si ta variable globale « qui disparaît » s'appelle
$_SESSION, $todo ou $grand-mère, non, je ne vois pas.
Par ailleurs, merci d'essayer de citer correctement : en l'état, c'est
assez illisible.
Voir <http://www.giromini.org/usenet-fr/repondre.html>.
--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.
donc, je voit vraiment pas pourquoi le fait d'apeller une fonction avec un parametre pose un pb...
return getPage($todo);
ca rentre dedans et... pouf plus rien...
Je sors ma boule de cristal pour essayer de comprendre quelles sont ces variables globales qui disparaissent. Par hasard, ce ne serait pas « $todo », dont tu espèrerais que la fonction va la modifier ?
vous voyez de quoi ca peut venir?
Sans savoir si ta variable globale « qui disparaît » s'appelle $_SESSION, $todo ou $grand-mère, non, je ne vois pas.
Par ailleurs, merci d'essayer de citer correctement : en l'état, c'est assez illisible. Voir <http://www.giromini.org/usenet-fr/repondre.html>.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
bruno modulix
bruno wrote: (snip)
=> heu... bein en fait merci ;D, quand j'ai dit qu'on pouvait l'optimiser, en gros c'etait faire ce que tu vietn de fiare (pour moi, merci encore :p )
<reverence>Votre humble serviteur</reverence>
Je ne vois pas quelles globales sont utilisées dans cette fonction, à
part la superglobale $_COOKIE => en fait c'est dans les pages appelées plus loins,
Ok, c'est ce qui me semblait...
mais hors du contexte du probelme car ma perte de variables se situe ici :)
Ou ailleurs...
a tu essayé d'isoler le code minimum strictement nécessaire à la reproduction du phénomène ? => roh! c une bonne idée... :'( (je suis fatigué aujourd'hui :'[ )
Bin, c'est surtout très recommandé quand on expose son problème... Le fait est que très souvent, on trouve la solution au passage !-)
Mais bon, c'est pas toujours évident...
(snip)
donc, je voit vraiment pas pourquoi le fait d'apeller une fonction avec un parametre pose un pb...
En soi, ça ne devrait pas... Honnêtement, je ne vois vraiment pas d'où vient ton problème.
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
bruno wrote:
(snip)
=> heu... bein en fait merci ;D, quand j'ai dit qu'on pouvait
l'optimiser, en gros c'etait faire ce que tu vietn de fiare (pour moi,
merci encore :p )
<reverence>Votre humble serviteur</reverence>
Je ne vois pas quelles globales sont utilisées dans cette fonction, à
part la superglobale $_COOKIE
=> en fait c'est dans les pages appelées plus loins,
Ok, c'est ce qui me semblait...
mais hors du
contexte du probelme car ma perte de variables se situe ici :)
Ou ailleurs...
a tu essayé d'isoler le code minimum strictement nécessaire à la
reproduction du phénomène ?
=> roh! c une bonne idée... :'( (je suis fatigué aujourd'hui :'[ )
Bin, c'est surtout très recommandé quand on expose son problème... Le
fait est que très souvent, on trouve la solution au passage !-)
Mais bon, c'est pas toujours évident...
(snip)
donc, je voit vraiment pas pourquoi le fait d'apeller une fonction avec
un parametre pose un pb...
En soi, ça ne devrait pas... Honnêtement, je ne vois vraiment pas d'où
vient ton problème.
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
=> heu... bein en fait merci ;D, quand j'ai dit qu'on pouvait l'optimiser, en gros c'etait faire ce que tu vietn de fiare (pour moi, merci encore :p )
<reverence>Votre humble serviteur</reverence>
Je ne vois pas quelles globales sont utilisées dans cette fonction, à
part la superglobale $_COOKIE => en fait c'est dans les pages appelées plus loins,
Ok, c'est ce qui me semblait...
mais hors du contexte du probelme car ma perte de variables se situe ici :)
Ou ailleurs...
a tu essayé d'isoler le code minimum strictement nécessaire à la reproduction du phénomène ? => roh! c une bonne idée... :'( (je suis fatigué aujourd'hui :'[ )
Bin, c'est surtout très recommandé quand on expose son problème... Le fait est que très souvent, on trouve la solution au passage !-)
Mais bon, c'est pas toujours évident...
(snip)
donc, je voit vraiment pas pourquoi le fait d'apeller une fonction avec un parametre pose un pb...
En soi, ça ne devrait pas... Honnêtement, je ne vois vraiment pas d'où vient ton problème.
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"