[Powered by Google Translate] [PHP அமர்வுகள்] [டாமி MacWilliam, ஹார்வர்ட் பல்கலைக்கழகம்] [இந்த CS50 உள்ளது.] [CS50.TV] PHP இல் அமர்வுகள் செயல்பாட்டை செயல்படுத்த முடியும், பயனர் உள் போல, உங்கள் வலை பயன்பாட்டை. PHP அமர்வுகள் நீங்கள் தகவல் தொடர்பு அனுமதிக்கின்றன பயனர் முழு உலாவல் அமர்வு மாறாக, வெறுமனே ஒரு பக்கம் விட. பயனர் உங்கள் இணைய உருவாக்கும் பல்வேறு PHP பக்கங்களை சென்று எனவே அந்த பொருள் அமர்வு எந்த தகவலை தொடர்ந்து இருக்கும். அதனால் அதாவது ஒரு பக்கம், அமர்வு சேமிக்கப்படும் தரவு பின்னர் மற்றொரு பக்கம் அணுக முடியும். ஒரு அமர்வில் தகவல்களை சேகரிப்பதற்காக, எளிதாக இருக்கிறது நாம், அடிக்கோடிட்டு, டாலர் குறி வழியாக மூலதனத்தை அமர்வு மாறி செய்கிறோம். டாலர் அடையாளம், GET, அடிக்கோடிட்டு, அமர்வு வெறும் டாலர் அடையாளம் போன்ற அடிக்கோடிட்டு மற்றும் டாலர் அடையாளம், அடிக்கோடிட்டு பிந்தைய முக்கிய மதிப்பு ஜோடிகள் கொண்ட ஒரு துணை வரிசை உள்ளது. எனவே நாம், அமர்வு அடிக்கோடிட்டு, தொடரியல் போன்ற டாலர் குறி பயன்படுத்தலாம் அடைப்புக்குறி, மேற்கோள், foo,, ஆனால், அடைப்புக்குறி, மேற்கோள், சமம் பட்டியில், மேற்கோள், முக்கிய மதிப்பு "பார்" சேமிக்க "foo." எனினும், நாம் எழுத அல்லது அமர்வு வரிசை இருந்து படிக்க முடியும் முன், நாம் ஒரு சிறப்பு செயல்பாடு அழைக்க வேண்டும் அமர்வு,) (, தொடங்க, அடிக்கோடிட்டு - இந்த அமர்வு துவக்கும். எனவே இது ஒரு உதாரணம் பாருங்கள் நாம். எங்கள் முதல் பக்கம், hello.php, பயனர் வெளியீட்டை சில தரவு அமர்வு பயன்படுத்துகிறது. நாம் எந்த அமர்வில் தரவு அணுக முடியும் முன் நாம் session_start பயன்படுத்த வேண்டும், நினைவில். இப்போது நாம் ஒரு முக்கிய உள்ளது என்றால் தீர்மானிக்க PHP இன் isset பயன்படுத்தி வருகிறோம் $ _SESSION இணைப்பு கோவை. முக்கிய உள்ளது என்றால், அந்த பயனர் உள்நுழைந்திருக்க பொருள் நாம் பயனர் பெயர் காட்ட வேண்டும். முக்கிய அமைக்கப்படவில்லை என்றால், அந்த, பயனர் இன்னும் உள்நுழைவு தொடங்கவில்லை பொருள் நாம் வழங்கப்படுகின்றன ஒரு இணைப்பை காட்ட வேண்டும். எனவே வழங்கப்படுகின்றன பாருங்கள் நாம். கீழே இங்கே, நாம் ஒரு உள்ளீடு ஒரு HTML வடிவம் வேண்டும். படிவம் நடவடிக்கை பண்பு, துணை பிரதம மந்திரி ['PHP_SELF'] ஆகிறது இந்த வெறுமனே, நாம் வடிவம் தற்போதைய கோப்பு சமர்ப்பிக்க வேண்டும் என்று அர்த்தம் இது, இந்த வழக்கில், ஏற்கனவே வழங்கப்படுகின்றன உள்ளது. எனவே இந்த கோப்பு உயர் செல்லலாம். பயனர் வடிவம் சமர்ப்பிக்கப்பட்ட என்றால், $ _POST ['பெயர்'] அமைக்க வேண்டும். HTML படிவங்களை மற்றும் பிந்தைய பற்றிய மேலும் தகவலுக்கு, PHP வலை அபிவிருத்தி வீடியோவை பாருங்கள். பயனர் வடிவம் submit செய்தது அந்த வழக்கில், நாம் அவர்கள் அமர்வு தட்டச்சு அந்த மதிப்பு எழுத விரும்புகிறேன். இப்போது நாம் hello.php பயனர் திருப்பிவிட முடியாது. நாம் அமர்வு பயனர் உள்ளீடு சேமித்த ஏனெனில், hello.php வழங்கப்படுகின்றன அமைக்க என்று மதிப்பு அணுக முடியும். எனவே இந்த ஒரு வலை உலாவியில் வெளியே பார்க்கிறேன். முதல், நாம் http://localhost/hello.php செல்லவும் வேண்டும். நாம், நாம் இன்னும் உள்நுழைவு தொடங்கவில்லை என்று இங்கே பார்க்க முடியும் எனவே வழங்கப்படுகின்றன எங்களை திருப்பி இதில் உள்நுழைவு இணைப்பு சொடுக்கவும். சரி, நான் அமர்வு சேமிக்கப்படும் எந்த, என் பெயரை தட்டச்சு செய்யலாம். கிரேட்! இப்போது நாம் அமர்வு வழியாக hello.php மீது வழங்கப்படுகின்றன என் உள்ளீடு பார்க்க முடியும். அதனால், என்ன பயனர் வெளியேற்றுகிறோம் பற்றி? சரி, பயனர் நுழைய பொருட்டு, நாம் வெறுமனே அமர்வு பெயர் ஒரு மதிப்பு சேமிக்கப்பட்ட. எனவே பயனரை வெளியேற்ற, நாம் சாதாரணமாக என்று பெயர் முக்கிய நீக்க வேண்டும் அமர்வு வரிசை இருந்து. எனவே logout.php, இந்த கடந்த கோப்பு பாருங்கள் நாம். மீண்டும், நாம்) (session_start அழைக்க வேண்டும் நாம் எதுவும் அமர்வு செய்ய முடியும். இப்போது நாம் வெறுமனே) (session_destroy அழைக்க முடியும் அமர்வு அனைத்து தரவு விட்டொழிக்க பார்த்துக்கொள்ள வேண்டும் பின்னர் மீண்டும் hello.php பயனர் திருப்பிவிட. எனவே நான் இங்கு வெளியே இணைப்பை கிளிக் செய்தால், நாம் சர்வர், நான் யார் மறந்து விட்டது என்று பார்க்க முடியும், நான் இனி இன்னும் உள்நுழைவு தொடங்கவில்லை அதனால் என்ன பேட்டை அடியில் நடக்கிறது இங்கே? நாம் தான் பார்த்தேன் நடத்தை பெறுவதற்காக, எங்கள் சர்வரில் 2 விஷயங்களை செய்ய வேண்டும். முதல், சர்வர் எப்படியோ அமர்வு தரவு சேமிக்க வேண்டும். ஒரு இணையதளம் உள்ளனர் என்று பல்வேறு PHP கோப்புகளை PHP மொழிபெயர்ப்பியை தனி பிரார்த்தனையில் என செயல்படுத்தப்படுகின்றன எனவே உள்ளூர் மாறி அவர்களுக்கு இடையே பகிர்ந்து கொள்ள முடியாது. அதற்கு பதிலாக, சர்வர் எங்கள் அமர்வு தரவு சேமிக்க வேண்டும் சில இடத்தில் பல. PHP கோப்புகளை அணுக முடியும். இரண்டாவது, சர்வர் மட்டுமே என் உலாவல் அமர்வு கொண்ட அமர்வு தரவு தொடர்புபடுத்த வேண்டும். நான் பேஸ்புக் உள்நுழைய, போது அதே நேரத்தில் பேஸ்புக் வெளியேறும் மற்ற மில்லியன் கணக்கான மக்கள் ஒருவேளை உள்ளன. ஆனால் சர்வர் என் தரவு தொடர்புபடும் சில வழி வேண்டும் என் தற்போதைய அமர்வு மற்றும் மற்றொரு அமர்வு வேறு தரவு மூலம். அதிர்ஷ்டவசமாக, PHP இன் ஆசிரியர்கள், நமக்கு இந்த அனைத்து பற்றி நினைத்தேன் எனவே நாம் இந்த எந்த நம்மை செயல்படுத்த தேவையில்லை. ஆனால் PHP இயல்பாக என்ன பாருங்கள் நாம். நான் முதல் முறையாக session_start கொண்ட ஒரு PHP பக்கம் செல்லும் போது, PHP ஒரு பெரிய சீரற்ற மதிப்பு உருவாக்கும். Session_destroy என்று அல்லது நான் ஒரு அந்த தளத்தில் எந்த PHP பக்கங்களை பார்க்க வேண்டாம் போது வரை என்று சீரற்ற மற்றும் ஒருவேளை தனிப்பட்ட மதிப்பு எனக்கு தொடர்புடைய வேண்டும். அந்த வழியில் சர்வர் என் உலாவல் அமர்வு அடையாளம் வழி உள்ளது வேறு எதிர்க்கும். நாம் தற்போதைய அமர்வு ஐடி பாருங்கள் முடியும் PHP செயல்பாடு, session_ID பயன்படுத்தி. இங்கே நாம் வெறுமனே எங்கள் அமர்வு அடையாளம் மதிப்பு outputting. எனவே நாம் மீண்டும் எடுத்துக்காட்டாக வலை பயன்பாட்டை உள் என்றால், இப்போது sessid.php செல்லவும், நாம் எழுத்துக்கள் இந்த நீண்ட சரம் பார்க்க வேண்டும், என்று என் அமர்வு தற்போதைய அடையாளம், அந்த சர்வர், நான் யார் தடம் எப்படி. சரி, ஆனால் நாம் மட்டும் அரை பிரச்சினையை தீர்க்க. நிச்சயமாக, சர்வர் இப்போது என்னை அடையாளம் வழி உள்ளது, நான் மற்றொரு பக்கம் பார்வையிடும் போது, சர்வர் அதே அடையாளங்காட்டி மீண்டும் தேவை மாறாக ஒரு புதிய உருவாக்கும் விட. நான் foo.php ஒரு உள்ளூர் மாறி, நினைவில் பின்னர், bar.php வருகை bar.php foo.php என்ன நடந்தது தெரிந்தும், எந்த வழி உள்ளது. எனவே இயல்பாக PHP அமர்வு செயல்படுத்த உலாவி சர்வர் ஞாபகப்படுத்த வேண்டும் இது அமர்வு ஐடி பயன்படுத்த. இந்த குக்கீ வடிவத்தில் செயல்படுத்தப்படுகிறது. குக்கீ உள்ள ஒரு சுவையான சிற்றுண்டி-கூடுதலாக உங்கள் கணினியில் ஒரு சிறிய உரை கோப்பு ஒரு சர்வர் இணைய உலாவி மூலம் எழுத முடியும் என்று. , PHP session_start வழியாக என் தனிப்பட்ட அமர்வு ஐடி உருவாக்கும் பின்னர் எனவே இது ஒரு உள்ளூர் உரை கோப்பு, அல்லது ஒரு குக்கீ என்று அடையாளம் சேமிக்க இணைய உலாவி சொல்ல நடக்கிறது. பின்னர் வலை உலாவி ஒவ்வொரு கோரிக்கை என்று அடையாளம் சேர்க்கும் அது சர்வர் செய்கிறது என்று. எனவே உண்மையில், வலை சர்வரில் நான் யார் நினைவு இல்லை. அதற்கு பதிலாக, இணைய உலாவி வெறுமனே தனிப்பட்ட அடையாளம் நினைத்து என்று PHP உருவாக்கப்பட்ட பின்னர் தொடர்ந்து சர்வர் நினைவில் என்ன என்று அடையாளம் இருக்கிறது. என் பயனர் பெயர் போன்ற அந்த வகையில், தகவல் சர்வர் இல்லை என் இணைய உலாவி சேமிக்கப்படுகிறது. உலாவி வெறுமனே PHP தகவல் சேமிக்கப்படும் சர்வர் சொல்கிறது எனவே PHP அதை மீட்டெடுக்க முடியும். அதனால், PHP உண்மையில் இந்த தகவல்களை சேகரிப்பதற்காக அங்கு கேள்வி, கேட்கிறார்? முன்னிருப்பாக, PHP உங்கள் அமர்வு தரவுகள் சேமிக்கும் , / tmp, அல்லது 'திறக்க' கோப்புறை உள்ளே ஒரு கோப்பில். PHP தீர்மானிக்க முடியும் என்று கோப்பின் பெயர் அமர்வு ஐடி சேர்க்கும் இது கோப்பு படிக்க மட்டுமே அமர்வு ஐடி வழியாக இருந்து எழுத. எல்லாம் சரி. எனவே, Chrome இன் வழு உள்ள நெட்வொர்க் தாவலை திறந்து விட மேல் வலது குறடு சின்னத்தை வழியாக. இப்போது மீண்டும் hello.php தலைமை அனுமதிக்க. தான் hello.php செய்ய HTTP கோரிக்கை மீது சொடுக்கவும் பின்னர் தலைப்பை கிளிக் செய்க. இங்கே நாம், குக்கீ தலைப்பு PHPSESSID என்று ஒரு விசையை கொண்டுள்ளது என்று பார்க்க முடியும் அல்லது PHP அமர்வு ஐடி கொண்டு நாம் பார்த்த அதே நீண்ட சரம் என்று ஒரு மதிப்பு நாம் sessid.php விஜயம். இந்த உலாவி பயன்படுத்த வேண்டும் அமர்வு ஐடி சர்வர் நினைவு சரியாக எப்படி இருக்கிறது. இது ஒரு HTTP தலைப்பு அதை உட்பட. எல்லாம் சரி. மீண்டும் முனையத்தில் நடந்ததில்லை. தான் PHP இயல்பாக அமர்வு தகவல்களை சேகரிப்பதற்காக அமைந்துள்ள, / tmp, செல்லவும் வேண்டும். நிச்சயமாக போதாது, இந்த தற்காலிக கோப்புறையில் உள்ளே, இங்கே அதே துல்லியமான அமர்வு ஐடி கொண்ட ஒரு கோப்பு தான். நாம் இந்த கோப்பு திறந்து என்றால், நாம் PHP வட்டில் என் அமர்வு குறிக்கும் எப்படி பார்க்க முடியும். இங்கே சரம் "டாமி" ', பெயர்' முக்கிய சேமிக்கப்பட்ட இது நாம் எதிர்பார்ப்பதாக சரியாக என்ன. அந்த PHP இல் அமர்வுகளை ஒரு கண்ணோட்டம் தான். நாம் என்ன தான் பார்த்தேன் அமர்வுகள் மட்டுமே இயல்புநிலை செயல்பாடு ஆகும். உண்மையில், பல வலைத்தளங்கள் இந்த முன்னிருப்பு நடத்தையை மாற்ற இன்னும் திறமையாக PHP அமர்வுகள் சேமிக்க செயல்திறனை மேம்படுத்த வட்டி. என் பெயர் டாமி, மற்றும் இந்த CS50 உள்ளது. [CS50.TV]