内容未在托管服务器上的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中更改某些内容,或者我是否必须联系我的托管服务提供商。
答案 0 :(得分:0)
HTTP服务器通常在没有权限的情况下与用户一起运行,以修改服务器上的文件。大多数Web应用程序都存储可以在数据库中修改的任何数据。
如果您希望Web服务器可以写入文件或目录,可以尝试:
之后,您可以从原始的php文件中写入文件。
如果您的php脚本或其父目录是全局可写的,我猜您会收到500错误。根据您的托管服务提供商,如果您为服务器写入的任何文件创建单独的目录,它可能会起作用。