Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: Super-Moderators, WebDev Moderators, PHP Moderators

Απάντηση
geo87
Δημοσιεύσεις: 79
Εγγραφή: 16 Ιουν 2008 05:25
Τοποθεσία: Αθήνα

Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Δημοσίευση από geo87 » 26 Ιουν 2009 05:55

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

Βάζοντας αυτό: preg_match("/^[-0-9A-Z_@\s]+$/i", $username)
Έχω ωραία αγγλικά

Βάζοντας αυτό:

preg_match( "/[\x{0370}-\x{03FF}]/u", $username) (ευγενική χορηγία cordis
- από άλλο topic) :P
έχω ωραία ελληνικά.

Τι κάνω αν θέλω και τα δύο?? :myeye: οκ οκ δεν ξέρω κιόλας αν γίνεται. ΒΟΗΘΕΙΑΑΑΑ!! :lol: Ευχαριστώ για άλλη μια φορά!

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Δημοσίευση από dpa » 26 Ιουν 2009 09:53

Δοκίμασε το παρακάτω

$username = trim($_POST['username']);

$latin = preg_match("/^[-0-9A-Z_@\s]+$/i", $username) ;

if( !$latin ) {
echo "Το username θα πρέπει να περιέχει λατινικούς χαρακτήρες
}

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Δημοσίευση από dpa » 26 Ιουν 2009 09:55

Και τα 2 μπορεί να τα ελέγξει αλλά δεν είναι σωστό.

Αν δεν έχει ελληνικούς χαρακτήρες ούτε λατινικούς τότε τη χαρακτήρες να έχει σαν username ????

Μόνο αριθμούς και σύμβολα ???

geo87
Δημοσιεύσεις: 79
Εγγραφή: 16 Ιουν 2008 05:25
Τοποθεσία: Αθήνα

Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Δημοσίευση από geo87 » 26 Ιουν 2009 10:12

Καλημέρα.

Ίσως να μην το είπα καλά αλλά δεν είπα πως δεν θέλω να έχει ελληνικούς ή λατινικούς χαρακτήρες. Είπα πως θέλω να μπορεί ο χρήστης να βάλει και ελληνικά και λατινικά. Δηλαδή να μπορεί να γράψει και geo87 και γεο87 ή και γeo87 αν κάποιος το θέλει ως username. Γίνεται φίλε μου αυτό?

εδιτ : δηλαδή το αντίστροφο από αυτό που είπες στο 2ο ποστ.

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Δημοσίευση από dpa » 26 Ιουν 2009 10:26

Γίνετε

Μην χρησιμοποιείς καθόλου την preg_match().

Δεν χρειάζεται να ελέγξεις τους χαρακτήρες εισαγωγής.

Άσε να το γράψει ο κάθε χρήστης όπως θέλει.

geo87
Δημοσιεύσεις: 79
Εγγραφή: 16 Ιουν 2008 05:25
Τοποθεσία: Αθήνα

Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Δημοσίευση από geo87 » 26 Ιουν 2009 10:47

Σοβαρολογείς? Και εγώ καθόμουν κι ένωνα, κομμάτιαζα, έβαζα, έβγαζα κώδικα και στο τέλος η λύση ήταν να μην βάλω καθόλου κώδικα??? :o :violi: :lol: Σε ευχαριστω πάρα πολύ φίλε μου. Πάω να το δω κι έρχομαι να πω αποτελέσματα. :D

geo87
Δημοσιεύσεις: 79
Εγγραφή: 16 Ιουν 2008 05:25
Τοποθεσία: Αθήνα

Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Δημοσίευση από geo87 » 26 Ιουν 2009 11:05

Ένα έχω να πω :respect: Δάσκαλε. Πράγματι έπιασε. Χίλια χίλια ευχαριστώ φίλε μου.

Θα ήθελα να ρωτήσω από περίεργεια αλλά περισσότερο επειδή θεωρώ πως είναι καλό να μαθαίνεις νέα πράγματα. Πρώτη φορά συνάντησα τον συγκεκριμένο κώδικα και διάβασα κάποια tutorials για να τον καταλάβω. Δεν κατάλαβα όμως 1. την λογική του 0-9 Α-Ζ. Οκ θέλει να δείξει τα νούμερα και τα γράμματα όμως αυτό μπαίνει πάντα έτσι? Δηλαδή αν έβαζα 0-7 τι θα γινόταν? :lol: Οκ μπορεί να ακούγεται χαζό αλλά δεν ξέρω.

Επίσης 2. Σε παρακαλώ πες μου θα μπορούσαν να ενωθούν δυο preg match? Στο ψάξιμο που έκανα φαίνεται πως είναι αδύνατο. Αν ναι πως θα γραφόταν σύμφωνα με το παραπάνω?

εδιτ 3. Αν ήθελα να εξαιρέσω κάποια συγκεκριμένα σύμβολα τι θα έβαζα?

Χίλια ευχαριστώ και πάλι για τον χρόνο σου. Ελπίζω να το δεις και να απαντήσεις. :)

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Δημοσίευση από dpa » 26 Ιουν 2009 12:49

Αυτές τις συναρτήσεις τις χρησιμοποιείς συνήθως για τον έλεγχο μιας διεύθυνσης (email) και πολύ σπάνια για κάτι άλλο.

Μπορείς να κάνεις ότι θες απλά πρέπει να ξέρεις τον πίνακα με τους χαρακτήρες.

Σου στέλνω μια συνάρτηση για να ελέγχεις τις διευθύνσεις email για αν κάτσω να αναλύσω όλο τον πίνακα με τους χαρακτήρες που δέχεται η eregi() θα πάρει χρόνο.

Ασχολήσου με κάτι άλλο προς το παρόν κάτι πιο σημαντικό από την preg_match() και στην πορεία ξαναεπανέρχεσε


Συνάρτηση για έλεγχο εγκυρότητας email

function valid_email($address) {

$checkemail = "/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i";
if( preg_match($checkemail, $address) ) {
return true;
} else {
return false;
} // end if

} // end function valid_email



Χρήση συνάρτησης

$address = 'info@otenet.gr';

if( !valid_email($address) ) {
echo 'Η διεύθυνση email δεν είναι έγκυρη';
}

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Δημοσίευση από dpa » 26 Ιουν 2009 12:50

Λάθος στην χρήση της συνάρτησης

Αυτό είναι το σωστό

$address = 'info@otenet.gr';

if( !valid_email($address) ) {
echo 'Η διεύθυνση email δεν είναι έγκυρη';
exit;
}

geo87
Δημοσιεύσεις: 79
Εγγραφή: 16 Ιουν 2008 05:25
Τοποθεσία: Αθήνα

Χρήστες με όνομα σε ελληνικούς ή λατινικούς χαρακτήρες;

Δημοσίευση από geo87 » 26 Ιουν 2009 14:07

Φίλε μου για άλλη μια φορά σε ευχαριστώ πάρα πολύ για όλα! Έχεις δίκιο αφού φτιάχτηκε οκ. :P Αν στο μέλλον χρειαστώ κάτι συγκεκριμένο σχετικά με αυτό θα επανέλθω. Και πάλι χίλια ευχαριστώ!

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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