Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Users
    • Search

    PHP-Fehler beim Import

    Betrieb
    2
    9
    2026
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      frankn last edited by

      Hallo zusammen,

      ich habe die aktuellste Version von i-doit auf einem Server mit Scientific Linux 6.5 installiert.

      DAs Interface sieht auch gut aus, soweit keine Probleme. Ich habe auf 2 Client-Computern mit Windows XP die XML-Datei erzeugt, kann diese aber nicht importieren.

      Wenn ich den Import über die Web-Oberfläche probiere, kommen nur die folgenden Zeilen:

      • Logging in..

        • Connected to mandator: 1 (Aichtal)
          [2014-10-01 13:48:47] NOTICE: i-doit import
          [2014-10-01 13:48:47] NOTICE: Import handler initialized at 2014-10-01 13:48:47

        Wenn ich den Import über das Script mache, dann wird folgende PHP-Fehlermeldung angzeigt:

        • Logging in..
        • Connected to mandator: 1 (Kundenname)
          [2014-10-01 13:37:11] NOTICE: i-doit import
          [2014-10-01 13:37:11] NOTICE: Import handler initialized at 2014-10-01 13:37:11
          PHP Fatal error:  Call to undefined function mb_detect_encoding() in /var/www/html/i-doit/src/handler/isys_handler_import.class.php on line 247

        Wenn ich in das Script schaue, dann lautet die Zeile 247:

        if(mb_detect_encoding($l_file) == 'UTF-8')

        Vermutlich wird die Variable l_file schuld an der Misere sein… aber tiefer bin ich nicht eingestiegen.

        Wie kann ich hier vorgehen? Kann jemand helfen?

        Vielen Dank im voraus und viele Grüße,

        Frank

      1 Reply Last reply Reply Quote 0
      • LFischer
        LFischer last edited by

        Hallo Frank,

        der Fehler wird dir dargestellt weil deine PHP Umgebung die "mb_detect_encoding" Funktion nicht finden kann. Diese Funktion ist Bestandteil der "Multibyte String" Bibliothek ("php-mbstring") und wird benötigt um herauszufinden ob der Import mit UTF-8 kodierten Daten arbeitet oder nicht.

        Du müsstest diese Bibliothek nachträglich installieren.

        Viele Grüße
        Leo

        1 Reply Last reply Reply Quote 0
        • F
          frankn last edited by

          Hallo Leo,

          vielen Dank, das habe ich gemacht, nun kommt leider der nächste Fehler:

          • Logging in..

            • Connected to mandator: 1 (Kunde)
              [2014-10-02 08:59:05] NOTICE: i-doit import
              [2014-10-02 08:59:05] NOTICE: Import handler initialized at 2014-10-02 08:59:05
              [2014-10-02 08:59:05] NOTICE: Load import file imports/pc-075-1001592.xml.
              PHP Fatal error:  Call to a member function attributes() on a non-object in /var/www/html/i-doit/src/classes/import/handler/isys_import_handler_cmdb.class.php on line 720

            Vielleicht bin ich zu wenig PHP-erfahren… generell laufen müsste das doch in dieser Umgebung, oder?  (Scientific Linux 6.5, 64 Bit, genügend RAM und Disk Space).

            Ich habe probiert, den apt-get-Befehl aus dem Installationsabschnitt im Wiki auf "yum install ... " umzusetzen, was meistens auch geklappt hat. Die ganzen PHP-Pakete sind bei Scientific Linux ohne die Zahl 5, sonst hat es fast gepasst. Eine Ausnahme gab es, die ich mir angestrichen habe: Das Paket libapache2-mod-php5 habe ich hier nicht gefunden.

            Hast Du mir noch einen Tipp?

            Vielen Dank im Voraus und viele Grüße,

            Frank

          1 Reply Last reply Reply Quote 0
          • F
            frankn last edited by

            Kleiner Nachtrag:  als "Konsolenmensch" probiere ich diese Lösung bevorzugt… im Web-Interface hat der Import jetzt gerade gelappt nach der Installation von php-mbstring.

            Vielen Dank und viele Grüße,

            Frank

            1 Reply Last reply Reply Quote 0
            • LFischer
              LFischer last edited by

              Hallo Frank,

              was für eine PHP Version ist denn im Einsatz? Das lässt sich über die Konsole mit dem Befehl "php -v" herausfinden.
              Wir setzen mindestens die Version 5.3.8 voraus - ideal wäre natürlich eine etwas aktuellere Version (5.4.x oder 5.5.x).

              Der beschriebene Fehler könnte allerdings auch aufgrund einer beschädigten XML Datei auftreten. Könntest du überprüfen ob die Datei "imports/pc-075-1001592.xml" über die folgende Struktur verfügt:

              
               <isys_export><datetime>2014-10-02 14:39:02</datetime>
                    <mandator language="de" id="1"></mandator>
                    <type>isys_export_type_xml</type></isys_export> 
              

              Speziell geht es um die Zeile <mandator language="de" id="1"></mandator>… Laut dem PHP Skript existiert das "mandator" Tag oder dessen Attribute nicht.

              Viele Grüße
              Leo

              1 Reply Last reply Reply Quote 0
              • F
                frankn last edited by

                Hallo Leo,

                entschuldige bitte die späte Rückmeldung, mich hatte es ziemlich erwischt.

                Unsere PHP-Version ist:
                PHP 5.3.3 (cli) (built: Sep 30 2014 05:09:15)

                Ich habe "nur" die normalen Scientific-Linux-Repositories konfiguriert. Sollte ich dann das PHP manuell überschreiben und auf eine höhere Version aktualisieren?

                Aber auch die XML-Datei hat wohl ihre Probleme, zumindest sieht sie nicht so aus, wie es von Dir geschildert wurde… ich füge mal den Anfang ein:

                
                ]>
                 <computer><hostname>pc-075</hostname>
                <datetime>02.10.2014 11:53:20</datetime>
                
                 <component><type>Model</type>
                <name>Model</name>
                <attr><name>Manufacturer</name><value>Hewlett-Packard</value></attr>
                <attr><name>Model</name><value>HP xw4300 Workstation</value></attr>
                <attr><name>SystemType</name><value>X86-based PC</value></attr></component></computer> 
                

                Danke nochmal und viele Grüße,

                Frank

                1 Reply Last reply Reply Quote 0
                • LFischer
                  LFischer last edited by

                  Hallo Frank,

                  gar kein Problem! Gut, das du den Anfang der XML Datei eingefügt hast - ich dachte die ganze Zeit wir reden über die von i-doit selbst erstellten XML Dateien 🙂 Aber das sieht mir eher nach H-Inventory aus. Hm, das macht es etwas schwieriger… Mir ist hier kein Fehler bekannt.

                  Die PHP Umgebung auf einen aktuellen Stand zu heben ist aber sicherlich eine gute Idee. Für i-doit empfehlen wir eine Version über 5.3.8 - am besten auf PHP 5.4.x oder 5.5.x (PHP 5.3.x wird nicht mehr weiter entwickelt).

                  Viele Grüße
                  Leo

                  1 Reply Last reply Reply Quote 0
                  • F
                    frankn last edited by

                    Hallo Leo,

                    es scheint zu funktionieren. Ich habe PHP mit einem anderen Repository auf 5.4 aktualisiert, habe drei XML-Dateien erstellt und diese importiert.

                    Du hast Recht, ich habe das mit hinventory gemacht. Spricht da was dagegen? Ist das ok?  Sieht eigentlich ganz gut aus, es sind 3 Desktops mit jeder Menge Applications enthalten. Nur was nicht funktioniert hat ist, das ganze Remote zu machen, also in die Datei computer.txt eine Remote-Maschine einzutragen. Aber bei 28 PCs ist das handelbar, dass ich überall kurz vor Ort gehe.

                    Danke für die Hilfe und viele Grüße,

                    Frank

                    1 Reply Last reply Reply Quote 0
                    • LFischer
                      LFischer last edited by

                      Hallo Frank,

                      nein das ist gar kein Problem 🙂 Schließlich unterstützen wir die H-Inventory XML Dateien. Freut mich zu lesen, das es nun funktioniert! Bezüglich der Remote-Problematik kann ich leider nicht unterstützen - das liegt dann wohl an H-Inventory.

                      Viele Grüße
                      Leo

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post