Πρόβλημα αποστολής προσωπικού μηνύματος

Started by GoofyX, October 16, 2006, 12:43:09 PM

Previous topic - Next topic

GoofyX

Καλησπέρα,

Αντιμετωπίζω ένα πρόβλημα με την 1.0.8 έκδοση που νομίζω ότι πρόκειται για bug της εφαρμογής.

Ένας χρήστης έχει το username του ως Foouser (κεφαλαίο το πρώτο F). Πηγαίνω να του στείλω προσωπικό μήνυμα και στο Προς εισάγω (μέσω της αναζήτησης ή και με το χέρι) το Foouser. Στο αποστολή μηνύματος, μου εμφανίζει μήνυμα (με κόκκινα) που λέει το εξής:

Αποστολή αναφοράς
Το μέλος 'Foouser' δεν βρέθηκε.

Και στο πεδίο Προς έχει το "foouser". Προφανώς, αν το όνομα ήταν όλο με πεζά, δε θα υπήρχε πρόβλημα. Κάπου γίνεται μια μετατροπή σε πεζά, που δημιουργεί το πρόβλημα στη συνέχεια. Και φυσικά δεν μπορώ να στείλω το μήνυμα.

Bug;
... Morpheus: What is "real"? How do you define "real"? If you 're talking about what you can feel, what you can smell, what you can taste and see, then "real" is simply electrical signals interpreted by your brain...

GoofyX

Βρήκα το πρόβλημα.

Πρώτον, στο InstantMessage.php, στη συνάρτηση MessagePost2() γίνονται κάποιες (λανθασμένες για μένα) μετατροπές των usernames που εισάγει ο χρήστης στο πεδίο Προς σε πεζά. Στη συνέχεια, μέσα στη συνάρτηση καλείται η findMembers() που βρίσκεται στο αρχείο Subs-Auth.php και η οποία και εκεί κάνει μετατροπή σε πεζά. Η λύση που βρήκα ήταν να αλλάξω ένα σημείο μόνο, το query στη βάση και να το κάνω έτσι ώστε να μετατρέπει η βάση το memberName (που είναι το username) σε πεζά πριν κάνει σύγκριση.

