Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Programmation.php : Soucis avec l'interface d'administration d'OCSInventory-NG.

Posté par Gyro Gearllose () le 12 novembre 2007
Bonjour,

Après avoir avec succès installé ocsinventory-ng, en vue de l'utiliser conjointement avec glpi, je me retrouve coincé avec une erreur php que je n'avais jamais vue avant.

En effet, la page d'accueil s'affiche correctement, et j'ai même pu créer la base de données Mysql requise, mais ensuite, après avoir validé le nom d'utilisateur/mot de passe initial de l'application (admin/admin), je me retrouve sous konqueror avec une page blanche, et sous firefox avec une page contenant ce message d'erreur :



Fatal error: main() [<a href='function.main'>function.main</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;FichierConf&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /srv/www/ocsreports/header.php on line 46





Ayant cherché dans les FAQs et autres archives des forums de discussion d'ocsinventory, je me tourne vers vous pour essayer de trouver au moins un début d'explication.

Tous les modules et logiciels requis par ocs sont installés et configurés correctement.

D'ailleurs, sur la machine sur laquelle j'ai installé ocs, php, perl, apache et mysql tournent depuis un sacré bout de temps.

Je pense donc qu'il s'agit d'une bonne grosse erreur de php, mais je n'en comprends pas le sens...

Cette erreur survient dans deux cas de figure qui sont facilement reproductibles :

Soit je me contente de recharger la page d'accueil, soit je valide le formulaire qui m'est présenté.

Le code incriminé est le suivant :



if($l->g(0))

echo "; charset=".$l->g(0).";";

else

echo "; charset=ISO-8859-1;";





La variable $l est déclarée dans le fichier nommé preferences.php



if( ! isset( $_SESSION["fichLang"] ) ) {

if( isset($_COOKIE["lang"]) )

$_SESSION["fichLang"] = new FichierConf($_COOKIE["lang"]);

else

$_SESSION["fichLang"] = new FichierConf(DEFAULT_LANGUAGE?DEFAULT_LANGUAGE:getBrowserLang());

}

$l = $_SESSION["fichLang"];



Donc, pour moi, rien de particulier.

Je suis donc preneur de toute piste qui pourrait me mettre sur la voie pour pouvoir enfin utiliser ce produit.

P.S. : il va sans dire que si je trouve une solution, je la posterai ici même.

P.S.2 : Pour informations, je fais tourner

apache 2.0.55

php 5.2.0

mysql 5.0.21

perl 5.8.6

> Lire le message (6 commentaires, moyenne: 1,7).  

Vous avez demandé le commentaire #881549.

comme ça...

Posté par B. franck () le 12/11/2007 à 14:16. (lien). Évalué à 2.

juste comme ça, le fichier de configuration est bien lisible par l'utilisateur qui exécute apache ?

  • [^]Re: comme ça...

    Posté par Gyro Gearllose () le 12/11/2007 à 15:39. (lien). Évalué à 2.

    Voilà, c'est tout à fait le genre de commentaire qui provoque une coulée de sueurs froides à leur lecture, puis on vérifie, et non, finalement, ce n'est pas ça.... Pourtant, j'y ai cru, et ça aurait pu être ça.
    Mais ces filous qui ont développé le script d'install on bien prévu les choses, et même si le propriétaire des fichiers inclus dans la partie web était root (changé en l'utilisateur d'apache depuis la lecture de ce post), l'intégralité des fichiers appartenait au groupe apache, et ce groupe avait les droits en lecture/écriture sur les fichiers et dossiers de l'interface web.
    Merci quand même, car c'était une bonne idée !

    --
    All articles which are excluded shall be deemed included
    Tous les articles exclus sont considérés inclus
    --Brian de Palma in Phantom of the Paradize