flash as3+xml προβλημα

Adobe Photoshop, Flash, DreamWeaver, FireWorks, Contribute, FreeHand, Director.

flash as3+xml προβλημα

Δημοσίευσηαπό Sartiv » 10.06.11, 1:36 pm

Καλημερα σας,

Εχω ενα σπαστικο προβλημα που παλευω εδω και μερικες μερες:

Υλοποιω μια μηχανη αναζητηση γραμμενη σε as3, το οποιο ουσιαστικα στελνει POST το string για αναζητηση σε ενα .php οπου με τη σειρα του κανει query στο mysql και κατοπιν δημιουργει ενα .xml με τα αποτελεσματα και στελνει τα αποτελεσματα στο as3 οπου κανω load το xml.

Κώδικας: Επιλογή όλων
stop();

var myvariables:URLVariables = new URLVariables();
var myLoader:URLLoader = new URLLoader();
var myURLRequest:URLRequest = new URLRequest("results.php")
var searchXML:XML = new XML();
var searchXMLLoader:URLLoader = new URLLoader();

gosearch.buttonMode = true;
gosearch.addEventListener(MouseEvent.MOUSE_DOWN, gosearchdown);

function gosearchdown(e:MouseEvent):void
{
   myURLRequest.method = URLRequestMethod.POST;
   myURLRequest.data = myvariables;
   myvariables.word = search.text;
   myLoader.addEventListener(Event.COMPLETE, isDone);
   myLoader.load(myURLRequest);
}



function isDone(e:Event):void
{
   searchXMLLoader.addEventListener(Event.COMPLETE, LoadsearchXML);
   searchXMLLoader.load(new URLRequest("results.php?word=" + search.text + "&" + new Date().getTime() ));
   searchXML.ignoreWhite = true;   
   navigateToURL(myURLRequest, "_blank" );   
}

function LoadsearchXML(e:Event):void
{
   searchXML = new XML(e.target.data);
}


Δουλευει ΜΙΑ ΧΑΡΑ με τους λατινικους χαρακτηρες και νουμερα. Ομως οταν κανω αναζητηση με ελληνικους χαρακτηρες: το αρχειο .php δημιουργει ΣΩΣΤΑ το xml με σωστα αποτελεσματα (τα οποια ειναι παντα σε ελληνικα) αλλα το as3 ΔΕΝ διαβαζει το xml (το searchXML συγκεκριμενα). Καμια λυση;;

Εχω βαλει και το header("Content-type: text/xml"); και <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; στο .php...

Παρακαλω οποιος γνωριζει κατι, να ριξει φως! Ευχαριστω παρα πολυ εκ των προτερων για το κοπο σας!
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: flash as3+xml προβλημα

Δημοσίευσηαπό Sartiv » 10.06.11, 6:16 pm

Προφανως ειναι περιεργο το προβλημα και δεν γνωριζει κανενας τη λυση...

Εχω δοκιμασει και το escape/unescape(search.text), τπτ...

Εχω δοκιμασει κ αλλες πατεντες διαφορες, τπτ....

Κοβω να ειναι κανα bug, δεν εξηγειται αλλιως .... (?) :think
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: flash as3+xml προβλημα

Δημοσίευσηαπό notis » 10.06.11, 11:48 pm

Στο php που δημιουργεί on the fly το xml, βάλε σαν πρώτη γραμμή το:

Κώδικας: Επιλογή όλων
header('Content-type: text/html; charset=utf-8');


Και βεβαιώσου πως θα το σώσεις σαν UTF-8 without BOM με έναν text editor σαν το Notepad2
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: flash as3+xml προβλημα

Δημοσίευσηαπό Sartiv » 11.06.11, 10:29 am

notis έγραψε:Στο php που δημιουργεί on the fly το xml, βάλε σαν πρώτη γραμμή το:

Κώδικας: Επιλογή όλων
header('Content-type: text/html; charset=utf-8');


Και βεβαιώσου πως θα το σώσεις σαν UTF-8 without BOM με έναν text editor σαν το Notepad2


Σε ευχαριστω πολυ για το χρονο σου και την απαντηση, δυστυχως ηταν απο τις πρωτες ενεργειες που εκανα οταν εμφανιστηκε το προβλημα και δεν εγινε τιποτα.

