2010-07-29 5 views
0

j'essaye d'insérer des données dans le xml using le domdocument de php. Cependant, quand je tape Enter, il affiche simplement une page vierge ne montrant aucune erreur. Qu'est-ce que je fais mal?l'insertion au xml affiche une page blanche

mise à jour:

<?php 

error_reporting(E_ALL); 
ini_set("display_errors", 1); 


    $xmldoc = new DOMDocument(); 
    if(file_exists('test.xml')){ 
    $xmldoc->load('test.xml'); 
    } else { 
    $xmldoc->loadXML('<root/>'); 
    } 

    /*get the values of the html: */ 
    $title_ar = $_POST["title_ar"]; 
    $title_en = $_POST["title_en"]; 

    $intro = $_POST["intro"]; 

    $v_ar = $_POST["v_ar"]; 
    $v_en = $_POST["v_en"]; 
    $v_tren = $_POST["v_tren"]; 

    /*get the values of the html: */ 

    $root = $xmldoc->firstChild; 

    if ($xmldoc->getElementsByTagName("title")->length == 0) { 
    /* Arabic */ 
    $el_title_ar = $xmldoc->createElement('title'); 
    $root->appendChild($el_title_ar); 

    $text_title_ar = $xmldoc->createTextNode($title_ar); 
    $el_title_ar->appendChild($text_title_ar); 
    /* Arabic */ 

    /* English */ 
    $el_title_en = $xmldoc->createElement('title'); 
    $root->appendChild($el_title_en); 

    $text_title_en = $xmldoc->createTextNode($title_en); 
    $el_title_en->appendChild($text_title_en); 
    /* English */ 
    } 
    else if ($xmldoc->getElementsByTagName("introduction")->length == 0) { 
    $el_intro = $xmldoc->createElement('introduction'); 
    $root->appendChild($el_intro); 

    $el_intro_para = $xmldoc->createElement('para'); 
    $el_intro->appendChild($el_intro_para); 

    $text_intro = $xmldoc->createTextNode($intro); 
    $el_intro_para->appendChild($text_intro); 
    } 

    $verse = $xmldoc->createElement('verse'); 
    $root->appendChild($verse); 


    /* Arabic */ 
    $verse_p = $xmldoc->createElement('p'); 
    $verse->appendChild($verse_p); 

    $v_ar_p = $xmldoc->createTextNode($v_ar); 
    $verse_p->appendChild($v_ar_p); 
    /* Arabic */ 


    /* English Translation*/ 
    $verse_trans = $xmldoc->createElement('trla'); 
    $verse->appendChild($verse_trans); 

    $v_en_trans = $xmldoc->createTextNode($v_en); 
    $verse_trans->appendChild($v_en_trans); 
    /* English Translation*/ 


    /* English Transliteration*/*/ 
    $verse_translit = $xmldoc->createElement('trli'); 
    $verse->appendChild($verse_translit); 

    $v_en_translit = $xmldoc->createTextNode($v_tren); 
    $verse_translit->appendChild($v_en_translit); 
    /* English Transliteration*/ 

    /*Save the XML File*/ 
    $xml->formatOutput = true; 
    $xmldoc->save('test.xml'); 

    header("Location: index.php"); 
?> 
+0

Activez le rapport d'erreurs et vérifiez vos journaux d'erreurs. Il n'y a pas de suppression d'erreur '@', donc si une erreur survient, elle devrait être enregistrée ... – ircmaxell

Répondre

3

$title-ar est un nom de variable illégale. Cela signifierait «la variable $title moins la constante ar, ce qui en ferait une expression, et vous ne pouvez pas attribuer (=) quelque chose à une expression. Vous feriez bien d'allumer display_errors en cours de développement, il vous aurait parlé de l'erreur d'analyse.

+0

J'ai allumé les erreurs d'affichage, mais de toute façon ça ne montre rien, juste une page blanche. de toute façon, j'ai corrigé ces erreurs, pourtant il n'affiche rien sauf une page blanche. – input

+0

Vous ne pouvez pas activer l'affichage de l'erreur d'analyse dans un script lui-même. Il devrait aller soit dans php.ini ou .htaccess, car sur une erreur d'analyse, rien dans votre script ne sera traité, y compris le réglage pour changer 'display_errors'. Les erreurs suivantes sont les suivantes: $ xmldoc-> createElement ('title xml: lang = "ar"'); 'provoque une exception non interceptée car il s'agit d'une variable illicite (use -> setAtttribute pour les attributs). Voir notre problème: vous devez ** corriger ** l'affichage des erreurs avant de continuer sur cette route, nous ne sommes pas vos vérificateurs syntaxe/peluches. – Wrikken

+0

ok, merci. J'ai vérifié le journal des erreurs. avant que je corrigé l'erreur title-ar l'erreur était '[Jeu Jul 29 21:45:37 2010] [erreur] [client 127.0.0.1] erreur PHP Parse: erreur de syntaxe, inattendue '=' dans [dossier] /insert.php à la ligne 13, référent: http: // localhost/index.php'. après je l'ai corrigé, l'erreur est "[Jeu Jul 29 21:56:33 2010] [erreur] [client 127.0.0.1] Erreur PHP Parse: erreur de syntaxe, inattendue" = "dans [dossier] \\ insert.php sur ligne 15, référence: http: // localhost/index.php' ligne 15 est '$ title_ar = $ _POST [" title_ar "]; Je ne peux pas comprendre ce qui ne va pas avec cette ligne. – input

Questions connexes