2010-07-29 60 views
0

我試圖插入數據到XML使用PHP domdocument。然而,當我按下輸入時,它只顯示一個空白頁面顯示沒有錯誤。我究竟做錯了什麼?插入到XML顯示空白頁

更新:

<?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

打開錯誤報告,並檢查錯誤日誌。這裏沒有'@'錯誤抑制,所以如果發生錯誤,它應該被記錄... – ircmaxell 2010-07-29 18:53:24

回答

3

$title-ar是非法的變量名。這意味着'變量$title減去常數ar,這將使其成爲一個表達式,並且您不能將任何東西指派給表達式(=)。如果在開發時打開display_errors,它會告訴你關於分析錯誤的信息。

+0

我確實打開了顯示錯誤,但不知何故,它沒有顯示任何內容,只是一個空白頁。無論如何,我糾正了這些錯誤,但它只顯示空白頁面。 – input 2010-07-29 19:09:44

+0

您無法在腳本中啓用顯示分析錯誤。它應該在php.ini或.htaccess中執行,因爲在解析錯誤時,腳本中的任何內容都不會被處理,包括更改'display_errors'的設置。接下來的錯誤是'$ xmldoc-> createElement('title xml:lang =「ar」');'會導致一個未捕獲的異常,因爲它是一個非法的標記名(對屬性使用 - > setAtttribute)。看到我們的問題:在繼續這條路線之前,您應該**修正**顯示錯誤,我們不是您的語法/皮棉跳棋。 – Wrikken 2010-07-29 19:17:28

+0

好的,謝謝。我檢查了錯誤日誌。在我糾正title-ar錯誤之前,錯誤是'[Thu Jul 29 21:45:37 2010] [error] [client 127.0.0.1] PHP解析錯誤:語法錯誤,意外的'='in [文件夾] /insert.php在第13行,referer:http:// localhost/index.php。在我糾正它後,錯誤是[[Thu Jul 29 21:56:33 2010] [錯誤] [客戶端127.0.0.1] PHP解析錯誤:語法錯誤,意外'='在[文件夾] \\ insert.php上第15行,referer:http:// localhost/index.php第15行是'$ title_ar = $ _POST [「title_ar」];'。我無法弄清楚這條線還有什麼問題。 – input 2010-07-29 19:21:49