Form Kontrolleri – 2
Bir web sitesinde bulunan formlardan bana göre en önemlisi üye girişleri için oluşturulmuş olanları. Web sitesinde bulunan hizmetlerden üye olarak yararlanan kişiler kullanıcı bilgilerini genellikle kendileri oluşturur. Oluşturulan bu bilgilerin ve de dolaylı olarak uygulamanın güvenliğini sağlamak ise projeyi oluşturan kişi veya kişilere düşer. Bu yüzden üye giriş bilgilerinin (aynı zamanda yeni üye kaydı içinde kullanılabilen) kontrolüne ayırdığım bu yazıya yorum, teklif ve farklı metodların yazılmasını istiyorum (hemen her yazıda belirtirim, ancak kimse yazmaz. Yinede belirtmeye devam, bir gün elbet paylaşımı öğreneceğiz).
Kullanıcı Adı Kontrolü: Kullanıcı adının (veya giriş adı) kontrolü için üç adet unsur kullanılacak. Bunlar; izin vereceğimiz maksimum ve minimum karakter sayıları ile yine kullanılmasına izin vereceğimiz harf-sayı dışı karakterler. Ekstra olarak ise fonksiyon içinde etkin olmayan bölümde göreceğiniz, kullanıcı adı ilk karakterinde kullanıcıyı harf kullanmaya zorlayacağız, yani fonksiyon kullanıcı adı ilk karakterinin harf olmasını talep eden uygulamalar için de kullanılabilir olacak. Fonksiyon kodları;
/**
* check_username();
* Check if a string is in valid username.
* Returns true if valid, false otherwise.
* @param string $max_length: the maximum length for username
* @param string $min_length: the minimum length for username
* @param string $allowed_chars: the allowed characters for username
* @author Taylan Aktepe (http://www.taylanaktepe.com)
*/
function check_username($username = '', $max_length = 16, $min_length = 4, $allowed_chars = '') {
$username = preg_replace('/[s]+/', '', $username); // Clean white space
$username = strtolower($username); // Change with lowercase chars
// Checks the lenght
if (strlen($username) > $max_length || strlen($username) < $min_length) { return false; } // Username must be started with a letter (optional)
//return preg_match('/^([a-z]+)([a-z0-9'.$allowed_chars.']+)$/i', $username);
return preg_match('/^[a-z0-9'.$allowed_chars.']+$/i', $username);
}
$my_chars = '._-@';
echo 'Check username (taylan_aktepe):'. check_username('taylan_aktepe', 16, 4, $my_chars); echo '<br />';
Kullanıcı Şifresi Kontrolü: Kullanıcı şifresinin (veya parolasının) kontrolü için ise iki adet unsur kullanılacak. Bunlar; izin vereceğimiz maksimum ve minimum karakter sayıları. Kontrol sonucunda kullanıcıyı zorlayacağımız şifre, mutlaka sayı ve harflerden oluşacak. Yani kullanıcı sadece sayılardan veya harflerden oluşan basit bir şifre kullanamayacak. Fonksiyon kodları;
/**
* check_password();
* Check if a string is in valid username.
* Returns true if valid, false otherwise.
* @param string $max_length: the maximum length for password
* @param string $min_length: the minimum length for password
* @author Taylan Aktepe (http://www.taylanaktepe.com)
*/
function check_password($password = '', $max_length = 25, $min_length = 6) {
$password = preg_replace('/[s]+/', '', $password); // Clean white space
$password = strtolower($password); // Change with lowercase chars
// Checks the lenght
if (strlen($password) > $max_length || strlen($password) < $min_length) { return false; } return preg_match('/^([a-z0-9]+)([^0-9]+)([^a-z]+)([a-z0-9]+)$/i', $password);
}
echo 'Check password (123456):'. check_password('pass56', 25, 6); echo '<br />';
Yazının sonraki bölümünde görüşmek üzere…

















Hemen hemen aynı mantık. (a-z0-9 _.\-@) karakterlerine izin verilmiş, ancak fonksiyonda $strict true olarak belirtilmişse. Yani utf-8 dışındaki karakterler için de izin veren ([a-fA-F0-9][a-fA-F0-9]) öncelikli kullanılmış. Yani Türkçe karakterleri kabul etmesi gerekir. Ancak tarayıcınızın ayarlarında sorun olabilir. Firefox için View (veya Görünüm) menüsünden Character Encoding (veya Karakter Kodlaması) seçeneğini UTF-8 olarak ayarlayıp tekrar deneyin.
sanırım bu herhangi bir giriş formu kontrolü
ben wordpress te türkçe karekterle üye olamama sorunu yüzünden arama yaparken sitenize geldim.kimse böyle bi sorunun çözümüne gitmemiş galiba okuduğum bikaç yabancı sitede de yok veya anlamadım.
kod:
function sanitize_user( $username, $strict = false ) {
$raw_username = $username;
$username = strip_tags($username);
// Kill octets
$username = preg_replace(‘|%([a-fA-F0-9][a-fA-F0-9])|’, ”, $username);
$username = preg_replace(‘/&.+?;/’, ”, $username); // Kill entities
// If strict, reduce to ASCII for max portability.
if ( $strict )
$username = preg_replace(‘|[^a-z0-9 _.\-@]|i’, ”, $username);
// Consolidate contiguous whitespace
$username = preg_replace(‘|\s+|’, ‘ ‘, $username);
return apply_filters(’sanitize_user’, $username, $raw_username, $strict);
}
“wp-include/formatting.php”
sanırım çözüm bu kodta herhangi bi fikriniz varmı??