Archief - /XML/AS3 vraag, .xml werkt, .php niet

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

tynoesj

Legacy Member
Ik denk wel dat dit hier thuishoort...

Ik las ergens een tutorial om xml in te lezen via AS3. De persoon daar gebruikte gewoon:
Code:
xmlLoader.load(new URLRequest("http://www.tinusvandevelde.com/bierhuis/bierhuis.[U]php[/U]"));

Wanneer ik dit deed met een .php file kreeg ik volgende error:
Code:
TypeError: Error #1088: De opmaak in het document die volgt op het hoofdelement moet correct zijn samengesteld.
	at be.waterhuis::bierhuis/LoadXML()
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at flash.net::URLLoader/onComplete()

Terwijl de broncode van http://www.tinusvandevelde.com/bierhuis/bierhuis.php hetvolgende geeft:
Code:
<bierhuis><inhoud> 
<titel>Welkom</titel> 
<tekst>Welkom</tekst> 
</inhoud> 
<inhoud> 
<titel>Hey</titel> 
<tekst>Hey</tekst> 
</inhoud> 
</bierhuis>

De php file:
PHP:
<?php
$link = mysql_connect("localhost", "deb4564n2_bier", "IL8neXK3");
mysql_select_db("deb4564n2_bier");

$query = "SELECT * FROM `nieuws`";
$results = mysql_query($query);

echo '<?xml version="1.0" encoding="utf-8"?>';
echo "<bierhuis>\n";

while($line = mysql_fetch_assoc($results)){
	echo "<inhoud>\n";
	echo "<titel>" . $line["titel"] . "</titel>\n";
	echo "<tekst>" . $line["titel"] . "</tekst>\n";
	echo "</inhoud>\n";
}
echo "</bierhuis>\n";

mysql_close($link);
?>

Ik snap echt niet wat ik verkeerd doe :( Blijkbaar lijkt hij de:
PHP:
echo '<?xml version="1.0" encoding="utf-8"?>';
niet eens te parsen ofzo, want die vind ik niet terug in broncode. Als ik die file validate zegt hij echter dat het valid xml is :(

Wanneer ik een xml file aanmaak en die laat inlezen werkt alles zonder problemen... Ik hoop dat iemand dit vindt :(

Dank bij voorbaat

passero

Legacy Member
http://www.tinusvandevelde.com/bierhuis/bierhuis.php geeft mij niet echt een xml hoor...

Ge moet ook uw mime type in de header aanpassen voor xml:

header('Content-Type: text/xml');

Dat moet je Als eerste lijn zetten VOOR je iets output want als je output wordt je header gesloten en ga je een error krijgen op die lijn.

passero

Legacy Member
PHP:
<?php 
$link = mysql_connect("localhost", "deb4564n2_bier", "IL8neXK3"); 
mysql_select_db("deb4564n2_bier"); 

$query = "SELECT * FROM `nieuws`"; 
$results = mysql_query($query); 

header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="utf-8"?>'; 
echo "<bierhuis>\n"; 

while($line = mysql_fetch_assoc($results)){ 
    echo "<inhoud>\n"; 
    echo "<titel>" . $line["titel"] . "</titel>\n"; 
    echo "<tekst>" . $line["titel"] . "</tekst>\n"; 
    echo "</inhoud>\n"; 
} 
echo "</bierhuis>\n"; 

mysql_close($link); 
?>

passero

Legacy Member
wordt er nog iets VOOR die code uitgevoerd want dat zou normaal moeten werken hoor.
Zet anders voor de zekerheid die header(...) eens op de 1ste lijn voor je je connectie opent.

passero

Legacy Member
Ik heb het net getest voor een tabelleke van mij:
http://yonaweb.be/test.php

Code:

PHP:
<?php  
$link = mysql_connect("localhost", "******", "*****");  
mysql_select_db("****");  

$query = "SELECT * FROM `gebruikers`";  
$results = mysql_query($query);  

header('Content-Type: text/xml'); 
echo '<?xml version="1.0" encoding="utf-8"?>';  
echo "<bierhuis>\n";  

while($line = mysql_fetch_assoc($results)){  
    echo "<inhoud>\n";  
    echo "<titel>" . $line["voornaam"] . "</titel>\n";  
    echo "<tekst>" . $line["naam"] . "</tekst>\n";  
    echo "</inhoud>\n";  
}  
echo "</bierhuis>\n";  

mysql_close($link);  
?>

tynoesj

Legacy Member
Die pagina wordt afzonderlijk uitgevoerd... En nog steeds dezelfde error :(

passero

Legacy Member
dus http://www.tinusvandevelde.com/bierhuis/bierhuis.php bevat ENKEL de code die jij post?
Vreemd want zoals je kan merken werkt het bij mij wel :)
Dan moet er iets anders zijn die ervoor zorgt dat je header reeds is afgesloten.

Probeer anders deze eens:
PHP:
<?php   
header('Content-Type: text/xml');  
echo '<?xml version="1.0" encoding="utf-8"?>';   
echo "<bierhuis>\n";   
    echo "<inhoud>\n";   
    echo "<titel>Titel</titel>\n";   
    echo "<tekst>Tekst</tekst>\n";   
    echo "</inhoud>\n";   
echo "</bierhuis>\n";   
?>

Op die manier kan je zien of het aan je connectie ligt of niet. Als deze code werkt dan moet je connectie problemen geven. Als je nog steeds een fout krijgt dan is het mss een setting ofzo... maar kzou nie direct weten wat of hoe

tynoesj

Legacy Member
Met bovenstaande code krijg ik nog altijd een error te zien :(

Argh verdomme é, waarom krijg ik altijd van die fouten dak bijna niet opgelost krijg...

En er wordt niets anders uitgevoerd in die php file, bierhuis.php is 100% de code die jij nu poste...

passero

Legacy Member
Pas op voor linebreaks in het begin van je file! Als je een linebreak VOOR je <?php hebt staan dan is de boel ook al om zeep. Ik heb nu in mijn testfile een enter gezet voor de </php en kheb nu ook die fout. Misschien is het dat?

Albireo

Legacy Member
Of het kan van de BOM van UTF-8 komen wat door PHP wordt aanzien als output. Sla je PHP-bestand op als UTF-8 without BOM.

tynoesj

Legacy Member
Albireo zei:
Of het kan van de BOM van UTF-8 komen wat door PHP wordt aanzien als output. Sla je PHP-bestand op als UTF-8 without BOM.
Dat werkt nog steeds niet ... Weet wel niet hoe ik het kan opslaan als UTF-8, toch niet in dreamweaver... Die BOM heb ik wel kunnen afzetten, maar krijg nog steeds zelfde fout :(

edit: Nu werkt het wel... Gewoon nieuwe file aangemaakt & opgeslaan zonder BOM, en 't werkt direct :)

Bedankt iedereen, dit mag toe!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan