You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2008-09-03 10:06:43

laur
Member
Registered: 2007-09-17
Posts: 50

mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Bonjour,
depuis le passage en 0.71.1 et mass_ocs_import 1.2 le plugins ne fonctionne plus.

En mode debug et en le lançant en console, j'ai l'erreur suivante :

...
Thread #1 : starting (1/1)
thread #1 : import computers from server: 'ocs'
thread #1 : 17 computer(s)
.
Fatal error: Cannot unset string offsets in /data/srv/www/glpi/inc/commondbtm.class.php on line 651
cleaning up.
Wed Sep 3 10:03:46 CEST 2008 ended

PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#2 2008-09-03 10:11:14

wawa
GLPI-DEV
From: Montpellier / France
Registered: 2006-07-03
Posts: 6,019
Website

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

bonjour,
ça marchait bien avec la version 1.1 du plugin ?

Offline

#3 2008-09-03 11:06:21

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

De mémoire, oui, mais avec la version précédente de GLPI, la 0.71.

Je vais vérifier tout ça


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#4 2008-09-04 10:24:38

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Bonjour,
même erreur en 0.71.1 et le mass_ocs 1.1
je vais tester avec une vielle sauvegarde la 0.71 et mass_ocs 1.1 pour etre sur que cela fonctionnait


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#5 2008-09-04 10:57:57

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Bon, sur une sauvegarde de début aout, avec GLPI 0.71 et mass_ocs 1.2, cela fonctionnait.

Est ce la peine que je teste avec la 0.71 et 1.1 ?

edit : correction fautes de frappes

Last edited by laur (2008-09-04 17:09:25)


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#6 2008-09-04 17:08:47

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

encore moi,
je viens de m'apercevoir que lorsque je lance une synchro de mon serveur OCS par le menu GLPI, et pas par le plugin :    *  Central  >    * Outils >    * OCSNG

J'obtiens la même erreur (en mode debug) :

Fatal error: Cannot unset string offsets in /data/srv/www/glpi/inc/commondbtm.class.php on line 651

PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#7 2008-09-04 18:03:57

remi
GLPI-DEV
From: Champagne
Registered: 2007-04-28
Posts: 7,127
Website

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Et dans les journaux (php_error.log) afin d'avoir le "traceback" complet

++


Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/

Offline

#8 2008-09-05 09:25:22

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

rien de plus :

[05-Sep-2008 09:12:59] PHP Fatal error:  Cannot unset string offsets in /data/srv/www/glpi/inc/commondbtm.class.php on line 651

L'erreur semble se produire que sur certain objet :

Dans le plugin chaque thread qui va rencontrer l'erreur retourne au prompt, avec 1 thread, le script sort de suite, avec X threads, je vais avoir x erreurs avant de retourner au prompt

Dans l'interface GLPI, en synchro manuelle, lorsque j'obtiens l'erreur, la page ne se rafraichit plus.
La barre de progression est bloqué à X%
Si je rafraichit ma page avec un F5, la progression continue, et va encore bloquer une ou plusieurs fois.
A la fin, tout se termine correctement, mais il me reste quelques postes impossible à synchroniser.


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#9 2008-09-05 09:28:56

remi
GLPI-DEV
From: Champagne
Registered: 2007-04-28
Posts: 7,127
Website

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Il faut activer les traceurs (Configuration / Général / Traceurs dans fichiers (SQL, mail, cron...) = Oui) afin d'obtenir une trace détaillée et savoir ou se produit l'erreur.

++


Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/

Offline

#10 2008-09-05 09:41:26

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

ok, je m'en occupe,
par contre je viens de m'apercevoir que j'ai l'erreur quand je tente de deconnecter "les ecrans" des ordinateurs en question.
J'approfondis la chose et je reviens


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#11 2008-09-05 10:16:14

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Je n'ai pas plus d'infos dans les logs avec les traceurs, que ce soit dans glpi/files/_log ou dans /var/log/apache/php_error.

Je pense avoir cerner la provenance de l'erreur.
Il m'est impossible de déconnecter les écrans.
Et lorsque la synchro OCS veut déconnecter un écran -> erreur

Lorsque je choisis un ordinateur et que je déconnecte l'ecran associé -> j'ai l'erreur.
Lorsque je choisis l'ecran en question et que je déconnecte l'ordinateur associé -> j'ai l'erreur.

Je peux correctement connecté un nouvel ecran, mais pas le déconnecter

Cela fonctionne correctement pour les autres périphériques

Dans le cas d'un ordinateur saisie manuellement dans GLPI (et non importé par OCS) je peux correctement déconnecter mes écrans


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#12 2008-09-09 17:42:23

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

pour relancer sur mon problème.

L'erreur se situe sur la deconnection des moniteurs et n'est pas spécifique au plugin.
Dois je réouvrir un post dans la forum approprié ?

L'erreur se situe dans le fichier : glpi/inc/commondbtm.class.php ligne 651 :

unset($input['delete']);

Je suis en PHP5

quand je fais un gettype de la variable $input['delete'], j'ai un type : string.

Or dans la doc de migration PHP4 à PHP5 : http://fr3.php.net/manual/fr/migration5 … atible.php

On peut lire : L'utilisation d'index illégaux sur une chaîne de caractères entraîne maintenant un message E_ERROR au lieu d'un message E_WARNING auparavant. Voici un exemple incorrect : $str = 'abc'; unset($str[0]);.


Je viens de tester en PHP4, cela fonctionne correctement.

Last edited by laur (2008-09-09 17:42:43)


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#13 2008-09-09 17:52:35

wawa
GLPI-DEV
From: Montpellier / France
Registered: 2006-07-03
Posts: 6,019
Website

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

bonjour
je regarde ça demain,

merci beaucoup pour les indications très précises.

walid.

Offline

#14 2008-09-16 09:42:40

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Bonjour,
avez vous pu y jeter un oeil ?


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#15 2009-04-10 10:35:07

muller
Member
Registered: 2009-04-10
Posts: 9

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Bonjours,

J'ai la même erreur lors des synchro manuel

Fatal error: Cannot unset string offsets in /XXXXX//glpi/0.71.5/inc/commondbtm.class.php on line 651

Offline

#16 2009-04-10 10:52:46

remi
GLPI-DEV
From: Champagne
Registered: 2007-04-28
Posts: 7,127
Website

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Désolé, mais je vois vraiment pas ce qui pourrait bloquer dans cette partie de code

649                 if (isset($input['delete'])){
650                     $input['_delete']=$input['delete'];
651                     unset($input['delete']);
652                 }

Un problème spécifique à la version 5.2.0 de php ?

+


Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/

Offline

#17 2009-04-13 22:39:49

muller
Member
Registered: 2009-04-10
Posts: 9

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Je suis pas programmeur en php. Je vois que vous développez en php 5.3.0 RC1 moi je suis en php 5.2.9. Ce problème n'a donc pas de solution actuellement. Est ce qu'il faut que je passe en php 5.1 ?

Offline

#18 2009-04-14 06:04:42

remi
GLPI-DEV
From: Champagne
Registered: 2007-04-28
Posts: 7,127
Website

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Le message à propose de php 5.2.0 concernait laur. En 5.2.9 il ne devrait pas y avoir de problème....

Si vous avez bien, en ligne 651, le code affiché dans mon message précédent, je ne vois pas ce qui pourrait bloquer...

+


Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/

Offline

#19 2009-04-14 14:07:23

muller
Member
Registered: 2009-04-10
Posts: 9

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Je sais pas , en tout cas j'ai toujours ce problème. Que fait exactement cette partie de code ? Intéragie t'il avec la base ? C'est peut être un problème d'accès ? Car d'après ce que je comprend il arrive pas a supprimer la l'élement delete du tableau input ?

Offline

#20 2009-04-14 14:10:55

wawa
GLPI-DEV
From: Montpellier / France
Registered: 2006-07-03
Posts: 6,019
Website

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

ce code s'assure que l'élément deleted existe bien dans le tableau, afin de pouvoir l'enlever

Offline

#21 2009-04-14 14:16:52

muller
Member
Registered: 2009-04-10
Posts: 9

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

A qu'elle moment l'élément deleted est insérer dans le tableau ? Est ce que je dois forcer cet élement  ?

Offline

#22 2009-06-09 18:49:04

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Bonsoir,
je viens de voir avec grande stupéfaction que ça fait une éternité que je n'ai pas réagit sur ce post et aussi sur le forum.

Je vais essayer de mettre à jour php sur le serveur de dev et voir ce que ça donne.


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#23 2009-06-11 15:23:28

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

bien, bizzare
je viens de tester sur un autre serveur en php 5.2.0, même version de .deb que la prod
Un export de la base et de la racine web du serveur de prod du 1er juin

et la ... ça fonctionne ...
la conf de PHP est la même en prod et en dev

Edit : je me suis en plus mélangé les pinceaux.
En fait, la suppression des moniteurs fonctionne lorsque dans la configuration d'OCS l'import des moniteurs est désactivé, et cela ne fonctionne pas lorsque l'import des moniteurs est à "import unique"

Last edited by laur (2009-06-11 17:30:08)


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#24 2009-06-12 11:35:45

laur
Member
Registered: 2007-09-17
Posts: 50

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Bonjour,
je pense pouvoir vous faire recréer le problème :
Dans le configuration du serveur OCS (configuration / mode OCS NG)

Mettre les valeurs suivantes :
Comportement lors de la déconnexion : Suppression
Moniteur : Import Unique

Une fois fait, choisir un ordinateur synchronisé par ce serveur OCS, puis lui déconnecter l'ecran.
L'erreur devrait se produire (il faut peut etre forcer une synchronisation OCS avant de déconnecter)

Si je comprends bien ce qu'il se passe :

On déconnecte l'ecran, donc celui-ci va etre supprimer de GLPI :

Or pour supprimer cet ecran le code suivant est executé :

commondbtm.class.php: ligne 648

$input=doHookFunction("pre_item_delete",$input);
                        if (isset($input['delete'])){
                                $input['_delete']=$input['delete'];
                                unset($input['delete']);
                        }

et ça coince au unset($input['delete']);
Dans le cas de la suppression d'un ecran, la valeur de $input['delete'] est "4"

donc unset($input['delete']); est equivalent à : unset("4");

Ce qui nous renvoie une erreur en PHP5 et plus un warning comme en PHP4 (voir post #12)

Muller avez vous la même config que ci-dessus ?

Arrivez vous a recréer l'erreur avec ces elements ?

Last edited by laur (2009-06-12 11:36:39)


PROD : 0.71.6 - Debian4.0/Apache2.2.3/php5.2.0/Mysql5.0.32

DEV : 0.72 - Debian4.0/Apache2.2/php5/Mysql5

Offline

#25 2009-07-07 12:33:56

muller
Member
Registered: 2009-04-10
Posts: 9

Re: mass_ocs_import 1.2 : Fatal error: Cannot unset string offsets

Bonjour,

Désolé du retard mais j'étais occupé. C'est pour j'ai mis ce problème de côté.

effectivement j'ai la même config

J'ai temporairement résolu le problème en remplaçant  "unset($input['delete']);" par "$input['delete']='';"

Offline

Board footer

Powered by FluxBB