Προς το περιεχόμενο

OSCommerce πρόβλημα εγκατάστασης DB


nzeppos

Προτεινόμενες αναρτήσεις

Δημοσ.

Ναι, ξέρω, το OSC είναι ξεπερασμένο, έχει κάμποσα κουσούρια κλπ αλλά για διάφορους λόγους αποφάσισα να χρησιμοποιήσω αυτό για τη δημιουργία ενός eshop. Πλέον είναι σχεδόν έτοιμο, οπότε δεν τίθεται θέμα μετάβασης σε Joomla ή άλλου.

 

Το πρόβλημα μου.

  • Φτιάχνω στο phpmyadmin μια db με collation utf-8_general_ci, όλα καλά.
  • Εισάγω κάποια δεδομένα χειροκίνητα, τα ελληνικά φαίνονται σωστά.
  • Εισάγω το αρχείο install/oscommerce.sql (είναι σε utf-8) μέσω του import του phpadmin, όλα καλά, γίνεται το dumping και τα ελληνικά κομπλέ.

 

Όταν όμως χρησιμοποιήσω το αυτοματοποιημένο /catalog/install/install.php του OSC τότε ναι μεν η βάση (και το site) σηκώνονται σωστά αλλά τα ελληνικά της db είναι καραγκιοζάκια (προσοχή, μόνο τα data με ελληνικά fonts που έγιναν dump από το oscommerce.sql. Τα υπόλοιπα ελληνικά του site είναι σωστά, δεν είναι δηλαδή θέμα browser ή κάτι άλλο). Επίσης αν προσθέσω χειροκίνητα νέα δεδομένα στην ήδη δημιουργημένη db, φαίνονται κανονικά.

 

Άρα το πρόβλημα φαίνεται να είναι αποκλειστικά στον php κώδικα του install του OSC. Κάθομαι και τον χαζεύω τώρα, ειδικά το /catalog/install/includes/functions/database.php αλλά δεν έχω βγάλει άκρη ακόμα.

 

Μήπως μπορεί κάποιος να βοηθήσει?

 

 

***αυτόματη ένωση μηνυμάτων***

 

___________________________________________________________________________________

 

edit:

Νομίζω ότι εντόπισα που βρίσκεται το πρόβλημα αλλά δεν μπορώ να είμαι σίγουρος γιατί δεν το έχω δοκιμάσει ακόμα. Μάλλον φταίει η substr() function που καλεί το install/includes/databases.php, η οποια κατά τα φαινόμενα διαβάζει τα strings του oscommerce.sql και τα κάνει dump στην database.

 

Αυτό μάλλον γίνεται είτε στα πρώτα substr που ψάχνουν για τα newlines και τα "#" comments, είτε στη γραμμή:

 

>$sql_array[] = substr($restore_query, 0, $i);

 

Κατά τα φαινόμενα η substr δεν μπορεί να χειριστεί utf-8 χαρακτήρες (άλλωστε το vanilla oscommerce.sql είναι σε latin-1 και όχι σε utf-8). Οπότε χρειάζεται μια μικρή μετατροπή για να παίξει και με utf-8, συνυπολογίζοντας και το πρόβλημα που προκύπτει (λόγω της αλλαγής σε utf-8) με το διάβασμα του newline χαρακτήρα "\n".

 

Έχω βρει κάποια παραδείγματα στο http://gr2.php.net/substr και μένει μόνο να δω αν θα δουλέψει και στην πράξη. Αλλιώς χειροκίνητο import μέσω του phpmyadmin και σύνδεση OSC-db από το configure.php.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...