Elxis CMS Forum

Ελληνικό Forum => Ασφάλεια => Topic started by: psiloscc on March 03, 2010, 18:52:37

Title: [Solved] Captcha - πως να βάλω μόνο αριθμούς?
Post by: psiloscc on March 03, 2010, 18:52:37
Για να μην πειράξω κάτι μόνος μου, μήπως ξέρει κάποιος πως να βάλω στις εικόνες ασφαλείας να εμφανίζονται μόνο αριθμοί;

Στο τέλος του αρχείου captcha.class.php υπάρχει αυτό:
Code: [Select]
protected function create_random_value($length, $type = 'capchars') {
        if ( ($type != 'mixed') && ($type != 'chars') && ($type != 'digits') && ($type != 'capchars')) { return false; }
        $rand_value = '';
        while (strlen($rand_value) < $length) {
            if ($type == 'digits') {
                $char = mt_rand(0,9);
            } else {
                $char = chr(mt_rand(0,255));
            }
            if ($type == 'mixed') {
                if (preg_match('/^[a-z0-9]$/i', $char)) { $rand_value .= $char; }
            } elseif ($type == 'chars') {
                if (preg_match('/^[a-z]$/i', $char)) { $rand_value .= $char; }
            } elseif ($type == 'digits') {
                if (preg_match('/^[0-9]$/', $char)) { $rand_value .= $char; }
            } elseif ($type == 'capchars') {
                if (preg_match('/^[A-Z]$/', $char)) { $rand_value .= $char; }
            }
        }

 Μπορώ να αφαιρέσω από εδώ μόνο τους χαρακτήρες;
Title: Re: Captcha - πως να βάλω μόνο αριθμούς?
Post by: CREATIVE Options on March 03, 2010, 21:27:17
Για δοκίμασε αυτό:
captcha.class.php @line 53:
Code: [Select]
public $captchaType = 'capchars'; //chars, digits, mixed, capcharsσε
Code: [Select]
public $captchaType = 'chars'; //chars, digits, mixed, capchars
Title: Re: Captcha - πως να βάλω μόνο αριθμούς?
Post by: psiloscc on March 03, 2010, 21:45:47
καταρχήν σε ευχαριστώ για την απάντηση, δυστυχώς δεν δούλεψε έτσι, άλλαξα όμως τα a-z σε 0-9 δλδ έτσι:

Quote
protected function create_random_value($length, $type = 'capchars') {
        if ( ($type != 'mixed') && ($type != 'chars') && ($type != 'digits') && ($type != 'capchars')) { return false; }
        $rand_value = '';
        while (strlen($rand_value) < $length) {
            if ($type == 'digits') {
                $char = mt_rand(0,9);
            } else {
                $char = chr(mt_rand(0,255));
            }
            if ($type == 'mixed') {
                if (preg_match('/^[0-9]$/i', $char)) { $rand_value .= $char; }
            } elseif ($type == 'chars') {
                if (preg_match('/^[0-9]$/i', $char)) { $rand_value .= $char; }
            } elseif ($type == 'digits') {
                if (preg_match('/^[0-9]$/', $char)) { $rand_value .= $char; }
            } elseif ($type == 'capchars') {
                if (preg_match('/^[0-9]$/', $char)) { $rand_value .= $char; }
            }
        }
        return $rand_value;
    }

και δούλεψε, δεν ξέρω όμως εάν είναι έτσι το σωστό ή πρέπει αντί να αντικαταστήσω τα a-z να τα αφαιρέσω,
Title: Re: Captcha - πως να βάλω μόνο αριθμούς?
Post by: psiloscc on March 03, 2010, 22:18:14
Για δοκίμασε αυτό:
captcha.class.php @line 53:
Code: [Select]
public $captchaType = 'capchars'; //chars, digits, mixed, capcharsσε
Code: [Select]
public $captchaType = 'chars'; //chars, digits, mixed, capchars

Ξανά έκανα τον κώδικα όπως ήταν, άλλαξα μόνο την γραμμή που μου είπες αλλά αντί για chars έβαλα digits και φαίνονται  και έτσι μόνο οι αριθμοί, είναι σωστό έτσι για να το αφήσω όπως είναι; ???
Quote
public $captchaType = 'digits'; //chars, digits, mixed, capchars

Title: Re: Captcha - πως να βάλω μόνο αριθμούς?
Post by: datahell on March 06, 2010, 09:11:05
Μια χαρά είναι μην ανησυχείς. Το σωστό, εφόσον θες μόνο αριθμούς, είναι:

public $captchaType = 'digits'; //chars, digits, mixed, capchars

και δεν πειράζεις τίποτα άλλο.
Title: Re: Captcha - πως να βάλω μόνο αριθμούς?
Post by: CREATIVE Options on March 06, 2010, 09:53:52
Καλά τώρα βλέπω την απάντηση που είχα δώσει και την ξανά κοιτάζω και την ξανά κοιτάζω και προσπαθώ να καταλάβω γιατί είχα γράψει chars αντί για digits.
 ??? ??? ??? ??? ??? ???

Title: Re: Captcha - πως να βάλω μόνο αριθμούς?
Post by: psiloscc on March 06, 2010, 10:02:28
Καλά τώρα βλέπω την απάντηση που είχα δώσει και την ξανά κοιτάζω και την ξανά κοιτάζω και προσπαθώ να καταλάβω γιατί είχα γράψει chars αντί για digits.
 ??? ??? ??? ??? ??? ???

:D :D :D εχτές που τα ξανά διάβαζα και εγώ, νόμιζα ότι είχες καταλάβει ότι ήθελα να αφήσω μόνο χαρακτήρες γιαυτό μου έγραψες chars :D

Σας ευχαριστώ πάρα πολύ για τις απαντήσεις σας.
Title: Re: [Solved] Captcha - πως να βάλω μόνο αριθμούς?
Post by: webgift on March 06, 2010, 11:26:45
Πολύ χρήσιμο topic μπράβο "Ψηλέ" που το έθιξες.