Οποιος αλλος εχει καποια ιδεα, ειναι παντα καλοδεχουμενος.

Ευχαριστω κ παλι!
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: flash as3+xml προβλημα

Δημοσίευσηαπό notis » 11.06.11, 3:13 pm

Στο swf στο σημείο που εμφανίζεις το ελληνικό περιεχόμενο έχεις φροντίσει να χρησιμοποιείς unicode fonts με ενεργοποιημένη την επιλογή embed characters στα ελληνικά?
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: flash as3+xml προβλημα

Δημοσίευσηαπό Sartiv » 13.06.11, 9:49 am

Βεβαιως. Αλλα δεν ειναι εκει το προβλημα, αλλα οτι δεν φορτωνει το .xml με το εξης error:

TypeError: Error #1088: The markup in the document following the root element must be well-formed.
at search_fla::MainTimeline/loadsearchXML()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()

Ενω δουλευει μια χαρα με τα λατινικα και τα νουμερα. :)
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: flash as3+xml προβλημα

Δημοσίευσηαπό notis » 13.06.11, 10:04 am

Από περιέργεια μπορείς να μας δείξεις ένα δείγμα του xml που παράγεται με τα ελληνικά από το php αρχείο?
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: flash as3+xml προβλημα

Δημοσίευσηαπό Sartiv » 13.06.11, 12:41 pm

Φυσικα, οριστε:

Κώδικας: Επιλογή όλων
<?php
$results = $_GET['word'];
       
include 'connect.php';

$query2 = "SELECT * FROM `product`";
$result2 = mysql_query($query2) or die(mysql_error());

header("Content-type: text/xml");


    $XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
    $XML .= "<product>\n";
   
             
              while ($row2 = mysql_fetch_array($result2, MYSQL_ASSOC))
              {
                $vowels = array("ά", "έ","ή", "ί", "ύ", "ό", "ώ", "ϊ", "ΐ", "ϋ", "ΰ");
                $vowelsok = array("α", "ε", "η", "ι", "υ", "ο", "ω", "ι", "ι", "υ", "υ");
                $counter = 1;

                while($counter<=11)
                 {
                    $r_ok = str_replace($vowels, $vowelsok, $row2['Pname']);
                    $r2_ok = str_replace($vowels, $vowelsok, $results);
                    $r = mb_convert_case($r_ok, MB_CASE_LOWER, "utf-8");
                    $r2 = mb_convert_case($r2_ok, MB_CASE_LOWER, "utf-8");
                    $counter++;
                }
       
                if (stristr($r,$r2) != "")
                {
                    $row2 = str_replace("&", "&amp;", $row2);
                    $row2 = str_replace("<", "&lt;", $row2);
                    $row2 = str_replace(">", "&gt;", $row2);
                    $row2 = str_replace("\"", "&quot;", $row2);
                    // creates the "<tag>contents</tag>" representing the column
                    $XML .= "\t<r>\n";
                    $XML .= "\t\t<it name=\"id\">". $row2['productId'] . "</it>\n";
                    $XML .= "\t\t<it name=\"name\">". $row2['Pname'] . "</it>\n";
                    $XML .= "\t\t<it name=\"category\">". $row2['Pcategory'] . "</it>\n";
                    $XML .= "\t\t<it name=\"subcategory\">". $row2['Psubcategory'] . "</it>\n";   
                    $XML .= "\t\t<it name=\"price\">". $row2['price'] . "</it>\n";                       
                    $XML .= "\t\t<it name=\"photo\">". $row2['photo'] . "</it>\n";       
                    $XML .= "\t</r>\n";
                  }
                       }   
            $XML .= "</product>";
            print $XML;
                    // output the whole XML string
?>


Ευχαριστω κ ξανα για το χρονο σου.

Υ.Γ.: Δοκιμασα και το CDATA αλλα δεν ηταν επιθυμητο το αποτελεσμα...
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: flash as3+xml προβλημα

Δημοσίευσηαπό notis » 13.06.11, 1:27 pm

