Global session?

eh,temen-temen ada yang tahu nih cara membuat global session di yii,gmana?

Menyimpan data di session:


Yii::app()->session->add('value_1', 'Isi session value_1');

,

membacanya:


$value_1 = Yii::app()->session->get('value_1');

ya… benar. ternyata untuk session global sudah paket di dalam yii. tinggal pake saja, caranya masukkan dalam protected/views/layout/main.php yaitu:




$session = new CHttpSession;

$session->add('value_1','isinya');



terus masukkan nilai session itu ke dalam baris yang ingin ditampilkan gunakan perintah:




$session->get('value_1');



semoga temen-temen yang lain punya cara yang lebih mantap. thanx

mau tanya nih…


$session->add('value_1','isinya');

yg dimaksud "value_1" dan "isinya" itu apa ya? saya belum paham betul.

Bisakah diberikan contoh yg simpel saja?

value_1 itu nama sessionnya

isinya itu isi dari value_1

contoh:




$session->add('ses_username','grandong');



maka saat di jalankan perintah




$session->get('ses_username');



akan di dapat nilai grandong

mudah-mudahan ngak salah tangkap akunya… :)

Aku comot ya tutorialnya gan. mohon ijin :)

wah mantap ni agan yg satu ini… thanks dah di replay

Lanjutkan… ;D

oya satu lagi gan, sory bgt sy coba destroy ko ga bisa ya pada saat logout


	public function actionLogout($destroySession=true)

	{

		Yii::app()->user->logout();

		$this->redirect(Yii::app()->homeUrl);

	}

itu coding sy, gmn solusinya ya?

saya sih biasanya pake Yii::app()->user->setState sih :P

ane juga pernah menggunakan cara kayak om petra tapi belum berhasil juga

tabelnya seperti ini

ane pakai cara kayak gini

protected/components/userIdentity.php




<?php


class UserIdentity extends CUserIdentity

{

	public function authenticate()

	{

	


	private $_id;

	public function authenticate()

    {

        $record=User::model()->findByAttributes(array('username'=>$this->username));

        if($record===null)

            $this->errorCode=self::ERROR_USERNAME_INVALID;

        else if($record->password!== md5($this->password))

            $this->errorCode=self::ERROR_PASSWORD_INVALID;

        else

        {

            $this->_id=$record->UserID;

            $this->setState('status', $record->status);

            $this->errorCode=self::ERROR_NONE;

	    $this->setPersistentStates(array(

                'password' => $this->password,

                // set any other user data

                //'id' => $record->UserID,

            ));

        }

        return !$this->errorCode;

    }

 

    public function getId()

    {

        return $this->_id;

    }

}

kalau read pakai ini


echo Yii::app()->user->id;

dan keluarlah UserID = 1(maksudnya disini admin, kalau 2 itu user) (cara ini berhasil)

Yang jadi masalah di sini, saya hanya berhasil jika menggunakan id, kalau saya tambahkan coding


$this->setState('status', $record->status);

utuk read ane pakai ini


echo Yii::app()->user->status;

tapi cara itu ga bisa

muncul pesan

itu kira2 kenapa ya? Mohon sekali pencerahannya…

coba baca ini, mungkin bisa membantu:

Web User

status harus di definisikan dulu di class CWebUser

Alhamdulillah akhirnya berhasil juga

ini cara saya sesuai referensi dari Om Hermans

Ada 3 tahap

  1. Buat file baru protected/components/WebUser.php

<?php

class WebUser extends CWebUser

{

    private $_model;

	function getStatus(){

    	  $user = $this->loadUser(Yii::app()->user->id);

    	  return $user->status;

  	}

	

	function isAdmin(){

          $user = $this->loadUser(Yii::app()->user->id);

          return intval($user->status) == 1;

        }

  

        protected function loadUser($id=null)

        {

           if($this->_model===null)

           {

            if($id!==null)

                $this->_model=User::model()->findByPk($id);

        }

        return $this->_model;

    }

}

?>

  1. buka file protected/config/main.php

tambahkan sintaks ini


	'components'=>array(              //sintaks ini sudah ada, cari aja

		'user'=>array(

		// enable cookie-based authentication

		'allowAutoLogin'=>true,

        	'class' => 'WebUser',     // Ini yg di tambahkan

		),



  1. Cara bacanya

protected/views/layout/main.php


echo Yii::app()->user->status;

Thanks For All, semoga ini bisa membantu juga buat yang lain :lol: