XML文件未通过托管服务器上的PHP脚本进行更新

XML文件未通过托管服务器上的PHP脚本进行更新

问题描述:

内容未在托管服务器上的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中,或者我必须联系我的托管服务提供商。

HTTP服务器通常与用户一起运行,无权修改服务器上的文件。大多数Web应用程序存储可以在数据库中修改的任何数据。

如果你想拥有由Web服务器文件或目录可写,你可以尝试:

  • 使父目录写入到Web服务器。
  • 运行一个小的PHP脚本创建的文件或目录
  • 恢复的目录

原来的许可之后,你可以从你的原始PHP文件写入文件。

我想你会得到一个500错误,如果你的PHP脚本或其父目录是世界可写的。根据您的托管服务提供商,如果您为服务器写入的任何文件创建单独的目录,则可能会有效。

+0

实际上,我保存数据的xml与我加载的xml不同,它在代码'sample.xml'中,脚本工作得很好,感谢以上信息 – 2015-02-24 10:44:41