繁体   English   中英

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

[英]XML file not updating through php script on hosting server

内容服务器上的xml文件中未更新内容。

<?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文件中写入文件。

如果您的PHP脚本或其父目录是全局可写的,我猜您会收到500错误。 根据您的托管服务提供商,如果您为服务器写入的任何文件创建单独的目录,它可能会起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM