10/10/2018, 10:07
error 1088 khi write file xml trong PHP !Help
Mình mới tìm hiểu về PHP , mong cac bạn chi giáo .
Hiện tại mình đang làm 1 project về game flash . đầu tiên mình load 1 file xml vào flash(AS 3) , sau đó chinh sửa rùi gửi wa PHP dể lưu lại .
đây là những đoan code của mình .
AS :
var phpURL:URLRequest = new URLRequest("http://abcxyz/loadxml2.php");
phpURL.method = URLRequestMethod.POST;
phpURL.data = myXML;
phpURL.contentType = "text/xml";
var sendLoader:URLLoader = new URLLoader();
sendLoader.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
sendLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
sendLoader.load(phpURL);
PHP :
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
// $xml = xmldoc($GLOBALS["HTTP_RAW_POST_DATA"]);
$xml = $GLOBALS["HTTP_RAW_POST_DATA"];
$file = fopen("http://abcxyz/Acc.xml","wb");
fwrite($file, $xml);
fclose($file);
// echo("<status>File saved.</status>");
echo($GLOBALS["HTTP_RAW_POST_DATA"]);
}
?>
file Acc.xml cua mình trên sever là 644 .
khi chay ct minh gap cai lỗi là :
Error #1088: The markup in the document following the root element must be well-formed. .
ai có thể giúp mình dc ko . cám ơn trước nhiều .
Hiện tại mình đang làm 1 project về game flash . đầu tiên mình load 1 file xml vào flash(AS 3) , sau đó chinh sửa rùi gửi wa PHP dể lưu lại .
đây là những đoan code của mình .
AS :
var phpURL:URLRequest = new URLRequest("http://abcxyz/loadxml2.php");
phpURL.method = URLRequestMethod.POST;
phpURL.data = myXML;
phpURL.contentType = "text/xml";
var sendLoader:URLLoader = new URLLoader();
sendLoader.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
sendLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
sendLoader.load(phpURL);
PHP :
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
// $xml = xmldoc($GLOBALS["HTTP_RAW_POST_DATA"]);
$xml = $GLOBALS["HTTP_RAW_POST_DATA"];
$file = fopen("http://abcxyz/Acc.xml","wb");
fwrite($file, $xml);
fclose($file);
// echo("<status>File saved.</status>");
echo($GLOBALS["HTTP_RAW_POST_DATA"]);
}
?>
file Acc.xml cua mình trên sever là 644 .
khi chay ct minh gap cai lỗi là :
Error #1088: The markup in the document following the root element must be well-formed. .
ai có thể giúp mình dc ko . cám ơn trước nhiều .
Bài liên quan
ma lỗi đó đã ko còn , nhưng phát sinh 1 lỗi mới :
fopen(http://www.do-carrier.co.jp/mobile_d.../d25/Acc.xml): failed to open stream: HTTP wrapper does not support writeable connections. in
<b>/usr/local/apache/htdocs/mobile_debug/SocialAppli/Test/d25/loadxml2.php</b>
on line
Tham khảo: http://vn2.php.net/manual/en/wrappers.http.php
Nếu file này nằm trên host của bạn thì dùng $_SERVER['DOCUMENT_ROOT'] để lấy đường dẫn local của nó. Còn nếu file trên host khác thì ... hỏi mấy anh hacker.
1)echo($GLOBALS["HTTP_RAW_POST_DATA"]);
để kiểm tra xem có hợp khuân dạng hay không. Hoặc lưu file dạng text sau đó dùng browser bất kỳ mở ra sẽ biết sai cấu trúc đoạn nào.
2)Đường dẫn file lưu $file = fopen("http://abcxyz/Acc.xml","wb"); mình nghĩ không ổn. Mỗi host cấu hình bảo mật khác nhau nên mình không dám khẳng định là đường dẫn đó sai, nhưng bạn có thể tham khảo các ví dụ về lưu file sẽ có gợi ý tốt hơn về đường dẫn trên host.
Chúc thành công.