ठीक है, मैं का तरीका बताएंगे मूल अवधारणा चला जाता है और करने के लिए एक बहुत ही सरल कार्यान्वयन:
if (mysql_num_rows($res)) {
session_start();
session_regenerate_id(); // regenerate session_id to help prevent session hijacking
$row = mysql_fetch_assoc($res);
$_SESSION['logged_on'] = true;
$_SESSION['username'] = $row['username'];
// add more session variables about the user as needed
}
आप की रक्षा करना चाहते हैं कि हर पृष्ठ पर, आप उन पृष्ठों के शीर्ष पर निम्नलिखित जोड़ने चीजें चल रही हो जाओ।
PHP (और अधिकांश वेब एप्लिकेशन) रीस्टफुल सेवाओं पर भरोसा करते हैं - जो इस समय हमारी चिंता के लिए है, इसका मतलब है कि प्रत्येक अनुरोध किसी भी अन्य अनुरोध के लिए दूरस्थ रूप से बाध्य नहीं है - या तो एक ही उपयोगकर्ता या अन्य द्वारा।
तो इसका क्या अर्थ है?
इसका मतलब है कि प्रत्येक अनुरोध के लिए, आपको अपने चेक करने की आवश्यकता है। आपको यह सुनिश्चित करने की ज़रूरत है कि क्या उपयोगकर्ता को उस पृष्ठ को निष्पादित करने की अनुमति है, या इसकी सामग्री को कम गंभीर रूप से भी देखते हैं।
यह कैसे हासिल की है?
वास्तव में, कई तरीकों से। या तो केंद्रीकृत, या विकेन्द्रीकृत - वहाँ वेब अनुप्रयोगों पर प्राधिकरण लागू करने के लिए इस्तेमाल तकनीक के बहुत सारे हैं, लेकिन वे अनिवार्य रूप से दोनों दो में से एक करने के लिए नीचे टूट जाएगा।
- केन्द्रीकृत
अपने सभी कार्यों (और नियंत्रक) एक एकल फाइल के माध्यम से नियंत्रित किया जा रहा है इसका मतलब यह है। Index.php कहें। इस फ़ाइल में अनुरोध पैरामीटर के आधार पर अन्य कार्यों (जो सामान्य अनुरोधों के माध्यम से अपने आप पर चलने योग्य नहीं हैं) में अपने कार्यों को शामिल या प्रतिनिधि करेगा। यह एक बहुत ही लोकप्रिय तरीका है, लेकिन वास्तव में नई डेवलपर्स के लिए सीधे आगे नहीं। अनुप्रयोगों है कि इस दृष्टिकोण का उपयोग प्रकार के यूआरएल के लिए होता है के उदाहरण हैं:? index.php = रजिस्टर करते हैं, index.php, = लॉगिन कर index.php करना = showtopic & topic_id = 2, और इसके आगे?।
<?php
// index.php
define('RUNNING_APP', true);
// 1. place your auth code here, or...
switch ($_REQUEST['do']) {
case 'register':
// 2. or here
include 'inc/register.php';
break;
case 'do_register':
// 2. and here, and before every include.. and so forth.
include 'inc/do_register.php';
break;
}
?>
<?php
// inc/register.php
defined('RUNNING_APP') or die('Cannot access this script directly'); // make sure to break direct access
?>
<form action="index.php?do=do_register">
<!-- form elements -->
</form>
और बहुत आगे है:
इस तकनीक का एक सरल कार्यान्वयन की तरह जाना होगा।
मैं प्रलेखित किया है जहां सामान्य प्रमाणन कोड जाना चाहिए।
- विकेन्द्रीकृत
इस दृष्टिकोण का प्रयोग, तथापि, आपके प्रमाणन कोड हर एक फ़ाइल की शुरुआत में जाना चाहिए। इस प्रकार के अनुप्रयोगों के यूआरएल आमतौर पर कुछ दिखते हैं: register.php, login.php, और बहुत आगे। यहां मुख्य समस्या यह है कि आपको ऊपर बताए अनुसार प्रति फ़ाइल सभी एथ तर्क करने की आवश्यकता है, और यदि आपकी फाइलें राशि में वृद्धि करती हैं तो यह एक व्यस्त नौकरी हो सकती है। एक सुविधाजनक समाधान यह है कि उस तर्क को एक फ़ाइल में रखना है, और उस फ़ाइल को शामिल करें (जो अनधिक व्यक्ति के लिए अनुरोध को मार देगा) आपके किसी भी तर्क से पहले। एक साधारण उदाहरण होगा:
<?php
// index.php
include('inc/auth.php');
// index logic
?>
<?php
// register.php
include 'inc/auth.php';
// register logic
?>
<?php
// inc/auth.php
$logged_in = false;
if (!$logged_in) {
die ('You do not have permission to access this page. Please login');
}
?>
इस tutoral Ive अब तक निम्नलिखित किया गया है और मैं अपनी कार्यशील http://www.phpeasystep.com/phptu/6.html – Crash893
हो सकता है कि मैं पढ़ने में भूलना नहीं लगता कि सवाल, क्या आपको एक पूर्ण उपयोगकर्ता लॉगिन प्रणाली की आवश्यकता है (उदाहरण के लिए अलग-अलग उपयोगकर्ताओं को अलग-अलग चीजों को देखने की ज़रूरत है) या आप नहीं चाहते कि हर कोई आपकी साइट को देखने में सक्षम हो? मेरी राय में। Htaccess जाने का रास्ता है। – williamg
मैं उस बिंदु पर जाना चाहता हूं जहां मेरे पास उपयोगकर्ता और व्यवस्थापक और पावर उपयोगकर्ता – Crash893