PDA

View Full Version : ثبت نام با کاراکترهای غیر مجاز



tumrus
جمعه 24 آذر 1391, 06:54 صبح
سلام دوستان
کسی میتونه یه کمک بهم بکنه
این یه فایل هست تو خط 43 یه مشکلی داره در صورت امکان یه راهنمایی کنید ممون
" تو این خط باید کد جوری عمل کنه که از ثبت نام حروف غیره مجاز که تعیین میکنیم خطا بده و اجازه ثبت نام را ازش بگیره "
http://www.tumrusup.tk/images/rdk0s1o7056s2o62j6h.gif

منظور اینطوری هست

دانلود فایل (http://www.tumrusup.tk/images/go7mxpm3ak4a28ltw0zy.zip)

در صورت امکان اصلاح کنید فایل رو یه دنیا ممنون

ravand
جمعه 24 آذر 1391, 08:57 صبح
اون حروف غیر مجاز رو که میگی داخل آرایه بذار بعد شرط بذار بگو اگه این متغییر که مقادیر تکست رو میگیره شامل این مقادیر آرایه هست اخطار بده.

2undercover
جمعه 24 آذر 1391, 09:32 صبح
با تابع preg_match() و کمی Regular Experssion کارتون راه می افته عجیب!!!!

siavashsay
جمعه 24 آذر 1391, 12:22 عصر
دوست عزیز اگر میخواید که نام کاربری شما فقط شامل حرف و عدد باشه از این تابع میتونید استفاده کنید :


$userFilter=ctype_alnum($username);
if($userFilter==false){
echo "Error, Please use only Letters and Numbers for Username";
}else{
// Do Something
}
}


تابع ctype_alnum متغیر رو چک میکنه که ببینه این متغیر متشکل از (تنها ) حروف و اعداد هستند یا خیر - در صورت بله بودن مقدار True و در صورت منفی بود مقدار Flase رو بر میگردونه !
اما چنانچه مایل هستید نام کاربری کاراکتر علاوه بر حروف و اعداد _ ( Under Line ) رو هم قبول کنه از این تابعی که نوشتم میتونید استفاده کنید :


function lnuFilter($var){
$chk=preg_match('/^[a-zA-Z0-9_]+$/',$var);
if($chk==false){
return false;
}else{
return true;
}
}
// how to use
$userFilter=lnuFilter($username);
if($userFilter==false){
echo "Error, Please use only Letters, Numbers And Under Line for Username";
}else{
// Do Something
}
}


این تابع علاوه بر حرف و عدد از کاراکتر _ نیز پیروی میکنه :)
امیدوارم مفید واقع شه :)

tumrus
جمعه 24 آذر 1391, 17:23 عصر
باید این کد رو اصلاح کنم چون کار نمیکنه تو حروف غیر مجاز


private function Signup() {
global $database,$form,$mailer,$generator,$session;
if(!isset($_POST['name']) || $_POST['name'] == ""|| $_POST['name'] == "admin"|| $_POST['name'] == "Admin" || $_POST['name'] == "administrator"|| $_POST['name'] == "مدير"|| $_POST['name'] == "Natars") {
$form->addError("name",USRNM_EMPTY);
} else {
if(strlen($_POST['name']) < USRNM_MIN_LENGTH) {
$form->addError("name",USRNM_SHORT);
}
else if(!USRNM_SPECIAL && preg_match('/[:,\\. ^? < > \\n\\r\\t\\s]+/',$_POST['name'])) {
$form->addError("name",USRNM_CHAR);
}
else if($database->checkExist($_POST['name'],0)) {
$form->addError("name",USRNM_TAKEN);
}
else if($database->checkExist_activate($_POST['name'],0)) {
$form->addError("name",USRNM_TAKEN);
}

}


در صورت امکان اصلاح کنید ممنون دوستان از لطفتون

tumrus
جمعه 24 آذر 1391, 21:42 عصر
از دوستان کسی نمیتونه کمکم که یه کم وقت میبره دست اون مممنون منتظرم " شرمنده اسپم شد" برای این که تو پست های امروز باشه مجبور شدم