Elxis CMS Forum
Ελληνικό Forum => Ασφάλεια => Topic started by: psiloscc on March 03, 2010, 18:52:37
-
Για να μην πειράξω κάτι μόνος μου, μήπως ξέρει κάποιος πως να βάλω στις εικόνες ασφαλείας να εμφανίζονται μόνο αριθμοί;
Στο τέλος του αρχείου captcha.class.php υπάρχει αυτό:
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; }
}
}
Μπορώ να αφαιρέσω από εδώ μόνο τους χαρακτήρες;
-
Για δοκίμασε αυτό:
captcha.class.php @line 53:
public $captchaType = 'capchars'; //chars, digits, mixed, capchars
σε
public $captchaType = 'chars'; //chars, digits, mixed, capchars
-
καταρχήν σε ευχαριστώ για την απάντηση, δυστυχώς δεν δούλεψε έτσι, άλλαξα όμως τα a-z σε 0-9 δλδ έτσι:
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 να τα αφαιρέσω,
-
Για δοκίμασε αυτό:
captcha.class.php @line 53:
public $captchaType = 'capchars'; //chars, digits, mixed, capchars
σε
public $captchaType = 'chars'; //chars, digits, mixed, capchars
Ξανά έκανα τον κώδικα όπως ήταν, άλλαξα μόνο την γραμμή που μου είπες αλλά αντί για chars έβαλα digits και φαίνονται και έτσι μόνο οι αριθμοί, είναι σωστό έτσι για να το αφήσω όπως είναι; ???
public $captchaType = 'digits'; //chars, digits, mixed, capchars
-
Μια χαρά είναι μην ανησυχείς. Το σωστό, εφόσον θες μόνο αριθμούς, είναι:
public $captchaType = 'digits'; //chars, digits, mixed, capchars
και δεν πειράζεις τίποτα άλλο.
-
Καλά τώρα βλέπω την απάντηση που είχα δώσει και την ξανά κοιτάζω και την ξανά κοιτάζω και προσπαθώ να καταλάβω γιατί είχα γράψει chars αντί για digits.
??? ??? ??? ??? ??? ???
-
Καλά τώρα βλέπω την απάντηση που είχα δώσει και την ξανά κοιτάζω και την ξανά κοιτάζω και προσπαθώ να καταλάβω γιατί είχα γράψει chars αντί για digits.
??? ??? ??? ??? ??? ???
:D :D :D εχτές που τα ξανά διάβαζα και εγώ, νόμιζα ότι είχες καταλάβει ότι ήθελα να αφήσω μόνο χαρακτήρες γιαυτό μου έγραψες chars :D
Σας ευχαριστώ πάρα πολύ για τις απαντήσεις σας.
-
Πολύ χρήσιμο topic μπράβο "Ψηλέ" που το έθιξες.