Άρα, από
$request = db_query("
      SELECT ID_MEMBER, memberName, realName, emailAddress, hideEmail
      FROM {$db_prefix}members" . ($use_wildcards ? "
      WHERE memberName LIKE '" . implode("'
         OR memberName LIKE '", $names) . "'
         OR realName LIKE '" . implode("'
         OR realName LIKE '", $names) . "'
         OR ($condition emailAddress LIKE '" . implode("')
         OR ($condition emailAddress LIKE '", $names) . "')" : "
      WHERE memberName IN ('" . implode("', '", $names) . "')
         OR realName IN ('" . implode("', '", $names) . "')
         OR ($condition emailAddress IN ('" . implode("', '", $names) . "'))"), __FILE__, __LINE__);


έχουμε

$request = db_query("
      SELECT ID_MEMBER, memberName, realName, emailAddress, hideEmail
      FROM {$db_prefix}members" . ($use_wildcards ? "
      WHERE LOWER(memberName) LIKE '" . implode("'
         OR LOWER(memberName) LIKE '", $names) . "'
         OR realName LIKE '" . implode("'
         OR realName LIKE '", $names) . "'
         OR ($condition emailAddress LIKE '" . implode("')
         OR ($condition emailAddress LIKE '", $names) . "')" : "
      WHERE LOWER(memberName) IN ('" . implode("', '", $names) . "')
         OR realName IN ('" . implode("', '", $names) . "')
         OR ($condition emailAddress IN ('" . implode("', '", $names) . "'))"), __FILE__, __LINE__);


Προσοχή. Η αλλαγή γίνεται μόνο για το memberName και όχι για το realName.

Ωραία, να γίνω λίγο κακός τώρα; Αυτό είναι που δεν έχει bugs; Θα κοιτάξω και τον κώδικα του 1.1rc3 για να δω αν υπάρχει κάτι αντίστοιχο. Κρατάνε ενάμιση χρόνο και... την έκδοση 1.1 σε rc για να βγάλουν υποτίθεται ένα bug-free προϊόν. Μάλλον γελασμένοι είναι. Το παραπάνω για μένα αποτελεί χοντρό bug που υποτίθεται δε θα έπρεπε να υπάρχει (και το workaround που προτείνω δεν είναι και ό,τι καλύτερο). Πολύ καλό προϊόν το SMF, δε λέω, αλλά ο τρόπος ανάπτυξής του και η μεθοδολογία που ακολουθείται είναι λίγο ...
... Morpheus: What is "real"? How do you define "real"? If you 're talking about what you can feel, what you can smell, what you can taste and see, then "real" is simply electrical signals interpreted by your brain...

agridoc

  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

GoofyX

... Morpheus: What is "real"? How do you define "real"? If you 're talking about what you can feel, what you can smell, what you can taste and see, then "real" is simply electrical signals interpreted by your brain...

agridoc

Προσπάθησα να κάνω αναπαραγωγή του λάθους που αναφέρεις και δεν βγαίνει.

Ακόμα στο φόρουμ μου υπάρχουν πάρα πολλά μέλη με κάποια κεφαλαία στο user name, ακόμα και με ελληνικά και δεν έχει αναφερθεί πρόβλημα.

Μικρά bugs και ατέλειες υπάρχουν, πιθανόν να σχετίζονται και με σύστημα, PHP, MySQL που χρησιμοποιούνται, γενίκευση για το SMF είναι υπερβολική.

Υ.Γ. Είδα το μήνυμα στο SMF Coding Discussion, θα δούμε.
  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

GoofyX

Το φόρουμ τρέχει σε Linux (Apache 2.0.46, MySQL 4.1.15 σε utf-8 βάση και PHP 4.4.1). Εντάξει, δεν ήθελα να γενικέψω, άλλωστε στο μήνυμα στο αντίστοιχο αγγλικό τμήμα, αναφέρω αν είναι όντως πρόβλημα αυτό και να το επιβεβαιώσουν.
... Morpheus: What is "real"? How do you define "real"? If you 're talking about what you can feel, what you can smell, what you can taste and see, then "real" is simply electrical signals interpreted by your brain...

lampidona

GoofyX μόλις σήμερα αντιμετώπισα κι εγώ το ίδιο ακριβώς πρόβλημα με σένα αλλά με την διαφορά ότι μου το κάνει μόνο στα ελληνικά ονόματα. Όχι στα αγγλικά. Δηλαδή έχει πρόβλημα στο π.χ. "Δανάη" και όχι στο "Danai". Εγώ έχω την smf 1.1 Rc3 έκδοση και τα υπόλοιπα ίδια με σένα.. Θα προσπαθήσω να κάνω την αλλαγή με βάση αυτά που γράφεις και θα σου πώ.

GoofyX

Προσοχή στο 1.1rc3, γιατί λίγο που το είδα, έχει αλλάξει ο τρόπος γραφής του κώδικα. Αλλά κι εκεί έχω την εντύπωση (αλλά δεν είμαι τόσο σίγουρος όσο στην 1.0.8 ) ότι συμβαίνει το ίδιο.

Παρεπιμπτόντως, στο θέμα που άνοιξα σχετικά με το πρόβλημα αυτό εκεί, μέχρι στιγμή δε μου έχει απαντήσει κανείς (κοινώς με γείωσαν). Αν δεν το θεωρούν σημαντικό, κανένα πρόβλημα...
... Morpheus: What is "real"? How do you define "real"? If you 're talking about what you can feel, what you can smell, what you can taste and see, then "real" is simply electrical signals interpreted by your brain...

agridoc

Στο φόρουμ καθημερινά γράφονται γύρω στα 1000-1600 μηνύματα. Τα παιδιά έχουν δύσκολο έργο και μην ξεχνάς οτι είναι open source freeware.

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

Εγώ σε τρία φόρουμ (το ένα 1.1 RC3 ) δεν μπόρεσα να κάνω αναπαραγωγή του λάθους.

lampidona δοκίμασα και σε 1.1 RC3 με ελληνικό όνομα εμφάνισης και κεφαλαία και δεν εμφανίζει πρόβλημα.
  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

lampidona

agridoc δεν εμφανίζει πρόβλημα ούτε σε φιλικό φόρουμ και είναι φτιαγμένα και τα δύο ακριβώς το ίδιο (μαζί τα φτιάξαμε). Η μόνη διαφορά τους είναι ότι στο ένα υπάρχει το theme Amber και στο άλλο τo Spike (που δεν νομίζω ότι εκεί είναι το πρόβλημα). Τώρα τι ακριβώς συμβαίνει  ??? ??? ??? είναι πολύ περίεργο... (Αν θέλεις να σου στείλω το url μου να μπείς να το δείς και ο ίδιος.)
Πάντως στο πρώτο κανείς δεν μπορεί να στείλει μήνυμα σε ελληνικά nicknames όταν αυτά αρχίζουν από κεφαλαίο. (Και τα παράπονα δίνουν και παίρνουν. Αν δεν βγεί άκρη, θα πρέπει να πώ σε όλους που έχουν πρόβλημα να διορθώσουν το nickname τους κάνοντάς τα όλα μικρά... το οποίο δεν είναι και ότι καλύτερο... ειδικά για όσους θα μπαίνουν στο μέλλον...  :(  :(

GoofyX έχεις δίκιο για τον κώδικα...είναι αλλιώς αλλά έχει και εκεί την ίδια συνάρτηση.  Άλλαξα τα αντίστοιχα με αυτά που προτείνεις αλλά ....nothing happened.  ::)


agridoc

Το theme (εμφάνιση) σαν αίτιο, ίσως θέλει λίγο ψάξιμο. Ο Bloc λέει ότι πολλά themes πρέπει να ξαναδουλευτούν για UTF-8 και άλλες γλώσσες όπως αραβικά (δεξιά προς αριστερά).

Σημαντική η παρατήρηση σου. Μπορείς να δεις πως πάει με το default;

Θα ήθελα ένα link για το Spike, που αναφέρεις.

Δεν στέλνει ΠΜ ούτε από μενού;
  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

lampidona

Το πρόβλημα το έχει αυτό με το Amber (το δικό μου δηλαδή)... σου γράφω link.. θα χρειαστείς εγγραφή αλλά είναι δωρεάν. Το πρόβλημα υπάρχει μόνο στα προσωπικά μηνύματα... Σ' ευχαριστώ πολύ εκ των προτέρων για την προσοχή σου... :)

http://..........................

Θα δοκιμάσω με το default και θα ενημερώσω..

Το έκανα αλλά  :( τίποτα. Το πρόβλημα παραμένει και στο default

agridoc

lampidona βλέπω τα εξής:

- Το site είναι σε UTF-8
- Δεν υπάρχει επιλογή εμφανιζόμενου ονόματος (Ονομα, display name), οπότε μιλάμε για για ελληνικό Username (Ονομα χρήστη) με κεφαλαία.

Δοκίμασα και αυτό σε ένα άλλο test φόρουμ SMF 1.1 RC3 σε UTF-8 και δεν παρατήρησα πρόβλημα. Στο δικό σου όντως παρουσιάζεται. Δεν επιτρέπεται αλλαγή εμφάνισης έτσι δεν μπόρεσα να δω τι γίνεται με το default theme. Το αρχείο Subs-Auth.php είναι αλλαγμένο;

Αν δεν έχεις εγκαταστήσει κάποιο mod ανέβασε με FTP ΟΛΑ τα αρχεία στο sources, αντικαθιστώντας τα παλιά και δοκίμασε.

Βλέπω ότι στο Amber έχεις κάνει αλλαγές στο style.css, δεν ξέρω για το index.template.php. Δοκίμασε με τα original.
  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

lampidona

Φίλε agridoc... όπως ήδη θα είδες έπεσε ο σέρβερ του φόρουμ μου λόγω αλλαγής και μεταφοράς όλων των site  στον νέο server (με ειδοποίηση 2 ώρες πριν.....!!!). Όπως επίσης θα είδες όλη η κωδικοποίηση των σελίδων, μετά το ανέβασμα της ιστοσελίδας πήγε περίπατο. Τους έχω ενημερώσει και προσπαθούν να το φτιάξουν.
Έχω πάντως την εντύπωση ότι και το πρόβλημα που είχα μπορεί να είχε σχέση με τον σέρβερ τελικά... ότι μπορεί να υπήρχε λάθος στην sql βάση.
Από τη εμπειρία σου .....μπορεί να έχει σχέση?

agridoc

Οπωσδήποτε το σωστό στήσιμο του συστήματος έχει σημασία. Δεν μπορώ να πω όμως οτι ξέρω τι ακριβώς φταίει. Μερικοί hosts δεν τα πάνε τόσο καλά με την υποστήριξη UTF-8.

Μου έχει συμβεί και χειρότερο παλιότερα. Αλλαγή στo σύστημα και στα actual paths χωρίς καμμιά ειδοποίηση, ευτυχώς κατάφερα να βρω μόνος μου τι έγινε και το φόρουμ λειτούργησε. Μου απάντησαν τελικά μετά από 5 μέρες οτι δεν πίστευαν οτι θα υπήρχε πρόβλημα και γι αυτό δεν ειδοποίησαν  ;D

Εύχομαι η μεταφορά των δεδομένων να έχει γίνει σωστά.
  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

GoofyX

... Morpheus: What is "real"? How do you define "real"? If you 're talking about what you can feel, what you can smell, what you can taste and see, then "real" is simply electrical signals interpreted by your brain...

lampidona

Καλησπέρα. Ήθελα να ενημερώσω ότι μετά την αλλαγή-μεταφορά σέρβερ που έκανε ο host μου λύθηκαν όλα τα προβλήματα με το φόρουμ μου. Βέβαια έχασα κάποια δεδομένα με την μεταφορά αλλά...μικρό το κακό. Θέλω να πιστεύω λοιπόν ότι το πρόβλημα ήταν στη σχέση του παλιού συστήματος με τα utf-8 όπως είπε και ο agridoc.  Για αυτό θα έλεγα GoofyX να πάρεις ένα τηλεφωνάκι στον Host σου και να του αναφέρεις το πρόβλημα μήπως και τελικά πάρεις λύση από εκεί. Καλή τύχη.

agridoc

GoofyX μήπως τελικά το πρόβλημα ήταν από την χρήση collation greek_bin στην database;

http://www.simplemachines.org/community/index.php?topic=120849.msg784426#msg784426
  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

GoofyX

Πιθανόν, δεν μπορώ να το γνωρίζω αν δε δοκιμάσω μια βάση με διαφορετικό collation. Ευχαριστώ πάντως.
... Morpheus: What is "real"? How do you define "real"? If you 're talking about what you can feel, what you can smell, what you can taste and see, then "real" is simply electrical signals interpreted by your brain...

mforum

Telika, ta email pou stelnei auto to forum se hotmail, erxonte twra sta Ellhnika ....  :)

Advertisement: