PDA

Просмотр полной версии : Генерация php XML,который загузится во flash


offlight
25.09.2007, 23:23
Криво работает загрузка во flash xml, который генерируется php. Если в php файле один xml без операторов - всё ок, но как только появляются операторы - флэш отказывается его читать.
Я попробовал грузить такой xml в браузер - всё ок. Вставил результат генерации в статический файл - флэш загрузил без проблем.
Похоже flash почему-то не может определить, что это xml и дальше с ним не работает. что за фигня?
пробовал вставлять заголовок <php header("Content-type: text/xml") ... лучше не стало. стало хуже. В чем причина?

offlight
26.09.2007, 00:19
Догнал в чем проблема. Я использовал метод xml load("file.php"). В этом случае файл не передавался на обработку серверу ни из флэша ни из браузера. Пришлось написать load("http://localhost/file.php") и заработало.
Это сервер неправильно настроен? как настроить правильно? или так должно быть?

etc
26.09.2007, 00:28
Так и должно быть.

formid
07.10.2007, 17:56
похожая проблема. Хочу сделать колонку новостей, отдельная форма в которую вводится новая новость, информация передаётся в пхп, затем пхп генерирует хмл из которого флеш берет инфу. При запуске свф файла всё ок, если открывать хтмл прям из папки тоже всё нормально. Но если открыть его через локалхост и попробывать добавить новость, то при следующей загрузке новости не обновляются, даже если хмл удалить вообще он всё равно выведет загруженный раньше новости

код флеша:
var arr_new:Array = [];
var glyb:Number = 0;
var news_prew:XML = new XML();
news_prew.load("news.xml");
news_prew.onLoad = function() {
for (var i = 0; i<2; i++) {
arr_new[i] = attachMovie("newss", "newss"+i, glyb++, {_x:630, _y:20+i*40});
arr_new[i].nazv.text = news_prew.firstChild.childNodes[i].attributes['name'];
arr_new[i].dat.text = news_prew.firstChild.childNodes[i].attributes['data'];
arr_new[i].tex.text = news_prew.firstChild.childNodes[i].childNodes[0].nodeValue;
}
};

форма
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Enter news</title>
</head>
<body>
<form action="./news.php" method="POST">
<input type="text" name="name" value="enter name of the news"><br>
<textarea name="telo" cols="30" rows="8" wrap="virtual">enter news</textarea><br>
<input type="submit" value="go!" name="query">
</form>
</body>
</html>

пхп
<?php
if(!isset($_POST['query'])) {
exit("error");
}
else {
if (($_POST['name']==="")or($_POST['telo']==="")) {
exit("error");
}
else {
$col=1;
$strsize=strlen($_POST['telo']);
switch ($strsize){
case $strsize>60 : $col=3; break;
case $strsize>30 : $col=2; break;
}
$date=getdate();
$date=$date['mday'].".".$date['mon'].".".$date['year'];
echo $date."<br>";
echo $_POST['name']."<br>";
echo $_POST['telo'];
if(!file_exists("news.xml")) {
$fd=fopen("news.xml","w");
fwrite($fd,"<news_page></news_page>");
fclose($fd);
}
$fd=fopen("news.xml","r+");
if(!$fd) exit("<br>error, file ne otkrivaetsya");
else {
$query ="<news".$date." data=\"".$date."\" name=\"".$_POST['name']."\" col=\"".$col."\">".$_POST['telo']."</news".$date.">";
fseek($fd,11,SEEK_SET); // dobavlyaem novost' v nachalo fayla...
while (!feof($fd)){
$hash=fread($fd,5120);
}
fseek($fd,11,SEEK_SET);
fwrite($fd, $query);
fwrite($fd, $hash);
fclose($fd);
echo "<br>novost dobavlena";
}
}
}
?>

исходник флеш http://slil.ru/24950825