Εννούσα να τρέξεις native το php σου στον Browser και να μας δείξεις το xml που παράγεται με τα ελληνικά. Να εξομοιώσεις την κλήση του Flash και να μας δείξεις το αποτέλεσμα...
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: flash as3+xml προβλημα

Δημοσίευσηαπό okap-o » 13.06.11, 1:37 pm

Exω πάθει το ίδιο πράγμα και το είχα λύσει στο σημείο που συνδέεσαι με την db.
Δέν έχω το source μαζί μου αυτή τη στιγμή, σίγουρα ήταν αυτό, αλλά δέν είμαι σίγουρος για το συντακτικό.

Κώδικας: Επιλογή όλων
mysql_select_db ($dbname);
mysql_query("SET NAMES 'UTF8'");
ή/καί
mysql_query("SET NAMES 'GREEK'");
okap-o
Member
 
Posts: 52
Εγγραφή: 07.03.09, 12:42 pm

Re: flash as3+xml προβλημα

Δημοσίευσηαπό Sartiv » 13.06.11, 1:38 pm

Α. :)

ΟΚ, για παραδειγμα με word=ουτ (ελληνικα):

Κώδικας: Επιλογή όλων
<product><r><it name="id">17</it><it name="name">Φρουτο1</it><it name="category">Φρουτα</it><it name="subcategory">Κερασια</it><it name="price">5</it><it name="photo">additem1.jpg</it></r><r><it name="id">18</it><it name="name">Φρουτο2</it><it name="category">Φρουτα</it><it name="subcategory">Κερασια</it><it name="price">6</it><it name="photo">deleteperson1.jpg</it></r><r><it name="id">20</it><it name="name">Φρουτο3</it><it name="category">Φρουτα</it><it name="subcategory">Μηλα</it><it name="price">4</it><it name="photo">deleteperson.jpg</it></r><r><it name="id">21</it><it name="name">Φρουτο4</it><it name="category">Φρουτα</it><it name="subcategory">Καρπουζια</it><it name="price">5</it><it name="photo">deleteitem.jpg</it></r><r><it name="id">22</it><it name="name">Φρουτο5</it><it name="category">Φρουτα</it><it name="subcategory">Μηλα</it><it name="price">6</it><it name="photo">additem1.jpg</it></r></product>


Υ.Γ.: Τωρα με προεπισκοπηση ειδα στο [code] οτι δεν εχει αλλαγη γραμμης "\n"... μμμ.. αναρωτιεμαι αν ειναι αυτο!

edited: Δηλαδη στο browser φαινονται κανονικα οι αλλαγες γραμμων
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: flash as3+xml προβλημα

Δημοσίευσηαπό Sartiv » 13.06.11, 1:45 pm

okap-o έγραψε:Exω πάθει το ίδιο πράγμα και το είχα λύσει στο σημείο που συνδέεσαι με την db.
Δέν έχω το source μαζί μου αυτή τη στιγμή, σίγουρα ήταν αυτό, αλλά δέν είμαι σίγουρος για το συντακτικό.

Κώδικας: Επιλογή όλων
mysql_select_db ($dbname);
mysql_query("SET NAMES 'UTF8'");
ή/καί
mysql_query("SET NAMES 'GREEK'");


Η Βαση Δεδομενων ειναι ηδη utf-8 απο τη στιγμη της δημιουργιας της.

Και επιπλεον στο php εκει που συνδεεται εχω βαλει mysql_set_charset('utf8',$conn); .
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: flash as3+xml προβλημα

Δημοσίευσηαπό okap-o » 13.06.11, 1:47 pm

Δοκίμασε το δέν έχεις να χάσεις κάτι... Ακριβώς το ίδιο πρόβλημα είχα, κ έτσι το κατάφερα.

Κώδικας: Επιλογή όλων
class database {
   function database($dbHost, $dbUser, $dbPassword, $db){
   $link=mysql_connect($dbHost, $dbUser, $dbPassword);
   mysql_select_db($db) or die("Query failed with error: ".mysql_error());
   mysql_query("SET NAMES 'UTF8'",$link);
   }

   function openConnectionWithReturn($query){
      $result=mysql_query($query) or die("Query failed with error: ".mysql_error());
      return $result;
   }

