You are not logged in.
Pages: 1
Topic closed
J'ai remarqué depuis ces derniers temps des problèmes sur certains liens notamment ceux des onglets "Vue personnelle" et "Vue Globale". Ce bug m'a également été remonté en interne par un utilisateur ce matin.
Lorsque je me connecte parfois, il se trouve que le nom du serveur web disparaisse de l'url donnant ainsi l'url suivante https://front/central.php?onglet=my au lieu de https://helpdesk/front/central.php?onglet=my. Imaginez un peu donc sur quel site nous à redirigé IE et Firefox, car se bug existe aussi bien avec Firefox et IE. Ce bug est assez difficile à reproduire et se produit de manièere assez aléatoire.
Je dispose également d'une copie décran.
Offline
Erratum, le bug existe que sous Firefox.
Bon, j'ai réussi à reproduire le bug.
En faite le problème se produit après l'expiration du cookie.
Lorsqu'un utilisateur garde sa session ouverte trop longtemps, le cookie fini par expirer.
Lorsque l'utilisateur clique sur un onglet apres expiration du cookie, il est redirigé automatiquement vers la mire de login. Après reconnexion, lorsque il clique sur un des onglets "Vue personnelle" ou "Vue Globale", le nom du serveur disparait de l'url laissant https://front/central.php?onglet=my au lieu de https://helpdesk/front/central.php?onglet=my.
Offline
c'est vraiment bizarre.
le lien est généré depuis la variable $_SERVER["PHP_SELF"] comme quasiment partout dans GLPI.
C'est à dire que PHP vous tronquerez le dépuis du URL de la page courante ?
MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI : Support Contribute References Freshmeat
Offline
quelqu'un a-t'il reproduit le problème ?
Pour simuler le problème.
1) Effectuez une connexion sur GLPI dans Firefox
2) Supprimez les cookies dans Firefox
3) Cliquez sur un lien qui vous ramène à la page de login
4) Connectez-vous sur glpi
5) Essayez de passer le curseur sur les onglets "Vue personnelle" et "Vue Globale"
Dans mon cas le nom du serveur disparait uniquement sur les liens de ces 2 onglets, pas sur les autres liens (incidents, ...). GLPI est hebergé sur RedHat Enterprise 4 (biPro Xéon/2Go Ram/kernel 2.6.9-34), PHP 4.3.9, MySql 4.1.20
Offline
J'ai suivi votre procédure et je n'ai aucun problème sous firefox sous linux.
MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI : Support Contribute References Freshmeat
Offline
c'est vraiment bizarre.
le lien est généré depuis la variable $_SERVER["PHP_SELF"] comme quasiment partout dans GLPI.
C'est à dire que PHP vous tronquerez le dépuis du URL de la page courante ?
J'ai placé par curiosité dans le fichier central.php un espion m'affichant la variable $_SERVER["PHP_SELF"] (echo "my server : ".$_SERVER["PHP_SELF"]; ) avant la ligne showCentralOnglets($_SERVER["PHP_SELF"],$_SESSION['glpi_viewcentral']);.
Lors de mes tests, j'obtiens les resultat suivants :
1er connexion : resultat : my server : /front/central.php
2ieme connexion après suppression des cookies : resultat : my server : //front/central.php
Ces résultats sont donnés à titre d'information suite à une constatation.
Offline
J'ai suivi votre procédure et je n'ai aucun problème sous firefox sous linux.
Peux-être est-ce un problème de version de PHP ??
Offline
Bonjour,
J'ai suivi le procédure citée au-dessus et je n'ai aucun problème de connection.
Bon courage.
FIREFOX 2.0 / GLPI 0.68.2 / WINDOWS 2000 / Apache/2.2.0 (Win32) DAV/2 mod_ssl/2.2.0 OpenSSL/0.9.8a mod_autoindex_color PHP/5.1.1 mod_perl/2.0.2 Perl/v5.8.7/MySQL 5.0.18-nt => XAMPP 1.5.1
Offline
Bonjour,
Je confirme, ce bug se produit également sur mon poste windows XP sp2 et Firefox 1.5.0.7.
J'utilise la version glpi 0.68.2 sous Debian sarge avec php 4.3.10 et apache 2.0.54
Debian/i686 10.2
APACHE 2.4.38-3+deb10u3 | PHP 7.3+69 | MARIADB 10.1.38-0+deb9u1
GLPI 9.4.4 | OCS 2.6
Offline
pour pouvoir le corriger il faudrait deja pouvoir le reproduire ce qui n'a pas été le cas pour le moment.
MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI : Support Contribute References Freshmeat
Offline
Bonjour,
MoYo wrote:c'est vraiment bizarre.
le lien est généré depuis la variable $_SERVER["PHP_SELF"] comme quasiment partout dans GLPI.
C'est à dire que PHP vous tronquerez le dépuis du URL de la page courante ?J'ai placé par curiosité dans le fichier central.php un espion m'affichant la variable $_SERVER["PHP_SELF"] (echo "my server : ".$_SERVER["PHP_SELF"]; ) avant la ligne showCentralOnglets($_SERVER["PHP_SELF"],$_SESSION['glpi_viewcentral']);.
Lors de mes tests, j'obtiens les resultat suivants :
1er connexion : resultat : my server : /front/central.php
2ieme connexion après suppression des cookies : resultat : my server : //front/central.phpCes résultats sont donnés à titre d'information suite à une constatation.
J'arrive à reproduire exactement la même chose dans mon environnement. Ca ressemble fortement à un bug dans la version php 4.3.x, d'ailleurs en fouillant dans les bugs reports php on en trouve pas mal concernant $_SERVER["PHP_SELF"] http://bugs.php.net/search.php?cmd=disp … LF&x=0&y=0
Surtout quand on voie que PHP_SELF est souvent utilisé
# grep -r PHP_SELF /usr/local/www/glpi | wc -l
530
Reste à comprendre pourquoi ce bug n'apparaît que lorque l'on supprime les cookies ou lors de sa première connexion ...
Debian/i686 10.2
APACHE 2.4.38-3+deb10u3 | PHP 7.3+69 | MARIADB 10.1.38-0+deb9u1
GLPI 9.4.4 | OCS 2.6
Offline
Après avoir mis à jour ma version de PHP, le problème persiste
Offline
Offline
Si vous remplacez $_SERVER["PHP_SELF"] par $_SERVER['PHP_SELF'] ça donne quoi ?
Le problème semble se situer dans la fonction showCentralOnglets, car le problème ne se pose que sur les onglets.
Où puis-je trouver cette fonction, dans quel fichier ?
Offline
C'est bon j'ai trouvé la fonction showCentralOnglets.
Il semble que le problème soit lié à PHP ou à Firefox, mais bon je ne suis pas développeur PHP, à vous de me dire.
J'ai remarqué (cf #6) après une deconnexion par expiration du cookie, un problème au niveau du contenu de la variable $_SERVER["PHP_SELF"].
Ce problème est présent seulement au niveau des onglets, et le contenu de la variable est le suivant : "//front/central.php" et donc contient un / de trop.
Pour test j'ai appliqué une mofification de la variable dans le corps de la fonction showCentralOnglets en rajoutant la ligne "$target = str_replace("//", "/", $target):" comme ceci :
function showCentralOnglets($target,$actif) {
global $lang, $HTMLRel,$plugin_hooks;
$target = str_replace("//", "/", $target); // <--------------- Mon patch de fortune
echo "My Target : $target"; // <--------------- Debugger de fortune
echo "<div id='barre_onglets'><ul id='onglet'>";
echo "<li ".($actif=="my"?"class='actif'":"")."><a href='$target?onglet=my'>".$lang["central"][12]."</a></li>";
if (haveRight("show_ticket","1")||haveRight("logs","r")||haveRight("contract_infocom","r"))
echo "<li ".($actif=="global"?"class='actif'":"")."><a href='$target?onglet=global'>".$lang["central"][13]."</a></li>";
if (isset($plugin_hooks['central_action'])&&count($plugin_hooks['central_action'])){
echo "<li ".($actif=="plugins"?"class='actif'":"")."><a href='$target?onglet=plugins'>".$lang["common"][29]."</a></li>";
}
echo "</ul></div>";
}
et le pire c'est que maintenant en attendant, le bug est corrigé.
Offline
Etant donnée que cette correction de fortune ne me plaisait guerre, j'ai décidé de continuer mon investigation et ai remarqué la chose suivante : lorsque l'on se connecte sur GLPI et que l'on vient à modifier l'URL de la sorte https://helpdesk-dev//front/central.php en plaçant 2 // entre le nom du serveur et le front, on reproduit facilement le bug sur les onglets.
Dans ma logique je me suis dit que le problème devait être en amont, à la source de l'application, alors j'ai cherché le bout de code qui lancé /front et j'ai trouvé cela à la fin du fichier login.php.
// Redirect to Command Central if not post-only
if ($_SESSION["glpiprofile"]["interface"] == "helpdesk")
{
glpi_header("front/helpdesk.public.php$REDIRECT");
}
else
{
glpi_header("front/central.php$REDIRECT");
}
J'ai donc rajouté un / devant front comme suit et supprimer mon patch de fortune
// Redirect to Command Central if not post-only
if ($_SESSION["glpiprofile"]["interface"] == "helpdesk")
{
glpi_header("/front/helpdesk.public.php$REDIRECT");
}
else
{
glpi_header("/front/central.php$REDIRECT");
}
et cela semble ne plus poser de problème.
j'ai également remarqué la chose suivante lorsque le cookie expire et que l'on clique sur un lien de GLPI (exemple Inventaire --> Ordinateur ou autre) que l'URL affiché dans le navigateur change de la sorte :https://helpdesk-dev//index.php" en ajoutant un / entre le nom du serveur et /index.php.
Last edited by huberd (2006-11-09 19:46:42)
Offline
j'ai effectué une correction sur le SVN il faudra revérifer sur les pre-versions de la 0.7.
Merci du retour.
MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI : Support Contribute References Freshmeat
Offline
Pages: 1
Topic closed