19. அமர்வு (Understanding PHP Sessions)
இதற்கு முந்தைய பகுதியில் குக்கீஸைப் பற்றி பார்த்தோம். இந்த பகுதியில் குக்கீஸுக்கு மாற்றாக இருக்கும் sessions ஐப் பற்றி பார்க்க இருக்கிறோம். இந்த பகுதியில் sessions ஐப் பற்றி உதாரணங்களுடன் மேலும் விரிவாக பார்க்க இருக்கிறோம். sessions ஐ உருவாக்குதல் மற்றும் sessions ஐப் பயன்படுத்துவது போன்றவைகளைப் பற்றியும் பார்க்க இருக்கிறோம்.
Session என்றால் என்ன?
PHP session ஆனது வலைப்பக்கங்களை ஒரு குழுவாக(group) பார்க்கிறது. அவ்வாறு குழுவாக இருக்கும் பக்கங்களுக்கு இடையில் ஒரு மாறியின் மதிப்பை பகிர்ந்து கொள்ள அனுமதிக்கிறது. குக்கீஸின் பலவீனம் என்னவென்றால், குக்கியின் மதிப்பு பயனருடைய(வலைமுகவரியை பார்வையிடுபவர்) கணினியில் சேமிக்கப்படுகிறது. இதனால் குக்கீயின் மதிப்புகளை பயனரால் படிக்கவும், திருத்தங்கள் செய்யவும் முடியும். அதே சமயத்தில் sessions பொறுத்தமட்டிலே ID குக்கீ மட்டும் பயனருடைய கணினியில் சேமிக்கப்படுகிறது. இந்த ID குக்கீயானது சேவையகத்தில்(server) இருக்கும் session file ஐ அணுக பயன்படுகிறது. இதனால் பயனரால் நேரடியாக session file இன் content ஐ அணுகமுடியாது. இதன் மூலம் குக்கீயை விட பாதுகாப்பான வழியை session ஏற்படுத்தி தருகிறது. உலாவியில் cookie support ஐ பயனர் நிறுத்தி வைத்தாலும் session வேலை செய்யும். ஒருவேளை பயனர் cookie support ஐ உலாவியில் நிறுத்தி வைத்திருந்தால் வலை முகவரியில் session ID சேமித்து வைக்கப்படுகிறது.
PHP Session உருவாக்குதல் (Creation a PHP Session)
session_start() எனும் Function ஐப் பயன்படுத்தி sessions உருவாக்கப்படுகிறது. session_start() function ஆனது வலைப்பக்கத்தின் first function call ஆக இருக்க வேண்டும்.
நிரல்:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php //session creation if (session_start()) { echo "<h1>Session Started!</h1>" ; } else { echo "<h1>Session Not Create!</h1>" ; } ?> |
Session மாறிகளை உருவாக்குதல் மற்றும் படித்தல்(Creating and Reading Session Variables)
$_SESSION array மூலமாக session variable களை உருவாக்கலாம் மற்றும் அதற்கு மதிப்புகள் கொடுக்கலாம். $_SESSION ஆனது ஒரு Global Array ஆகும். ஆகையால் ஒரு இணையதளத்தின் அனைத்து பக்கங்களிலும் session variable களை பயன்படுத்தலாம். மேலும் இது ஒரு associative array ஆகும். Array ஐப் பற்றி மேலும் தெரிந்து கொள்ள PHP Array எனும் பகுதியைப் பார்க்கவும்.
Session மாறியின் மதிப்பு strings, numbers, arrays and objects என எந்த வகையினைச் சேர்ந்ததாக வேண்டுமானாலும் இருக்கலாம்.
variable name மற்றும் assignment operator ஆகியவைகளைப் பயன்படுத்தி நேரடியாக $_SESSION array யில் variable ஐ உருவாக்குவதுடன் அதற்கான மதிப்பையும் அளிக்கலாம்.
<?php
$_SESSION[‘userName’] = ‘Kathirvel Rajendran’;
?>
நிரல்:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<?php //session creation if (session_start()) { echo "<h1>Session Started!</h1>" ; $_SESSION [ 'userName' ] = 'Kathirvel Rajendran' ; } else { echo "<h1>Session Not Create!</h1>" ; } //session accessing if (isset( $_SESSION [ 'userName' ])) { echo "<b>User Name : </b><i>" . $_SESSION [ 'userName' ]. "</i>" ; } else { echo "Session Accessing Failed!" ; } ?> |
Session தகவல்களை கோப்பில் எழுதுதல்(Writing Session Data to a File)
session காலவதியாகும் வரையோ அல்லது அழிக்கப்படும் வரையோதான் session இன் தகவல்கள் சேவையகத்தில் உயிருடன் இருக்கும். ஒருமுறை அழிக்கப்பட்டு விட்டால் session உடன் தொடர்புடைய அனைத்து தகவல்களும் அழிக்கப்பட்டுவிடும்.
session இன் தகவல்களை ஒரு கோப்பில் எழுதி வைத்து விட்டால் தேவைப்படும் போது நாம் எடுத்து பயன்படுத்திக்கொள்ளலாம்.
session இன் அனைத்து தகவல்களும் session_encode() எனும் function மூலமாக பெறப்படுகிறது. அவ்வாறு பெறப்படும் தகவல்கள் file function களுடன் சேர்த்து பயன்படுத்தப்படுகிறது.
உதாரண நிரல்:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<?php //session creation if (session_start()) { echo "<h1>Session Started!</h1>" ; $_SESSION [ 'userName' ] = 'Kathirvel Rajendran' ; $_SESSION [ 'email' ] = 'linuxkathirvel.info@gmail.com' ; } else { echo "<h1>Session Not Create!</h1>" ; } //session data writer into the file if (isset( $_SESSION [ 'userName' ]) && isset( $_SESSION [ 'email' ]) && isset( $_SESSION [ 'blog' ])) { //open a file for to save session datas $fileopen = fopen ( '/tmp/sessiondatas.txt' , 'w+' ); //get the session datas $session_data = session_encode(); //write the session datas into the file if (fwrite( $fileopen , $session_data )) { echo "<i>Session Write Successfully!</i>" ; } //close the file fclose( $fileopen ); } else { echo "Session Accessing Failed!" ; } ?> |
கோப்பில் சேமிக்கப்பட்ட session தகவல்களை படித்தல்(Reading Saved Session)
session_decode() function மூலமாக கோப்பில் சேமிக்கப்பட்ட தகவல்களை decode செய்யலாம்.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php $fileopen = fopen ( '/tmp/sessiondatas.txt' , 'r' ); //read the session datas $session_data = fread ( $fileopen , 4096); //close the file fclose( $fileopen ); session_decode( $session_data ); print_r( $session_data ); ?> |