Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

विशिष्ट पृष्ठों को केवल कोडनिर्देशक में लॉग इन उपयोगकर्ताओं तक सीमित रखने के लिए सबसे अच्छा अभ्यास क्या है?

आपने सिर पर कील ठोक दी है, लेकिन इसे करने का थोड़ा और कारगर तरीका है।

आधार नियंत्रकों को एक तरह से बढ़ाएं (मेरा मानना ​​​​है कि मूल रूप से फिल स्टर्जन द्वारा उल्लिखित) लेकिन मैं यहां संक्षेप में बताऊंगा:

देखें यह लेख बहुत गहराई से लिखने के लिए।

लेकिन संक्षेप में:

<?php
class MY_Controller extends Controller
{
    function __construct()
    {
        parent::Controller();
        if (! $this->session->userdata('first_name'))
        {
            redirect('login'); // the user is not logged in, redirect them!
        }
    }
}

तो अब अगर आप पहुंच को प्रतिबंधित करना चाहते हैं, तो बस:

class Secret_page extends MY_Controller {

 // your logged in specific controller code
}

और विस्तारित नियंत्रक स्वचालित रूप से जांच करेगा कि उपयोगकर्ता कंस्ट्रक्टर में लॉग इन है या नहीं।

कैसे के लिए, मैं शायद user_id को यह जांचने के लिए मान के रूप में सेट करता हूं कि यह सेट है, या शायद उपयोगकर्ता "समूह" - तो आप अपने सिस्टम में उपयोगकर्ता अनुमतियां और पहुंच के विभिन्न स्तरों को प्राप्त कर सकते हैं।

आशा है कि इससे थोड़ी मदद मिलेगी।

संपादित करें

इसे application/config.php में जोड़ें

/*
| -------------------------------------------------------------------
|  Native Auto-load
| -------------------------------------------------------------------
| 
| Nothing to do with cnfig/autoload.php, this allows PHP autoload to work
| for base controllers and some third-party libraries.
|
*/
function __autoload($class)
{
    if(strpos($class, 'CI_') !== 0)
    {
        @include_once( APPPATH . 'core/'. $class . EXT );
    }
}

चूंकि आप CI 2.0 का उपयोग कर रहे हैं, इसलिए आपको MY_Controllers को लाइब्रेरी के बजाय एप्लिकेशन/कोर के अंदर रखना होगा।

मेरा एप्लिकेशन/कोर कुछ इस तरह दिखता है:

Admin_Controller.php
MY_Controller.php
Public_Controller.php


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में संख्याओं की एक श्रृंखला उत्पन्न करना

  2. कौन सा तेज़ है:सहसंबद्ध उपश्रेणियाँ या सम्मिलित हों?

  3. क्या mysqldumps को लोड करने का कोई तेज़ तरीका है?

  4. जब मेरी परियोजना पर कोई इकाई नहीं है, तो पीओजेओ में मूल क्वेरी को कैसे मैप करें?

  5. MySQL:GROUP_CONCAT बाएं जॉइन के साथ