Membuat operasi login, logout dan register pada yii

Operasi yang akan kita kerjakan adalah yang berkaitan dengan database. Silahkan lihat tutor sebelumnya jika anda belum memahami teknik menghubungkan database pada yii disini. Okeh, pertama-tama mari kita buat buat dua buah table di database, yaitu table “user” dan table “level” yang isinya sebagai berikut:

CREATE TABLE IF NOT EXISTS `tbl_level_admin` (
`id_level` int(11) NOT NULL AUTO_INCREMENT,
`level` varchar(20) NOT NULL,
PRIMARY KEY (`id_level`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

INSERT INTO `tbl_level_admin` (`id_level`, `level`) VALUES
(1, ‘Super Admin’),
(2, ‘Admin’),
(3, ‘Customer’);

CREATE TABLE IF NOT EXISTS `tbl_user_admin` (
`id_user` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL,
`password` varchar(50) NOT NULL,
`enkrip` varchar(50) NOT NULL,
`email` varchar(30) NOT NULL,
`inisial` varchar(10) DEFAULT NULL,
`deskripsi` text,
`id_level` int(11) NOT NULL,
PRIMARY KEY (`id_user`),
KEY `id_level` (`id_level`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

ALTER TABLE `tbl_user_admin`
ADD CONSTRAINT `tbl_user_admin_ibfk_1` FOREIGN KEY (`id_level`) REFERENCES `tbl_level_admin` (`id_level`);

Setelah itu buatlah operasi CRUD untuk tabel “tbl_user_admin” dengan menggunakan gii seperti pada tutor sebelumnya. Setelah selesai, mari kita hubungkan form login yang sudah ada pada aplikasi web bawaan yii dengan database kita. Berikut caranya:

Pertamax, buka file pada folder: protected/components/UserIdentity.php.

Ganti code pada function authenticate menjadi code dibawah ini:

public function authenticate()
{
$user=UserAdmin::model()->find(‘LOWER(username)=?’,array(strtolower($this->username)));
if($user===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if(!$user->validatePassword($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->_id=$user->id_user;
$this->username=$user->username;
$this->errorCode=self::ERROR_NONE;
}
return $this->errorCode==self::ERROR_NONE;
}

Selesai, sekarang form login anda sudah terhubung dengan database “tbl_user_admin” kita tadi…

Kalo ada login tentu ada juga form register. Nah, sekarang mari kita buat form register kita. Sebelumnya kita tentukan dulu bahwa di form register nanti akan ada validasi sbb:

-ada captcha dan isian pada captcha harus sesuai dengan yang ada di gambar

-validasi pada inputan email

-ada validasi password1 dan password2 untuk memastikan bahwa user tidak salah mengetik password

-username, password, email, captcha tidak boleh kosong

-memberi panjang minimal dan maksimal pada beberapa inputan

Okeh, stelah selesai menentukan batasannya, mari kita mulai…. Berikut caranya:

Buka file pada protected/controllers/UserAdminControllers.php.

Karena kita mau menambahkan captcha pada controllers, mari kita tambahkan captcha seperti pada penjelasan yang ada disini, yaitu dengan menambahkan code berikut pada “UserAdminControllers”:

public function actions()
{
return array(
// captcha action renders the CAPTCHA image displayed on the contact page
‘captcha’=>array(
‘class’=>’CCaptchaAction’,
‘backColor’=>0xFFFFFF,
),
// page action renders “static” pages stored under ‘protected/views/site/pages’
// They can be accessed via: index.php?r=site/page&view=FileName
‘page’=>array(
‘class’=>’CViewAction’,
),
);
}

Agar captcha diizinkan untuk diakses user yang akan register(belum login) maka kita berikan akses dengan merubah method accessRules() menjadi seperti berikut:

return array(
array(‘allow’, // allow all users to perform ‘index’ and ‘view’ actions
‘actions’=>array(‘create’,’captcha’),
‘users’=>array(‘*’),
),
array

Selesai sudah kita otak-atik controllers ny, sekarang saatnya kita otak-atik modelnya dengan cara:
Buka protected/models/UserAdmin.php

Ubah isinya sehingga menjadi seperti berikut:

class UserAdmin extends CActiveRecord
{
public $password2;
public $verifyCode;

public static function model($className=__CLASS__)
{
return parent::model($className);
}

public function tableName()
{
return ‘tbl_user_admin’;
}

public function rules()
{
return array(
array(‘username, password, email,verifyCode’, ‘required’),
array(‘verifyCode’, ‘captcha’, ‘allowEmpty’=>!extension_loaded(‘gd’)),
array(‘id_level’, ‘numerical’, ‘integerOnly’=>true),
array(‘username, email’, ‘length’, ‘max’=>30),
array(‘username’, ‘filter’, ‘filter’=>’strtolower’),
array(‘username’,’unique’),
array(‘password, enkrip’, ‘length’, ‘max’=>50,’min’=>5),
array(‘password2’, ‘length’, ‘max’=>50, ‘min’=>5),
array(‘password’, ‘compare’,’compareAttribute’=>’password2′),
array(‘inisial’, ‘length’, ‘max’=>10),
array(’email’,’email’,’checkMX’=>true),
array(‘deskripsi’, ‘safe’),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array(‘id_user, username, email, inisial, deskripsi, id_level’, ‘safe’, ‘on’=>’search’),
);
}

public function relations()
{
return array(
‘idLevel’ => array(self::BELONGS_TO, ‘LevelAdmin’, ‘id_level’),
);
}

public function attributeLabels()
{
return array(
‘id_user’ => ‘Id User’,
‘username’ => ‘Username’,
‘password’ => ‘Password’,
’email’ => ‘Email’,
‘inisial’ => ‘Inisial’,
‘deskripsi’ => ‘Deskripsi’,
);
}

public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.

$criteria=new CDbCriteria;

$criteria->compare(‘id_user’,$this->id_user);
$criteria->compare(‘username’,$this->username,true);
$criteria->compare(‘password’,$this->password,true);
$criteria->compare(‘enkrip’,$this->enkrip,true);
$criteria->compare(’email’,$this->email,true);
$criteria->compare(‘inisial’,$this->inisial,true);
$criteria->compare(‘deskripsi’,$this->deskripsi,true);
$criteria->compare(‘id_level’,$this->id_level);

return new CActiveDataProvider(get_class($this), array(
‘criteria’=>$criteria,
));
}

public function validatePassword($password)
{
return $this->hashPassword($password,$this->enkrip)===$this->password;
}

public function hashPassword($password,$salt)
{
return md5($salt.$password);
}

public function beforeSave()
{
$isinya=$this->generateSalt();
$dua=$this->password;
$this->enkrip=$isinya;
$this->password=$this->hashPassword($dua,$isinya);
$this->id_level=3;
return true;
}

protected function generateSalt()
{
return uniqid(”,true);
}
}

public $password2;
public $verifyCode;

dua baris di atas untuk menampung variabel password2(password konfirmasi) dan verifyCode(captcha).

public function rules() ===> mendefinisikan batasan/validasi dari variabel yang ada.
public function attributeLabels()===> mengeset label yang ada pada masing-masing variabel
public function validatePassword($password)===>mengecek apakah password sudah benar ato belum
public function hashPassword($password,$salt)===>mengenkripsi password sesuai dengan code yang diberikan
public function beforeSave()===>perintah ini dijalankan sebelum dilakukan penyimpanan
protected function generateSalt()===>menggenerate otomatis code enkripsi password.

Setelah kita otak-atik models ny, mari kita otak-atik views nya dengan cara:
Buka file pada protected/views/userAdmin/_form.php. Ubah code ny hingga menjadi seperti berikut:

Setelah mengubah code _form.php menjadi seperti gambar di atas, sekarang berikan link pada form login agar user dapat mengakses form register. Buka protected/views/site/login.php

Lalu tambahkan code berikut:

<p class=”hint”>

Belum punya akun, <?php echo CHtml::link(‘ silahkan register’,array(‘userAdmin/create’)); ?>

</p>

Setelah itu, buka aplikasi anda pada browser anda. Klik menu login, dan akan ada link yang akan mengarahkan anda pada menu register, klik menu register tersebut. Maka akan keluar tampilan seperti berikut:
Silahkan coba jalankan dan lihat hasilnya…

Selamat mencoba…

Saya bukanlah seorang master, hanya seorang pelajar yg mencoba sharing isi kepalanya..

Jika ada kesalahan dari yg saya buat, mohon koreksi…

Semoga membantu…

171 Responses to Membuat operasi login, logout dan register pada yii

  1. dbormamora says:

    Bit, gw punya masalah pas buat login-in ke dbase gw.. ada codingan aslinya ga?
    oia, kan gw bikin modifikasi di (protected\model) tabel yang mo dikonekin ke dbase (pas login itu),, harus gw modif jg ga view, or controllernya..? thanks b4, sorry ngerepotin…
    ^^’v

  2. sabitzhabit says:

    klo yg drubah ny itu kek saltpassword(kan ga d input, tapi otomatis di generate dari coding), nah itu di view ny d otak-atik bor.. Kalo controller bisa jadi d otak-atik, tapi dari yg ku contohin, controller itu ga d otak-atik.. ..

  3. steven says:

    aku coba buat tp muncul error ini
    Missing argument 2 for Member::hashPassword()
    apa ya maksudnya???

  4. sabitzhabit says:

    di hashPassword() itu kan ada 2 parameter gan haspassword($password,$salt). Nah, kalo saya lihat dari pesen error ny, itu berarti hashPassword() ny itu belum ada parameter nya.. Cz dsana saya lihat punya agan Member::hashPassword()..

  5. steven says:

    tq error nya ilang,tp skr dia malah gak bisa login krn username atau pass nya salah
    public function validatePassword($password)
    {
    return $this->hashPassword($password,$this->pass)===$this->pass;
    }

    public function hashPassword($password,$salt)
    {
    return md5($salt.$password);
    }

    dalam tabel saya password namanya pass.
    kira2 apa yg salah atau kurang y?tq

  6. sabitzhabit says:

    yang return $this->hashPassword($password,$this->pass)===$this->pass;
    diganti jadi gini gan:
    return $this->hashPassword($password,$this->$saltpassword)===$this->pass;

    tapi samain dg nama attribut di tabel agan juga attribut $saltpassword nya..

  7. steven says:

    sorry gan nubie nehh…
    gk ngerti attribut $saltpassword nya,itu di ganti apa mksdnya??
    dalam table member saya isinya..
    id_member, nama, pass, alamat, nohp, email.
    sorry gan merepotkan..
    baru bljar pke yii nih..
    T_T

  8. sabitzhabit says:

    oh, gini jadi gan.
    Jadi login yang saya buat di atas itu udah sekaligus enkripsi password gan. nah, jadi ntar password ny itu langsung di enkripsi(di ubah jadi sandi) biar ga bisa di lihat2 oleh orang lain password ny. Sedangkan $saltpassword itu adalah attribut yang digunakan untuk men descript(merubah sandi nya menjadi password asli nya)
    hehe, saya juga bngung nih jelasinnya gan. Ni kalo agan mw copy contoh source ada disini gan:http://www.4shared.com/file/hlaXF-cF/yii-login-apps.html. Dsana juga ane sertain code SQL yang ane pake gan…
    Semoga membantu..

  9. steven says:

    oke thank’s gan..
    aku coba2 dlo..

  10. Pingback: [Yii Framework] Membuat Forum Sederhana(1) « Sabitlabscode

  11. Pingback: [Yii Framework] Cara Reset Password « Sabitlabscode

  12. orgeous says:

    cara bikin verification code nya g mana yah?
    kok kgk di jelasin

  13. wahyu says:

    bang kok saya gak bisa login ya, gagal terus,
    saya sih curiga antara enkrip yang di db gak sama ama yang di buat validasi…
    klo cara baca is variable $this->enkrip biar tampil pas saat ada pesan error di login gmn ya ?
    pengen tak samain sama yang di db

  14. wahyu says:

    bang
    =================================================
    public function validatePassword($password)
    {
    return $this->hashPassword($password,$this->enkrip)===$this->password;
    }
    =================================================
    di bagian $this->enkrip yang diatas kok punya saya bukan ambil dari database malah generate baru lagi, jadi gak bisa login2(gak sama antara yang di db sama yang di validasi)
    padahal semua script sama kaya abang, saya jg dah download yang dari 4shared, saya cocokin sama semua , tapi punya abang kok bisa login punya saya gak bisa login, mohon pencerahan nya bang😀

  15. saya ga tahu pasti dimana salahnya karena ga tau coding detailny gan, tapi kalo error masalah login agan harus pastiin coding ny ga salah di :
    protected/model/NamaTabelUser.php
    dan
    protected/components/UserIdentity.php

    coba di cek dlu di bagian itu gan, klo masih ga bisa ntar tanya lagi aja gan..

    • wahyu says:

      makasih banyak banget mas😀
      error nya emang terletak di Useridentity.php sekarang udah jalan kok😀
      saatnya lanjut ke totorial selanjut nya😀

      • Ai JanuArt says:

        ini ane blm ketemu nih…😦
        udah utak atik tapi blm bisa login juga. username & pass udah sama. code juga akhirnya copas abis. tapi tetep blm bisa ya. “incorrect username or password”

  16. Maaf mas mau tanya kalo ini penjelasannya bgmna ya, hehe

    {
    $this->_id=$user->id_user;
    $this->username=$user->username;
    $this->errorCode=self::ERROR_NONE;
    }

    mohon bantuannya ya mas🙂

  17. kalo tidak salah(saya lupa) saya sudah saya jelaskan di ebook saya mas yg lebih rinci step by step nya..

    tapi akan saya jelaskan lagi utk bagian ini:

    pada kode sebelumnya dari kode di atas, dia di anggap username dan password yang diinput user sudah cocok dengan yang ada di database. Nah, kode di atas digunakan untuk menyimpan id user yg login, username user yang login, dan pesan error yg di tampilkan adalah tidak ada, karena sudah sukses..

  18. hamdan says:

    Password must be repeated exactly.

    ne pas kolom password
    kenapa ya?

  19. artinya password 1 dan password 2 nya ga sama..

  20. coba di cek lagi kode nya gan.. mngkin ada yg salah di model nya..
    atau lihat di contoh aplikasi ebook saya aja gan.. disana ada cntoh nya..

  21. seinget saya pake yang 1.1.7. Tapi pake yg lebih tinggi gapapa..

  22. anhardeni says:

    semoga amal ibadah gan sabit mengalir terus dengan ebook ini , amin terimakasih

  23. dafa says:

    kuq gag bisa ya kak???

    dah aku coba kemaren…

    beda tingkatan yii nya pa ya kak kuq gag bisa tu?

  24. ga bisa nya kenapa gan?

  25. adi says:

    mas fungsi super admin, admin n customer buat apa ya?
    terus misalkan kalo saya mau ada super admin (dia bisa buat username lagi) dan admin aja (g bisa buat username baru) itu gimana caranya ya?
    thanks😀

  26. itu untuk level nya gan..
    berarti untuk setiap user mau register, jangan ada pilihan jadi level admin gan. Dengan gitu dia ga akan ada lagi yang ngedaftar sebagai admin..

  27. adi says:

    nah cara bikin admin utamanya gimana mas?

  28. adi says:

    jadi misalnya gini loh mas, saya pengennya ada 2 admin aja, ada super admin dan admin, kalo super admin privillege nya bisa semua, sementara kalo admin g bisa buat username baru aja, nah itu gimana cara buatnya mas?

  29. coba cari aja di blog saya tentang level akses mas.. itu udah ada..

  30. adi says:

    oke mas,
    makasih ya😀

  31. malih says:

    mas saya mau nanya
    misalkan data saya ada banyak bgt
    dan saya ingin menambahkan opsi last page n first page di halaman admin.php gimana ya?
    dan ingin menambahkan multiple delete (ada fitur checklist seperti di phpmyadmin) itu gimana y caranya?
    terima kasih mas😀

  32. kalo untuk first n last, itu di atur dari CSS nya aja gan.. cz dari Yii nya di hidden..
    kalo fitur delete kayak PHP my admin, coba baca tentang ini: https://sabitlabscode.wordpress.com/2012/01/13/yii-framework-select-many-data-from-cgridview/

    tinggal di kotak-katik aja gan..

  33. malih says:

    kalo di hidden berarti bisa di unhidden dong mas?
    boleh tau g kira2 dimana letak css nya?

  34. iya, bisa mas.. wah coba di googling aja mas.. ada banyak yang ngalamin hal yang sama kayak mas..

  35. Rafii says:

    gan klo errornya kaya gini gimana? User and its behaviors do not have a method or closure named “generateSalt”.

  36. berrti belum ada fungsi generateSalt di mdoel User..

  37. devan says:

    Gan….saya lg belajar Yii nich dpet ksulitan pas login
    daper error di
    Parse error: syntax error, unexpected ‘?’ in C:\xampp\htdocs\testyii\protected\components\UserIdentity.php on line 20

    brarti error di ‘?’ ane rubah2 tetep g bsa

    pdahal saya ud sama bgt sama coding yg agan post

  38. wah, coba agan donlot code nya yang udah saya share.. coba baca aja komentar2 di postingan ini.. ada saya kasih link nya gan..

  39. coco says:

    maaf om, mau nanya kalo misal registernya pake akun facebook gt gimana ya, makasih

  40. mas says:

    kalo saya halam login admin nya gk bisa masuk, meskipun diketik admin/admin ataupun di input di phpmyadmin sama juga gk bisa masuk,,. semua coding gk ada yang error tapi masalhanya gk bisa masuk u/ ngedit

  41. @coco : itu sih pake facebook api, coba search aja di wiki nya yii framework.. pernah ada yang posting tutor nya kok..

    @mas : coba pelajari tentang level akses user mas.. itu agak panjang juga kalo mau di jelasin satu-satu..

  42. dwijonarko says:

    terimakasih, sangat membantu🙂

  43. mas says:

    udah saya konek ke adminnya malashnya ketika input email gk validasinya bagaimana tuh
    http://imageshack.us/f/14/18888791.jpg/ –> tolong dijelasin validnya gimana
    pada saat create user baru $criteria->compare(‘enkrip’,$this->enkrip,true);
    $criteria->compare(’email’,$this->email,true); –> saya matikan false
    $criteria->compare(‘inisial’,$this->inisial,true);
    dan
    $criteria->compare(’email’,$this->email,true);
    malah input halaman login saya akalin. jadi defauld dulu baru balin kesemula
    public function authenticate()
    {
    /*
    $users=array(
    // username => password
    ‘demo’=>’demo’,
    ‘admin’=>’admin’,
    );
    if(!isset($users[$this->username]))
    $this->errorCode=self::ERROR_USERNAME_INVALID;
    else if($users[$this->username]!==$this->password)
    $this->errorCode=self::ERROR_PASSWORD_INVALID;
    else
    $this->errorCode=self::ERROR_NONE;
    return !$this->errorCode;
    }
    */
    $user=UserAdmin::model()->find(‘LOWER(username)=?’,array(strtolower($this->username)));
    if($user===null)
    $this->errorCode=self::ERROR_USERNAME_INVALID;
    else if(!$user->validatePassword($this->password))
    $this->errorCode=self::ERROR_PASSWORD_INVALID;
    else
    {
    $this->_id=$user->id_user;
    $this->username=$user->username;
    $this->errorCode=self::ERROR_NONE;
    }
    return $this->errorCode==self::ERROR_NONE;
    }
    }

  44. akbar says:

    Database nya error

  45. Sori2 saya lama bales nya karena lagi banyak kerjaan..
    @mas : itu di public function rules untuk validasinya
    @akbar : error nya apaan?

  46. akbar says:

    udah bisa gan thanks nice tutorial

  47. KM says:

    gan ane agak bingung nih ada yg salah…

    gini pesan di web nya
    Parse error: in C:\xampp\htdocs\Tugas_Yii\protected\views\site\login.php on line 14

    ini kalo yg di notepad+++ nya

    Belum punya akun,

    Login

    kalo dari web yg salah itu baris yg ini doank gan
    <?php echo CHtml::link(‘silahkan register’,array(‘userAdmin/create’)

    mohon bantuannya donk. thx

  48. KM says:

    gan ane agak bingung nih ada yg salah…

    gini pesan di web nya
    Parse error: in C:\xampp\htdocs\Tugas_Yii\protected\views\site\login.php on line 14

    ini kalo yg di notepad+++ nya

    Belum punya akun,

    Login

    kalo dari web yg salah itu baris yg ini doank gan
    <?php echo CHtml::link(‘silahkan register’,array(‘userAdmin/create’)

    mohon bantuannya donk. thx

    kalo ini yg source fullnya di login.php

    pageTitle=Yii::app()->name . ‘ – Login’;
    $this->breadcrumbs=array(
    ‘Login’,
    );
    ?>

    Belum punya akun,

    Login

    Jika Ingin melanjutkan Step berikutnya Silahkan Login:

    beginWidget(‘CActiveForm’, array(
    ‘id’=>’login-form’,
    ‘enableClientValidation’=>true,
    ‘clientOptions’=>array(
    ‘validateOnSubmit’=>true,
    ),
    )); ?>

    Isilah Kotak * di bawah ini.

    labelEx($model,’username’); ?>
    textField($model,’username’); ?>
    error($model,’username’); ?>

    labelEx($model,’password’); ?>
    passwordField($model,’password’); ?>
    error($model,’password’); ?>

    Hint: mau tau banget Loginnya ? admin/admin.

    checkBox($model,’rememberMe’); ?>
    label($model,’rememberMe’); ?>
    error($model,’rememberMe’); ?>

    endWidget(); ?>

  49. wah, agak kurang jelas gan.. tapi mending di cek aja di baris ke 14 di form “login.php”

  50. samsul says:

    mas kug q klik yang Belum punya akun g bisa ya keluar eror :

    Error 404
    Unable to resolve the request “userAdmin/create”.

    Belum punya akun,

  51. samsul says:

    gan uda bisa nih yang td cuma ad kendala lagi maklum ane masi belajar mohon maaf kalo ngerepotin tapi ane minta bantuanya ya,,

    ada yang eror waktu memanggil captcha gni erornya gan :

    Fatal error: Call to undefined function extensions_loaded() in C:\xampp\htdocs\travel\protected\views\tblUserAdmin\_form.php on line 54

    td q pake extensions_loaded(‘gd’) jd sama kyak tutorialnya mas

  52. coba di search di blog ini ada postingan tentang cara pake captcha mas.. itu karena mas belum load captcha nya..

  53. indyourdestination says:

    Gan mau nanya nih
    ane nyobain dari ebook agan yang bikin forum
    1.nah jadi gini, ada error sampe tahap create user itu bisa diakses siapa aja.
    disitu agan tambahin code ‘expression’=>’$user->getLevel()array(‘*’);
    nah terus bisa kebuka page nya, tapi pas insert error lagi gan
    begini katanya :Property “User.isActive” is not defined.

    Mohon pencerahan gan. THanks

  54. indyourdestination says:

    Gan mau nanya nih, sorry post yang diatas/sblmnya kayaknya salah deh
    ane nyobain dari ebook agan yang bikin forum

    1.nah jadi gini, ada error sampe tahap create user itu bisa diakses siapa aja.
    disitu agan tambahin code ‘expression’=>’$user->getLevel()array(‘*’);
    nah terus bisa kebuka page nya, tapi pas insert error lagi gan
    begini katanya :Property “User.isActive” is not defined.

    Mohon pencerahan gan. THanks

  55. di database nya kemungkinan tabel user ga ada field “isActive” gan..

  56. APoneldlek says:

    test

  57. joen says:

    Gan Sabit,

    Nanya nih, saya ada kendala di component UserIdentity.php

    Sebelum testing running saya sudah melakukan:
    1. create database
    2. Setting main.php (koneksi db, gii)
    3. Setting Model & CRUD (di code generator)

    Waktu testing running di http://localhost/UserAdmin/index.php?r=gii/crud muncul pesan:

    Parse error: syntax error, unexpected ‘?’ in C:\wamp\www\UserAdmin\protected\components\UserIdentity.php on line 20

    Line 20 itu disini:
    $user=UserAdmin::model()->find(‘LOWER(username)=?’,array(strtolower($this->username)));

    Kira-kira kekurangannya dimana ya?

    Mohon pencerahannya Master..

  58. mas langsung kopas ga code nya dari blog ini? kalo iya, jangan mas.. ada perbedaan tanda petik nya.. mending coba di tulis aja.. sekalian mengasah kemampuan..

  59. danwin says:

    omm mau nanya apakah ada hubungan dengan Cwebuser

  60. danwin says:

    saya masih bingung dengan tidak bisa login user yang saya buat itu kesalahan dari mana biasanya ,as

  61. fuad says:

    bang.. gimana caranya agar kalo kita create dari user unregister menggunakan captcha, tapi kalo kita udah login sebagai admin tidak menggunakan captcha lagi?

  62. dean says:

    Gan, kalo kita mau ambil id_user yang lagi login nya gimana ya gan ? mohon pencerahannya.
    Maklum ane newbie gan hehe🙂

  63. buyung says:

    permisi mau tanya..
    di tahap akhir penambahan script

    Belum punya akun,

    di taruh di line berapa agar tidak menjadi error?
    terimakasih, tolong di bantu.

    • buyung says:

      permisi mau tanya..
      di tahap akhir penambahan script

      Belum punya akun,

      di taruh di line berapa agar tidak menjadi error?
      terimakasih, tolong di bantu.

  64. buyung says:

    permisi mau tanya..
    di tahap akhir penambahan script

    di taruh di line berapa agar tidak menjadi error?
    terimakasih, tolong di bantu.

    Reply

    • bisa lebih di perjelas mksd nya gan?

      • buyung says:

        maaf mas sabit mau tanya..
        penggunaan $user=UserAdmin::model itu mksdnya memanggil isi dari tabelnya yg sudah di generate melalui gii ya?

        seandainya saya menggunakan tabel saya dmn $user=HealthUsers::model maka apa seperti ini yg harus saya buat?

        terimakasih, krn saya sambil belajar menggunakan yii sebagai tugas akhir.
        mohon pencerahannya..

  65. iya mas. Itu nama modelnya yg penting di ambil..

    • buyung says:

      tanya lg mas, kn saya ud ikuti proses yg di atas setelah saya tambahkan keterangan untuk link register kok gak muncul di index?
      tp wkt saya demo dr download tutorial login untuk link register bisa menampilkannya di index seperti gambar.
      kira-kira apa yg kurang atau yg salah dr program saya?
      makasih..

  66. buyung says:

    sudah bisa mas..
    ternyta di controllernya untuk keterangan user dengan tanda * belum saya buat array untuk (‘create’)

    TQ

  67. 3A says:

    kalo buat hak aksesnya gimana ya ko semuanya yang daftar masuk nya cuma jadi user, jadi gabisa manage
    saya tunggu jawabannya

    terimakasih…

  68. 3A says:

    oh iya makasih ya gan….🙂

  69. Yanz says:

    Gan buat hak akses cara setting nama table nya gmna,
    saya baru blajar YII

  70. iqbaltaufik says:

    agan maaf newbie nih,, pngen nanya gmna cara instal rights extention ko error terus yah ??
    padahal udah ngikutin petunjuk agan…
    mohon pencerahannya..

  71. gan ane nyoba in yang ada di buku menjelajeh yii….pas ane cobain fungsi create, ane nemuin kek ginian “CWebUser and its behaviors do not have a method or closure named “getLevel”. ”
    mohon bantuannya gan

  72. Zainul Rohman says:

    agan saya newbie mo nanya
    gan ane nyoba in yang ada di buku menjelajeh yii….pas ane cobain fungsi create, ane nemuin kek ginian “CWebUser and its behaviors do not have a method or closure named “getLevel”. ”
    mohon bantuannya gan

  73. buat gini config nya gan :

    ‘components’=>array(
    ‘user’=>array(
    ‘allowAutoLogin’=>true,
    ‘class’=>’application.components.EWebUser’
    ),

  74. Mas, Punyaku ko muncul pesan error gini ya??
    puny saya ini yang salah d bagian mananya ya?

    “Parse error: syntax error, unexpected ‘endif’ (T_ENDIF) in C:\xampp\htdocs\yii\coba\protected\views\user\_form.php on line 56”

    dan ini scrip _form saya. baris ke 56 itu ,

    42
    43 labelEx($model,’id_level’); ?>
    44 textField($model,’id_level’); ?>
    45 error($model,’id_level’); ?>
    46
    47
    48
    49
    50
    51
    52 widget(‘CCaptcha’); ?>
    53
    54
    55 ketikan gambarnot case-sensitif.
    56
    57
    58 isNewRecord ? ‘Create’ : ‘Save’); ?>
    59
    60
    endWidget(); ?>

    Thx Mas,

  75. marufben says:

    Parse error: syntax error, unexpected ‘?’ in D:\xampp\htdocs\login\protected\models\LoginForm.php on line 49
    gan kalo ini erronya knapa ya ? thx

  76. marufben says:

    public function authenticate()
    {
    $user=UserAdmin::model()->find(‘LOWER(username)=?’,array(strtolower($this->username)));
    if($user===null)
    $this->errorCode=self::ERROR_USERNAME_INVALID;
    else if(!$user->validatePassword($this->password))
    $this->errorCode=self::ERROR_PASSWORD_INVALID;
    else
    {
    $this->_id=$user->id_user;
    $this->username=$user->username;
    $this->errorCode=self::ERROR_NONE;
    }
    return $this->errorCode==self::ERROR_NONE;
    }

    errornya di script yang ini

  77. model loginForm nya ga ada berrti mas..

  78. Helmi says:

    muncul error setelah klik tombol create, :

    Use of undefined constant ” – assumed ‘”’
    C:\xampp\htdocs\big\protected\models\TblUserAdmin.php(140)

    128 }
    129 public function beforeSave()
    130 {
    131 $isinya=$this->generateSalt();
    132 $dua=$this->password;
    133 $this->enkrip=$isinya;
    134 $this->password=$this->hashPassword($dua,$isinya);
    135 $this->id_level=3;
    136 return true;
    137 }
    138 protected function generateSalt()
    139 {
    140 return uniqid(”,true);
    141 }
    142 }
    143
    144
    145

    itu knp ya mas???

  79. pengen belajar says:

    saya agak bingung menentukan scrip userIdentity kira2 mana yg bagus?? kalo punya sabit banyak sekali yg harus di edit. kalo di sini agak simpel saya jadi bingung

    http://www.yiiframework.com/forum/index.php/topic/32415-create-login-form/page__p__155986__fromsearch__1#entry155986

  80. ikutnongrong says:

    gimana caranya supaya saya bisa memfilter agar username admin tidak bisa di gunkan pada saat pendaftaran

  81. same nyster says:

    gan ane mau nanya??? pas bikin register udh bisa tp pas di klik create dia keluar error

    Property “User.isActive” is not defined.
    blablabla

    maksudnya apa ya gan ? mohon maaf ane newbie🙂
    ditunggu jawaban gan:D
    thanks gan

  82. Zahrian says:

    agan sabit ane nyoba membuat sesuai yang disebutkan, halam berhasil kebuat dan juga berhasil register cuma ketika login kok muncul kata ini dari log nya yii [Property “UserIdentity.id” is read only]

  83. hestylukita says:

    sebelumnya makasih banget. sangat berguna.. tapi saya ada error di bagian UserIdentity. Ketika daftar, sudah berhasil, tapi ketika mau login, ada error di bagian itu, tepatnya di bagian $this->_id=$user->id_user;
    _id nya not defined. mohon pencerahannya. terimakasih sekalilagi…

  84. Dita ningtyas says:

    bg sabit, ane nyoba sesuai yg dibuku tapi ko ga bisa login ya??
    ini errornya :
    CException

    Property “User.” is not defined.

    C:\xampp\yii\framework\db\ar\CActiveRecord.php(144)
    bla bla bla….

    ini skrip useridentitynya:
    class UserIdentity extends CUserIdentity
    {
    private $_id;

    public function authenticate()
    {
    $user = User::model()->find(‘LOWER(username)=?’,array(strtolower($this->username)));
    if($user==null)
    $this->errorCode=seft::ERROR_USERNAME_INVALID;
    if(!$user->validatePassword($this->password))
    $this->errorCode=self::ERROR_PASSWORD_INVALID;
    else
    {
    $this->_id=$user->id;
    $this->username=$user->username;
    $this->errorCode=self::ERROR_NONE;
    }
    return $this->errorCode==self::ERROR_NONE;
    }

    public function getId()
    {
    return $this->_id;
    }

    ini validatenya di model user:

    public function validatePassword()
    {
    return $this->hashPassword($password,$this->$saltPassword)===($this->$password);
    }
    public function hashPassword($password,$Salt)
    {
    return md5($salt.$password);
    }
    public function generateSalt()
    {
    return uniqid(”,true);
    }

    itu kenapa ya??

  85. oh, iya gan.. mungkin disana.. coba definisiin lagi relasi nya gan..

  86. Dita ningtyas says:

    udah ane tambahin relationsnya tetep ga bisa. errornya tetep sama :
    CException

    Property “User.” is not defined.

    C:\xampp\yii\framework\db\ar\CActiveRecord.php(144)

    132 */
    133 public function __get($name)
    134 {
    135 if(isset($this->_attributes[$name]))
    136 return $this->_attributes[$name];
    137 else if(isset($this->getMetaData()->columns[$name]))
    138 return null;
    139 else if(isset($this->_related[$name]))
    140 return $this->_related[$name];
    141 else if(isset($this->getMetaData()->relations[$name]))
    142 return $this->getRelated($name);
    143 else
    144 return parent::__get($name);
    145 }
    146 bla bla bla….

  87. root12 says:

    bit.. gimana caranya agar pada saat registrasi…biasanya kan saya liaht password1->abcd dan password2 ->abcdf= kalo bisa lolos jadi passwordnya ada dua.. nah gimana caranya agar password1=password2 disamakan, filternya gimana,, jika password1 dan pwd2.. jika tidak sama maka akan ada peringatan,, bahwa password1=password2 harus sama

    • itu udah ada gan : array(‘password’, ‘compare’,’compareAttribute’=>’password2′), untuk ngecek apakah password1 dan password2 sama.. jika beda, maka gagal simpen.

  88. Reza Pahlevi says:

    mas saya coba buat formnya udah bisa tapi pas di bagian registrasi gambar captcha-nya ga muncul trus pas di klik ada error:

    CCaptchaValidator.action “captcha” is invalid. Unable to find such an action in the current controller.

    itu knp ya kira2 mas?

  89. Asep Permana says:

    Punya sya error begini, saya sudah ikutin komen2 sebelumnya yang punya masalah yang sama, tpi belum juga nemuin jawaban yang bisa bantu saya.
    CWebUser and its behaviors do not have a method or closure named “getLevel”.

  90. Rahmat Mulia says:

    mohon bantuanya gan,,, ini terjadi disaat ane coba jalankan
    terima kasih sebelumnya

    include(lenghth.php): failed to open stream: No such file or directory
    C:\wamp\www\yii\framework\YiiBase.php(396)

    384 * @return boolean whether the class has been loaded successfully
    385 */
    386 public static function autoload($className)
    387 {
    388 // use include so that the error PHP file may appear
    389 if(isset(self::$_coreClasses[$className]))
    390 include(YII_PATH.self::$_coreClasses[$className]);
    391 else if(isset(self::$classMap[$className]))
    392 include(self::$classMap[$className]);
    393 else
    394 {
    395 if(strpos($className,’\\’)===false)
    396 include($className.’.php’);

  91. bema says:

    maaf tanya gan, itu cara buat adminnya gimana? misal saya mau buat username sama password buat admin..

  92. cengklek says:

    gan ,mau nanya ni uda sampek tahap akhir pas coba aq jalanin da error di link silahkan registrasinya udah tk ruba jadi tblUserAdmin/create g da error tp masih di halaman login g mau k halaman registrassinya..
    tlg ksh solusinya y gan,terima kasih…

    • coba agan baca ebook saya gan.. jadi dia selalu ke halman login karena agan belum ngasih hak akses nya..

    • denny daniel says:

      coba ulangi dari awal, ke gii. tahap pertama tabel name tbl_user_admin dan yg benar modelnya buat useradmin, jgn pakai tbl di model. bgitu juga nanti di crud nya modelnya UserAdmin dan controllernya juga sama. baru ikuti prosedur content script di atas dan selesai koding pasti muncul halaman register. thanks

  93. cengklek says:

    gan sory nanya lagi maklum lagi newbie kok ada error kyk gini ya gan
    include(lenght.php): failed to open stream: No such file or directory
    kira2 salah coding dmnnya ya gan??
    thanks..

  94. adekkecil182 says:

    gan, aku nyoba yang tutor membuat forum di e-book agan, tapi ada error pas pas habis buat untuk register user gan,

    ” CWebUser and its behaviors do not have a method or closure named “getLevel”. ”

    errornya kayak gitu, itu apanya ya?makasih😀

  95. deny says:

    gan kok saya ada erorr di syntax ini ya
    $user=UserAdmin::model()->find(‘LOWER(username)=?’,array(strtolower($this->username)));
    katanya unexpected gitu “?”

  96. tejo author says:

    saya pengen login saja yang terintregasi dengan db-
    saya mengikuti langkah dgn mengganti useridentity.php seperti
    yg agan terangkan tp malah muncul page blank.
    password saya ganti pwd(tetap pwd juga sama kagak jalan) karena db saya pwd dan id_user saya ganti dengan id.
    mohon solusinya saya hanya perlu login jadi belum perlu register jadi saya hanya mengganti useridentity saja. Thanks

  97. denny daniel says:

    gan, ini knapa muncul “Password must be repeated exactly.” saat kita register. lebih fokusnya ke password. should be i send a screenshot to you when you need it ?

  98. Gan newbie nih hehe
    udah ngikutin tutor dari awal sampe akhir, pas dijalanin ada error gini
    Division by zero
    errornya bagian ini
    Belum punya akun,

    ini kenapa ya? mohon bantuannya

  99. ZamZam4 says:

    bang kok jadinya error ya???
    gini pesannya “Unable to resolve the request “userserAdmin/create”.”

  100. azhar says:

    om kok. gambar captchanya gag muncul yah, mohon pencerahannya om….

  101. o7yo76yo says:

    mas sabit, mau tanya bedanya admin, sama superadmin utk program diatas gmn ya mas sabit?
    terus kalau saya mau merubah level user menjadi level 1 misalkan, caranya gmn? apa harus dari database nya?

    • kalo masalah beda nya apa itu cuma beda hak akses masing-masing. Jadi programmer bisa tentuin sendiri apa aja yang bisa diakses oleh admin dan apa aja yang boleh oleh super admin. Untuk rubah level bisa aja tapi dibuat sendiri lagi code untuk update nya agar ga selalu lewat database.

  102. mas mau nanya, kalo untuk mengambil waktu login dan waktu logout, kemudian dimasukkan ke dalam database, kalo di Yii gimana ya?

  103. Uthe says:

    gan…semua tutor di atas dah diikutin tapi kenapa pas klik link silahkan register gak masuk ke form register ya, tetap masuk ke page login…mohon pencerahannya. terima kasih

  104. adhiejazzy says:

    nanya gan.. pas setting gii nya udah, trus jalankan http://localhost/informatika/index.php?r=gii malah error jadinya bgini Unable to resolve the request “gii”. itu gmna ya

  105. raizo6 says:

    kalau strtolewer nya error gimana ??

    • raizo6 says:

      08 defined(‘YII_DEBUG’) or define(‘YII_DEBUG’,true);
      09 // specify how many levels of call stack should be shown in each log message
      10 defined(‘YII_TRACE_LEVEL’) or define(‘YII_TRACE_LEVEL’,3);
      11
      12 require_once($yii);
      13 Yii::createWebApplication($config)->run();

      om ??

  106. annut says:

    nanya gan, udah buat persis bgt sama kodingan diatas cuma pas klik link “silakan register” form registernya ga muncul tetep di login.
    itu gimanaya gan?

  107. om knp ga bisa login???

  108. pada saat create akun error gini gan…
    Property “User.isActive” is not defined

    itu knapa yahhh????

  109. indramustholih says:

    gan kalo error gini kenapa ? Use of undefined constant ” – assumed ‘”’

  110. yodhi says:

    Kalo login menggunakan yii 2 sama ngak mas ? Atau ada perbedaannya?

  111. Maksudi says:

    gan, saya pas input password 1 sama yg repeat. ko muncul error “password2 must be repeated exactly.” padahal udh sama nulisnya. kodingannya juga udh sama. Pencerahanya gan

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: