نمایش نتایج 1 تا 2 از 2

نام تاپیک: كلاس كار با سشن!

  1. #1

    كلاس كار با سشن!

    با سلام.

    دوستان يك كلاس براي كار با سشن نوشتم.
    متد هاش كلا از متهاي جادويي استفاده كردم.
    ,__call __get , __set , __construct , __unset


    اينم كد كلاس:
    <?php
    /**
    * Session class for using sessions.
    * @author Mohammad Mahdi gholamian
    * @version 2
    * @copyright agham24@yahoo.com , 2013
    */

    namespace library;

    class session{
    /**
    * session safe mode.
    * @var bool
    */
    private $safe = true;
    /**
    * Construct.
    * Start session if not started yet.
    */
    function __construct( )
    {
    $this->manager()->start();
    }
    /**
    * Get a session.
    * @param string $session_name
    * @return mixed
    * @access public
    */
    function __get( $session_name )
    {
    if( substr( $session_name , 0 ,1 ) == "_" ){
    $this->safe = false;
    $session_name = substr( $session_name , 1 );
    }
    if( ! isset( $_SESSION[$session_name] ) ){
    return false;
    }
    if( $this->safe == true )
    return htmlspecialchars( $_SESSION[$session_name] );
    else
    return $_SESSION[$session_name];
    }
    /**
    * Update session value or add a session.
    * @param string $session_name
    * @param mixed $_session_value
    * @return mixed
    * @access public
    */
    function __set( $session_name , $_session_value )
    {
    $_SESSION[$session_name] = $_session_value;
    return $_session_value;
    }
    /**
    * Unset a session.
    * @param string $session_name
    * @return bool
    * @access public
    */
    function __unset( $session_name )
    {
    if( ! $this->$session_name )
    return false;
    unset( $_SESSION[$session_name] );
    return true;
    }
    /**
    * Get object of SessionManagement class.
    * @param string $name
    * @param array $args
    * @return mixed
    */
    function __call( $name , $args ){
    if( $name != 'manager' )
    return false;
    unset( $name , $args );
    static $object;
    if( gettype( $object ) == 'object' )
    return $object;
    $object = new SessionManagement;
    return $object;
    }
    }

    class SessionManagement{
    /**
    * Session name.
    * @var string
    * @access private
    */
    private $name;
    /**
    * Session id.
    * @var string
    * @access private
    */
    private $id;
    /**
    * Session satatus.
    * @var integer
    * @access private
    */
    private $status;
    /**
    * Session save path.
    * @var string
    * @access private
    */
    private $save_path;
    /**
    * Constructor.
    */
    function __construct()
    {
    $this->name = session_name( );
    $this->id = session_id( );
    $this->status = session_status( );
    $this->save_path = session_save_path( );
    }
    /**
    * Start session.
    * @access public
    */
    function start( )
    {
    if( $this->status == 1 ){
    session_start( );
    $this->__construct( );
    }
    }
    /**
    * Regenerate session id.
    * @param bool $delOldSession
    * @access public
    */
    function reId( $delOldSession = true )
    {
    if( $this->status == 1 ){
    $this->start( );
    }
    session_regenerate_id( $delOldSession );
    }
    /**
    * Destroy all registered data.
    * @access public
    */
    function destroy( ){
    session_destroy( );
    }
    /**
    * Set session save path.
    * @param string $path
    * @access public
    */
    function save_path( $path )
    {
    session_save_path( $path );
    $this->__construct( );
    }
    /**
    * Set session id.
    * @param string $id
    * @access public
    */
    function set_id( $id ){
    session_id( $id );
    $this->__construct( );
    }
    /**
    * Get this session data.
    * @return object
    * @access public
    */
    function data( )
    {
    return (object) get_object_vars( $this );
    }
    }
    ?>


    خوب اينو شما توي يك صفحه ذخيره كنين.

    موقعي كه اينكلود كردين وقتي خواستين يك آبجكت بسازين بايد namespace تعريف شده رو هم در نظر بگيرين!!!

    نمونه كار با كلاس:
    <?php

    include ( 'session.php' );

    $session = new library\session;

    //Create a session.
    $session->session_name = 'session_value';
    //show session (delete html special chars)
    $session->session_name;
    //show session ( do not delete html special chars)
    $session->_session_name;
    //Delete session
    unset( $session->session_name );
    //Object of manager
    $session_manager = $session->manager();
    //Regenerate id
    $session_manager->reId();
    //Show session id
    echo $session_manager->data()->id;
    // Destroy all sessions
    $session_manager->destroy();
    // Show session save path
    echo $session_manager->data()->save_path;
    // Set session save path
    $session_manager->save_path( 'your path!' );

    ?>


    نظراتتون رو در مورد اين كلاس بگيد خوشحال ميشم.

    با تشكر : محمد مهدي غلاميان.
    آخرین ویرایش به وسیله MRmoon : چهارشنبه 16 مرداد 1392 در 22:41 عصر

  2. #2

    نقل قول: كلاس كار با سشن!

    كلاس رو ويرايش كردم. :)

تاپیک های مشابه

  1. پاسخ: 8
    آخرین پست: پنج شنبه 01 اسفند 1387, 12:00 عصر
  2. كار با تصاوير سه بعدي
    نوشته شده توسط morteza_5025 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 6
    آخرین پست: شنبه 14 خرداد 1384, 11:23 صبح
  3. پاسخ: 8
    آخرین پست: جمعه 13 خرداد 1384, 08:34 صبح
  4. حفظ مقادیر سشن و ... در صفحات جدید دیتا گرید
    نوشته شده توسط faramarz_s در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: چهارشنبه 05 فروردین 1383, 10:38 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •