[ASK] Membuat Session Dari Database

Para masta yii, saya pengguna yii masih newbie banget nih, baru 3 minggu saya belajar, untuk saat ini saya masih mencoba membuat session dengan tabel user, tapi selalu gagal. Saya mempunya tabel sprti ini:

Nama tabel : tbl_user


|UserID | NamaUser | Password | Level |


| 1 | Asep | ******** | admin |

| 2 | Tono | ******** | user |


Saya ingin mengambil NamaUser sesuai session, kodingnya seperti ini :

$session = new CHttpSession;

$user=‘SELECT NamaUser FROM tbl_user WHERE UserID=$id’

$session->add(‘NamaUser’,$user);

echo $session->get(‘NamaUser’);

Hasilnya malah seperti ini

SELECT NamaUser FROM tbl_user WHERE UserID=$id

… bagaimana solusinya ya?? :(

Biasanya untuk menyimpan data user pakai $session, kita biasanya pake komponen CWebUser di Application,

tapi untuk ngebetulin yang di atas lebih baik kayak gini…




$namauser = Yii::app()->db->createCommand("SELECT NamaUser FROM tbl_user WHERE UserID=$id")->queryScalar();

$session=new CHttpSession;

$session->open();

$session['username'] = $namauser;

echo $session['username'];



tapi jelas lebih bersih kalau pake CWebUser sih :)

http://www.yiiframework.com/doc/api/1.1/CWebUser

Mr.Petra, sebelumnya terimakasih postingan saya sudah di respon, setelah saya coba memang sudah bisa untuk ambil data user. Dari coding di atas, jika saya masukan &d=1 maka munculnya adalah Asep, kalo &id=2 muncul Tono.

Sebenarnya saya ingin jika pas login (memasukkan username dan password) itu otomatis saya dapat memunculkan username tersebut sesuai dengan pada saat loginnya. Saya kira koding session di atas otomatis register session, tapi ternyata agak sedikit susah pemakaiannya.

Misal :

Jika saya memasukan username= asep dan password=******** maka muncul di halaman home itu username= asep.

Saya sebelumnya pernah bikin dengan PHP prosedural biasa,logikanya session itu di daftarkan di cek_login.php (file yang dituju setelah memasukkan Username dan password, saya jadikan file itu sebagai action di login.php).Tapi kalo di YII saya benar2 masih bingung, karena actionnya tidak begitu jelas karena hanya ada


<?php $form=$this->beginWidget('CActiveForm', array(

	'id'=>'login-form',

	'enableClientValidation'=>true,

	'clientOptions'=>array(

		'validateOnSubmit'=>true,

	),

)); ?>

bagaimana caranya ya, mohon sekali bantuannya? Di bawah ini coding di yiinya. lokasi (protected/views/site/login.php)





<?php

$this->pageTitle=Yii::app()->name . ' - Login';

$this->breadcrumbs=array(

	'Login',

);

?>


<h1>Login</h1>


<p>Please fill out the following form with your login credentials:</p>


<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(

	'id'=>'login-form',

	'enableClientValidation'=>true,

	'clientOptions'=>array(

		'validateOnSubmit'=>true,

	),

)); ?>


	<p class="note">Fields with <span class="required">*</span> are required.</p>


	<div class="row">

		<?php echo $form->labelEx($model,'username'); ?>

		<?php echo $form->textField($model,'username'); ?>

		<?php echo $form->error($model,'username'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'password'); ?>

		<?php echo $form->passwordField($model,'password'); ?>

		<?php echo $form->error($model,'password'); ?>

		<p class="hint">

			Hint: You may login with <tt>demo/demo</tt> or <tt>admin/admin</tt>.

		</p>

	</div>


	<div class="row rememberMe">

		<?php echo $form->checkBox($model,'rememberMe'); ?>

		<?php echo $form->label($model,'rememberMe'); ?>

		<?php echo $form->error($model,'rememberMe'); ?>

	</div>


	<div class="row buttons">

		<?php echo CHtml::submitButton('Login'); ?>

	</div>


<?php $this->endWidget(); ?>

</div><!-- form -->

hooo, berarti belum baca Yii user guidenya toh,

untuk autentikasi login itu ada class yg namanya CUserIdentity

http://www.yiiframework.com/doc/api/1.1/CUserIdentity

kemudian untuk nyimpen data user di session itu ada class yg namanya CWebUser

http://www.yiiframework.com/doc/api/1.1/CWebUser

silakan dibaca dulu guidenya :D

http://www.yiiframework.com/doc/guide/1.1/id/topics.auth

hehe…

jadi malu :D

thanks om infonya… akan saya coba-coba dulu.

akhirnya bisa juga… :lol:

thanks bgt om… semoga tidak bosan jika ada pertanyaan yuag lain.

Maaf kalo sudah merepotkan.

Salam

Sang Newbie