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 .
lenggiauit viết 12:21 ngày 10/10/2018
Có lẽ cần dùng DOM ...
theunheart viết 12:15 ngày 10/10/2018
rõ hơn 1 chút 1 dc hem bạn . mới lần đầu động đến php và XML . mấy đoạn code đó minh cũng xem hưỡng dẫn trên mạng .
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
rootkit viết 12:12 ngày 10/10/2018
quá rõ rồi ,dùng "php dom" ,cụ thể thì vào google sẽ rõ
thuyduongcd viết 12:08 ngày 10/10/2018
với giao thức htttp, fopen chỉ có thể đọc (read-only) chứ không thể ghi.
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.
Katsumoto viết 12:20 ngày 10/10/2018
Theo lỗi in ra mình đoán là dữ liệu XML không hợp khuân dạng.
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.
Bài liên quan
0