آموزش cakephp - چک کردن نام کاربری
چهارشنبه, ۲ شهریور ۱۳۹۰، ۰۶:۰۹ ق.ظ
cakephp یکی از بهترین فریم ورک های دنیاست که همواره در رنکینگ فریم ورک ها یکی از سه جایگاه برتر را به خود اختصاص می دهد. پیش از این در این سایت مطالبی برای آشنایی با کیک پی اچ پی و آموزش های دیگری از این فریم ورک قرار گرفته است. امروز قصد داریم آموزش بسیار ساده و کاربردی را به شما ارائه دهیم. آیا نام کاربری که برای ثبت نام انتخاب شده است دردسترس می باشد؟ با استفاده از کتابخانه ی جاوا اسکریپت jquery و Ajax به راحتی می توانید این کار را انجام دهید...
شما در سایت خودتون بخش ثبت نام دارید که خوب در این بخش یونیک بودن نام کاربری قطعی هستش. بنابراین باید دقت کنید که هیچ نام کاربری یی دوبار انتخاب نشه. در ضمن یه کم سخته که کاربر نام کاربری رو وارد بکنه بعد ارسال بکنه و صفحه ریفرش بشه بعد با خطای نام کاربری تکراری مواجه بشه. بنابراین می تونیم از ای جکس استفاده کنیم که به محض نوشتن نام کاربری بهش نمایش بدیم که میتونه این نام کاربری رو انتخاب کنه یا نه.
خوب شروع می کنیم.
شما باید ابتدا یه جدول به نام users داشته باشید. ساختن model و controller و view ها به عهده ی خودتون. برای جلوگیری از اتلاف وقت فقط می پردازیم به آموزش خودمون.
یک فرم در view خواهیم داشت که نام کاربری رو از کاربر می گیریم به این صورت:
کد جی کوئری رو هم به این صورت اضافه می کنیم:
موفق باشید
شما در سایت خودتون بخش ثبت نام دارید که خوب در این بخش یونیک بودن نام کاربری قطعی هستش. بنابراین باید دقت کنید که هیچ نام کاربری یی دوبار انتخاب نشه. در ضمن یه کم سخته که کاربر نام کاربری رو وارد بکنه بعد ارسال بکنه و صفحه ریفرش بشه بعد با خطای نام کاربری تکراری مواجه بشه. بنابراین می تونیم از ای جکس استفاده کنیم که به محض نوشتن نام کاربری بهش نمایش بدیم که میتونه این نام کاربری رو انتخاب کنه یا نه.
خوب شروع می کنیم.
شما باید ابتدا یه جدول به نام users داشته باشید. ساختن model و controller و view ها به عهده ی خودتون. برای جلوگیری از اتلاف وقت فقط می پردازیم به آموزش خودمون.
یک فرم در view خواهیم داشت که نام کاربری رو از کاربر می گیریم به این صورت:
Form->input('username', array('div'=>false,حالا باید کدهای بخش CSS رو بنویسیم:
'type'=>'text',
'id'=>'name',
'class'=>'username',
'value'=>'Username'));
?>
#username_feedback{این کدها رو هم می تونید در فایل سی اس اس ذخیره کنید. به طور پیشفرض آدرس این فایل appwebrootcss هستش که می تونید در فایل default.ctp در شاخه ی appviewslayouts هر فایلی رو که می خواید اد کنید.
margin-left: 30px;
margin-top: 5px;
color: #FD868E;
font-size: 11px;
font-style: italic;
border: 1px solid #fff;
-moz-border-radius: 1em 0em 1em 0em;
display: none;
-khtml-border-radius: 1em 0em 1em 0em;
-webkit-border-radius: 1em 0em 1em 0em;
border-radius: 1em;
background-color: #E1E0DD;
padding: 3px;
padding-left: 15px;
padding-right: 15px;
}
کد جی کوئری رو هم به این صورت اضافه می کنیم:
خوب تا اینجا که مشکلی نبوده و نیست. حالا می تونیم به کنترلر خودمون بریم و اکشن check_username رو بنویسیم. می تونید کدهای زیر رو هم به کنترلر users اضافه کنید:
function check_username()به همین راحتی شما می تونید کاربر رو به خوبی در انتخاب نام کاربری راهنمایی کنید. این آموزش بسیار ساده و کاربردیه. امیدوارم به دردتون خورده باشه.
{
$this->autoRender=false;
if(mb_strlen($username)===0){
echo "یک نام کاربری انتخاب کنید";
}
else if(mb_strlen($username) echo "نام کاربری باید حداقل 6 حرف باشد!";
}
else
{
if($this->RequestHandler->isAjax()) {
mb_internal_encoding("UTF-8");
$username=trim($this->params['form']['username']);
$conditions = array("User.username" =>$username);
//میتونید از دو روش برای خوندن از دیتابیس استفاده کنید.
//استفاده از متد find - توصیه می شه
$query=$this->User->find('first', array('conditions' => $conditions));
//استفاده از متد query - توصیه نمی شه
$query=$this->User->query("SELECT username FROM users
WHERE username= 'mysql_real_escape_string($username)'");
if(mb_strlen($query)!==0){
echo "قبلاً ثبت شده است!";
}
else{
echo "می توانید انتخاب کنید!";
}
}
}
}
?>
موفق باشید
نکته جالب تو نوشته هات اینه که ساده مفهوم رو می رسونه و بدون تعارف این از عهده هرکسی برنمیاد.
به نظرم میشه این آموزش با اندک تغییری، عمومی(کیک پی اچ پی یا هر شکل دیگه) بشه.
موفق باشی