   function openConnectionNoReturn($query){
      mysql_query($query) or die("Query failed with error: ".mysql_error());
   }


}
?>
okap-o
Member
 
Posts: 52
Εγγραφή: 07.03.09, 12:42 pm

Re: flash as3+xml προβλημα

Δημοσίευσηαπό Sartiv » 13.06.11, 2:09 pm

okap-o έγραψε:Δοκίμασε το δέν έχεις να χάσεις κάτι... Ακριβώς το ίδιο πρόβλημα είχα, κ έτσι το κατάφερα.

Κώδικας: Επιλογή όλων
class database {
   function database($dbHost, $dbUser, $dbPassword, $db){
   $link=mysql_connect($dbHost, $dbUser, $dbPassword);
   mysql_select_db($db) or die("Query failed with error: ".mysql_error());
   mysql_query("SET NAMES 'UTF8'",$link);
   }

   function openConnectionWithReturn($query){
      $result=mysql_query($query) or die("Query failed with error: ".mysql_error());
      return $result;
   }

   function openConnectionNoReturn($query){
      mysql_query($query) or die("Query failed with error: ".mysql_error());
   }


}
?>


Δοκιμασα και δεν δουλευει δυστυχως. Ευχαριστω φιλε για το χρονο σου!

Δεν ξερω αν ειναι αυτο που παραθεσες, απλα το προβλημα ειναι πως το flash ΔΕΝ φορτωνει το xml, σα να υπαρχει ενα λαθος στη διαταξη γραμμων στο xml οταν χρησιμοποιειται στο search ελληνικη λεξη...
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: flash as3+xml προβλημα

Δημοσίευσηαπό notis » 13.06.11, 4:26 pm

Εκ πρώτης όψεως δεν βλέπω στο php σου το charset definition που σου ανέφερα και στην αρχή. Μην το μπερδεύεις με το
Κώδικας: Επιλογή όλων
$XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";



Αυτό
Κώδικας: Επιλογή όλων
header("Content-type: text/xml");


κάνε το

Κώδικας: Επιλογή όλων
header("Content-type: text/xml; charset=utf-8");


Αν δεν σου δουλέψει, τότε σίγουρα φταίει κάτι από τις multi-byte functions με τις μεταροπές των τόνων, των πεζών κλπ
Άβαταρ μέλους
notis
Master Admin
 
Posts: 3697
Εγγραφή: 23.02.04, 1:36 pm
Τοποθεσία: Corinth

Re: flash as3+xml προβλημα

Δημοσίευσηαπό Sartiv » 16.06.11, 11:40 am

notis έγραψε:κάνε το

Κώδικας: Επιλογή όλων
header("Content-type: text/xml; charset=utf-8");


Αν δεν σου δουλέψει, τότε σίγουρα φταίει κάτι από τις multi-byte functions με τις μεταροπές των τόνων, των πεζών κλπ


Καλημερα ξανα παιδια,

Νοτη αρχικα προσθεσα στο header το charset=utf-8, τιποτα.

Μετα εσβησα τη διαδικασια για τους τονους κτλ, τωρα το flash δεν παιρνει καν (!) το xml, σα να ειναι κενο... Ενω στο browser βγαζει αψογα το .xml.

Πραγματικα δεν ξερω τι φταιει.. Σε ευχαριστω πολυ για το κοπο σου παντως! Πιστευω να βρω την ακρη γρηγορα ή αργα, θα ενημερωσω! :)
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm


Επιστροφή στο II.II Δημιουργικό λογισμικό σχεδίασης για τα ψηφιακά μέσα

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης

Visual Communication Designers Club

Το Visual Communication Designers Club, το μεγαλύτερο Ελληνικό online design forum, αποτελεί μια Ελληνική κοινότητα σχεδιαστών οπτικής επικοινωνίας, υπό την ευρύτερη έννοια του όρου, θέλοντας να συμπεριλάβει στα μέλη της κάθε ειδικότητα και βαθμίδα όσων σπουδάζουν ή εργάζονται στον χώρο της επικοινωνίας, έντυπης, διαδικτυακής, τρισδιάστατης ή εφαρμογών πολυμέσων