Bonjour à tous,
J'ai un souci majeur sur une application PHP. Je vous préviens tout de suite, je ne suis pas développeur PHP mais admin systeme et J2EE, donc dur dur de comprendre si vous parlez trop "code"
Contexte: un stagiaire a développé une application en php 5 il y a quelques temps. Application tournant via WAMP (Apache 2.2, php 5.2.6, mysql 5.1) et hébergée sur un pauvre desktop dans un coin de la société.
Migration: Voulant remédier au problème de sauvegarde inexistant et également à des problématiques de disponibilité, on a décidé de migrer l'application sur un serveur (RedHat 5). J'ai donc mis en place Apache 2.2, php 5.2.9 (je ne pense pas que la différence de version soit critique) et mysql 5.1.
Malheureusement l'application ne fonctionne pas, j'ai des erreurs de ce type qui s'affichent à la place du menu de gauche (résultat: application non fonctionnelle):
PHP Notice: Undefined index: rights in /applis/engagements/includes/html.inc.php on line 151
Par contre la connexion à la base est ok (authentification à l'appli faisant foi)
Je tiens à préciser que cela fonctionne parfaitement sur le Windows, donc ce n'est pas un problème de code ... enfin je pense. Je vous mets tout de même la partie concernée:
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 foreach ($mpage['sub'] as $skey => $spage) { if (isset($mpage['entity']) && $spage['rights'] != 'a' && !$_SESSION['rights']['entity'][$mpage['entity']]['rights'][$spage['rights']]) continue ; if (isset($spage['role']) && $spage['role'] != $_SESSION['rights']['role']) continue ; if (!$spage['menu']) continue ; $sel = (($skey == $subPage) && ($key == $page)) ? ' class="selected"' : '' ; $o3 .= '<li'.$sel.'><a href="'.$spage['href'].'">'.$spage['title'].'</a></li>' ; $i++ ; }
Concernant la configuration du php.ini, j'en ai eu tellement marre que cela ne marche pas que j'ai repris celle du windows (en la réadaptant bien entendu) --> sans succès, même symptôme.
Après plusieurs heures d'investigation, j'ai tout de même remarqué une chose.
Quand je me connecte à l'application, des données de session sont créées dans un fichier.
Sur le Windows, j'ai ce contenu (je retrouve dedans les éléments du menu):
login|s:5:"infra";firstname|s:5:"infra";lastname|s:5:"infra";position|s:0:"";rights|a:2:{s:4:"role";s:1:"3";s:6:"entity";a:8:{s:11:"application";a:2:{s:4:"name";s:16:"Demandes d'achat";s:6:"rights";a:3:{s:1:"r";b:1;s:1:"i";b:1;s:1:"w";b:1;}}s:8:"contract";a:2:{s:4:"name";s:8:"Contrats";s:6:"rights";a:3:{s:1:"r";b:1;s:1:"i";b:1;s:1:"w";b:1;}}s:7:"invoice";a:2:{s:4:"name";s:8:"Factures";s:6:"rights";a:3:{s:1:"r";b:1;s:1:"i";b:1;s:1:"w";b:1;}}s:7:"company";a:2:{s:4:"name";s:10:"Sociétés";s:6:"rights";a:3:{s:1:"r";b:1;s:1:"i";b:1;s:1:"w";b:1;}}s:7:"product";a:2:{s:4:"name";s:8:"Produits";s:6:"rights";a:3:{s:1:"r";b:1;s:1:"i";b:1;s:1:"w";b:1;}}s:4:"user";a:2:{s:4:"name";s:12:"Utilisateurs";s:6:"rights";a:3:{s:1:"r";b:1;s:1:"i";b:1;s:1:"w";b:1;}}s:10:"budgetline";a:2:{s:4:"name";s:19:"Lignes budgétaires";s:6:"rights";a:3:{s:1:"r";b:1;s:1:"i";b:1;s:1:"w";b:1;}}s:10:"management";a:2:{s:4:"name";s:8:"Pilotage";s:6:"rights";a:3:{s:1:"r";b:1;s:1:"i";b:1;s:1:"w";b:1;}}}}lastseen|s:19:"2009-05-25 12:15:35";historic|a:0:{}id|s:2:"11";
Sur le Linux, j'ai ce contenu (aucun élément du menu):
Il manque donc des infos. Sachant que j'ai le même php.ini des 2 cotés (mis à part les chemins aux répertoires) et que l'application et la base de données sont identiques, auriez vous une idée de la provenance de ce problème ?[root@frtwmbes1 session]# vi sess_rhqol9rt1tcqakmq3h2jrl6lr0
login|s:5:"infra";firstname|s:5:"infra";lastname|s:5:"infra";position|s:0:"";rights|b:0;lastseen|s:19:"2009-05-25 13:24:56";historic|a:0:{}id|s:2:"11";
N'hésitez pas à me demander plus d'informations si nécessaire.
Merci d'avance.
Cordialement,
Julien
Partager