2015-02-23 82 views
0

內容未在託管服務器上的xml文件中更新。XML文件未通過託管服務器上的PHP腳本進行更新

<?php 
$xml = new DOMDocument('1.0', 'utf-8'); 
$xml->formatOutput = true; 
$xml->preserveWhiteSpace = false; 
$xml->load('rates.xml'); 

//Get item Element 
$element = $xml->getElementsByTagName('rates')->item(0); 

//Load child elements 
$name = $element->getElementsByTagName('gold')->item(0); 
$comment = $element->getElementsByTagName('silver')->item(0); 

//Replace old elements with new 
$element->replaceChild($name, $name); 
$element->replaceChild($comment, $comment); 
?> 
<body><hr> 
<form method="POST" action='' autocomplete="off"> 
    Enter Gold Rate (Rs/10g) : <input required type="text" value="<?php echo $name->nodeValue ?>" name="gold-rate" pattern="^[0-9]{5}$" placeholder="for 10g"></br></br> 
Enter Silver Rate (Rs/kg) : <input required type="text" value="<?php echo $comment->nodeValue ?>" name="silver-rate" pattern="^[0-9]{5}$" placeholder="for 10g"/></br></br> 
<input name="submit" type="submit" /> 

</form><hr> 
</body> 
<?php 


if (isset($_POST['submit'])) 
{ 
$name->nodeValue = $_POST['gold-rate']; 
$comment->nodeValue = $_POST['silver-rate']; 
htmlentities($xml->save('sample.xml')); 

} 


?> 

上面的代碼是關於表單提交的兩個值,我試圖保存在XML中,然後在其他地方顯示它。在本地主機上獲得成功,但在服務器上,這個PHP腳本無法更改我的XML文件的數據。我設置的文件夾的權限是755,所有文件都是644.試圖更改權限,最後導致500內部錯誤。由於這看起來是服務器端安全問題,我不知道最終尋找解決方案的位置。 服務器運行在PHP 5.6上,嘗試了來自其他用戶的解決方案,但沒有成果。我應該改變一些在PHP中,或者我必須聯繫我的託管服務提供商。

回答

0

HTTP服務器通常與用戶一起運行,無權修改服務器上的文件。大多數Web應用程序存儲可以在數據庫中修改的任何數據。

如果你想擁有由Web服務器文件或目錄可寫,你可以嘗試:

  • 使父目錄寫入到Web服務器。
  • 運行一個小的PHP腳本創建的文件或目錄
  • 恢復的目錄

原來的許可之後,你可以從你的原始PHP文件寫入文件。

我想你會得到一個500錯誤,如果你的PHP腳本或其父目錄是世界可寫的。根據您的託管服務提供商,如果您爲服務器寫入的任何文件創建單獨的目錄,則可能會有效。

+0

實際上,我保存數據的xml與我加載的xml不同,它在代碼'sample.xml'中,腳本工作得很好,感謝以上信息 – 2015-02-24 10:44:41

相關問題