Autor Zpráva
COBIS
Profil *
Dobrý den, pomoci PHP ukládám data (zaslaná Flashem) do XML. Na testovacím serveru vše funguje na druhem serveru už ne. Nějak nechce fungovat metoda save(); (jakoby se PHPčko nemohlo dovolat souboru scoreboard.xml i když tento soubor se nachází ve stejném adresáři jako PHP script). Netuší někdo čím by to mohlo být?

<?php

$nick = $_POST["nick"];
$time = $_POST["time"];
$timeString = $_POST["timeString"];
$countStroke = $_POST["countStroke"];
$id = $_POST["id"];

$fileName = "scoreboard.xml";
$fp = fopen($fileName, "rb") or die("Nemlze otev&oslash;ít soubor...");
$fileString = fread($fp, filesize($fileName));

$xml = new DOMDocument();
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$xml->loadXML($fileString) or die("Error");

$root = $xml->documentElement;

$newItem = $xml->createElement("item");

$attributeNick = $xml->createAttribute("nick");
$newItem->appendChild($attributeNick);

$textNick = $xml->createTextNode($nick);
$attributeNick->appendChild($textNick);

$attributeTime = $xml->createAttribute("time");
$newItem->appendChild($attributeTime);

$textTime = $xml->createTextNode($time);
$attributeTime-> appendChild($textTime);

$attributeTimeString = $xml->createAttribute("timeString");
$newItem->appendChild($attributeTimeString);

$textTimeString = $xml->createTextNode($timeString);
$attributeTimeString->appendChild($textTimeString);

$attributeCountStroke = $xml->createAttribute("countStroke");
$newItem->appendChild($attributeCountStroke);

$textCountStroke = $xml->createTextNode($countStroke);
$attributeCountStroke->appendChild($textCountStroke);

$attributeId = $xml->createAttribute("id");
$newItem->appendChild($attributeId);

$textId = $xml->createTextNode($id);
$attributeId->appendChild($textId);

$root->appendChild($newItem);

echo $xml->saveXML();
$xml->save("scoreboard.xml");

?>
Majkl578
Profil
Co metoda DOMDocument::save vrací? Manuál říká, že při chybě je to FALSE. Oprávnění k zápisu do souboru jsou nastavena?
COBIS
Profil *
Dobrý den, toto je můj první skript v PHP. Takže ani pořádně netuším jak vypsat návratovou hodnotu metody save() ale zkoušel jsem to takto: $xml->save("scoreboard.xml") or die("Error"); a PHP vypíše Error takže předpokládám, že návratová hodnota je FALSE.
V prohlížeči PHP vypíše toto: Warning: DOMDocument::save(scoreboard.xml) [domdocument.save]: failed to open stream: Permission denied in… nahlédnou můžete zde.
Rád bych se zeptal kde a jak se nastaví oprávnění pro zápis do souboru.
Beavis
Profil
COBIS:
Permission denied in ...
- tzn. skript nemůže zapisovat do souboru, nejsou nastavena příslušná přístupová práva, jak již psal Majkl578.
COBIS
Profil *
Díky vyřešeno.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0