simplexml-Bibliothek

  • Hallo Zusammen


    habe folgendes problem
    nutze das CMS von EQDKP
    und soweit läuft es allerdings wenn ich mich einloge und in den Adminbereich gehe habe ich nur noch eine weiße seite.
    Der Support meinte das liegt an dem server weil kein


    simplexml-Bibliothek installiert ist


    habe nun versucht das programm zu finden bzw ne anleitung aber null
    wäre nett wenn einer mir da link geben kann oder irgendwas in der art


    My System
    Debain Lenny PHP5

  • Sieht so aus als ob der Support für SimpleXML nicht aktiviert ist. Guck mal in die phpinfo(). Bei mir (siehe Anhang) ist der Support aktiviert. Ich nutze hier die Standardkonfiguration von Debian Lenny.


    Ist der Support deaktiviert, muss das irgendwo in der php.ini definiert sein.

  • Da steht das der Support aktiviert ist. Das Problem muss also woanders liegen.
    Ist das auch die richtige phpinfo? Wenn FastCGI Verwendet wird, kann es sein, dass pro Domain verschiedene PHP Konfigurationen greifen.


    Probiere es doch mal mit einem eigenen Schnipsel aus. http://de.php.net/manual/de/simplexml.examples-basic.php
    Dann siehste ja, ob PHP SimpleXML kann oder nicht...

  • Also entweder bin ich zu dumm oder der server mag mich nicht -.-



    Also
    http://leguz.game-host.org
    [LEFT]Ist die Seite um die es geht.
    http://leguz.game-host.org/info.php
    Link der PHPINFO


    So nun habe ich nen ordner angelegt /test/


    http://leguz.game-host.org/test/


    Inhalt


    index.php

    test.xml

    PHP
    <?xml version="1.0" encoding="UTF-8"?>
    <text></text>


    Ergebnis weiße seite XD schwarz wäre ja cooler
    [/LEFT]

  • Edetierte Index.php
    [PHP]<?php


    error_reporting(E_ALL);


    $file = "test.xml";
    $xml = simplexml_load_file($file);
    // schreibzugriff wenn angefordert und ein section-name angegeben wurde
    if (@$_POST['access'] == "write" && strlen(@$_POST['name']) > 0) {
    // section erstellen und wert zuweisen
    $section = $xml->addChild("section", @$_POST['value']);
    // attribut name festlegen, wir wollen den tag ja später wiedererkennen
    $section->addAttribute("name", $_POST['name']);
    // xml in die datei schreiben
    file_put_contents($file, $xml->asXml());
    // damit wir es auch gleich wieder auslesen können, ob es geklappt
    // hat, die datei gleich nach dem schreiben wieder laden
    $xml = simplexml_load_file($file);
    }
    // lesezugriff auf alle section's'
    for ($i = 0; $i < count($xml->section); ++$i) {
    // attribute auslesen
    $attr = $xml->section[$i]->attributes();
    // ist der name der gesuchte?
    if ($attr->name == @$_POST['name']) {
    // löschen dieses elements angefordert?
    if (@$_POST['access'] == "delete") {
    // element löschen
    unset($xml->section[$i]);
    // und neue struktur speichern
    file_put_contents($file, $xml->asXml());
    } else {
    // nicht löschen? dann wohl nur lesen
    $value = $xml->section[$i][0];
    }
    // aus der schleife aussteigen
    break;
    }
    }
    ?>
    <html><head><title></title></head><body>
    <form action="" method="post">
    Section <input name="name" type="text" value="<?=@$_POST['name']?>" />
    <input checked name="access" type="radio" value="read" /> lesen
    <input name="access" type="radio" value="write" /> schreiben
    <input name="access" type="radio" value="delete" /> löschen
    <input type="submit" />
    <textarea name="value"><?=@$value?></textarea>
    </form>
    </body></html>[/PHP]



    ergebins nix

  • System Debain Lenny
    PHPVersion Php 5
    Admintool SysCp


    sollte man was im SysCp einstellen =?

  • Hallo,


    was suchen denn die ganzen Unterdrücker (@) im Code? Da bringt es auch nix, wenn Du das Error Reporting anschaltest. Und wenn Du Error Reporting an hast, solltest Du auch entsprechend display_errors in der PHP.ini anschalten, sonst hat das keinen wert. ;) Ebenfalls aufgefallen ist mir, dass die Methode nicht $obj->asXml() heißt, sondern $obj->asXML(). Vermutlich wird die Fehlermeldung wegen der falsch geschrieben Methode wegen dem display_errors OFF nicht angezeigt.

  • Zitat von sim4000;14964

    Die Unterdrücker verhindern nur die Anzeige der ganzen Notice Warnungen, wegen undeklarierter Funktionen. Das sollte nichts damit zu tun haben, dass die fehler nicht ausgegeben werden.


    Und Groß-/Kleinschreibung ist bei PHP Funktionen sch*** egal. :)


    Beides ist Pfusch, beides erschwert es unnötig zu debuggen, besonders dann, wenn man nicht dazu allein in der Lage ist und den Code anderen zum helfen präsentiert. Außerdem ist Display Error ausgeschaltet, was diese Unterdrückerei noch unnötiger macht.


    Aber macht ihr Beiden mal, ihr bekommt das schon hin. ;)

  • koweto


    THX
    nach dem ich php.ini fehlermeldung angestellt habe könnte ich schauen was der fehler ist


    grund vhost
    php_admin_flag zend.ze1_compatibility_mode Off


    nachdem ich diese auch umgestellt habe wird das script ausgeführt =)


    tausend dank