Destroy function ၏လုပ်ဆောင်ချက်သည်ရှိပြီးသား session တစ်ခုကိုဖျက်ရန်ဖြစ်သည်။ အသုံးပြုသူမှတ်တမ်းများထွက်ပေါ်လာသောအခါသို့မဟုတ် session သက်တမ်းကုန်ဆုံးသောအခါ session-related data အားလုံးကိုသန့်ရှင်းရေးလုပ်ရန် ဖျက်ဆီးခံရ လိမ့်မည်။
sessionhandler interface က ဖျက်ဆီး နည်းကိုအကောင်အထည်ဖော်ရန်ကျွန်ုပ်တို့ကိုလိုအပ်သည်။ ဤနည်းလမ်းသည်သက်ဆိုင်ရာ session data ကိုခွဲခြားသတ်မှတ်ရန်နှင့်ဖျက်ဆီးရန်အသုံးပြုသော session id ( $ session_id ) ဖြစ်သော parameter သည် parameter ကိုလက်ခံသည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်စိတ်ကြိုက် session processing class တစ်ခုကိုဖန်တီးရန်နှင့် sessionhander interface တွင်အမျိုးမျိုးသောနည်းလမ်းများကိုအကောင်အထည်ဖော်ရန်လိုအပ်သည်။ ဒီမှာရိုးရှင်းတဲ့မူဘောင်တစ်ခုပါ။
<span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">MySessionHandler</span></span><span> </span><span><span class="hljs-keyword">implements</span></span><span> </span><span><span class="hljs-title">SessionHandlerInterface</span></span><span>
{
</span><span><span class="hljs-keyword">private</span></span><span> </span><span><span class="hljs-variable">$save_path</span></span><span>;
</span><span><span class="hljs-comment">// Initialization နည်းလမ်း,Save Path The EDC ကိုသတ်မှတ်ရန်အသုံးပြုသည်။</span></span><span>
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">open</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$save_path</span></span></span><span>, </span><span><span class="hljs-variable">$session_name</span></span><span>)
{
</span><span><span class="hljs-variable language_">$this</span></span><span>->save_path = </span><span><span class="hljs-variable">$save_path</span></span><span>;
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
}
</span><span><span class="hljs-comment">// session ကိုပိတ်ပါ</span></span><span>
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">close</span></span><span>(</span><span><span class="hljs-params"></span></span><span>)
{
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
}
</span><span><span class="hljs-comment">// session data ကိုဖတ်ပါ</span></span><span>
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">read</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$session_id</span></span></span><span>)
{
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-variable language_">$this</span></span><span>->save_path . DIRECTORY_SEPARATOR . </span><span><span class="hljs-variable">$session_id</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">''</span></span><span>;
}
</span><span><span class="hljs-comment">// session data ရေးပါ</span></span><span>
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">write</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$session_id</span></span></span><span>, </span><span><span class="hljs-variable">$session_data</span></span><span>)
{
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-variable language_">$this</span></span><span>->save_path . DIRECTORY_SEPARATOR . </span><span><span class="hljs-variable">$session_id</span></span><span>;
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-variable">$session_data</span></span><span>) === </span><span><span class="hljs-literal">false</span></span><span> ? </span><span><span class="hljs-literal">false</span></span><span> : </span><span><span class="hljs-literal">true</span></span><span>;
}
</span><span><span class="hljs-comment">// Session Data ကိုဖျက်ပါ</span></span><span>
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">destroy</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$session_id</span></span></span><span>)
{
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-variable language_">$this</span></span><span>->save_path . DIRECTORY_SEPARATOR . </span><span><span class="hljs-variable">$session_id</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">unlink</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
}
</span><span><span class="hljs-comment">// အမှိုက်ပုံးစနစ်ပြန်လည်ပြုပြင်ခြင်းယန္တရား</span></span><span>
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">gc</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$max_lifetime</span></span></span><span>)
{
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-title function_ invoke__">glob</span></span><span>(</span><span><span class="hljs-variable">$this</span></span><span>->save_path . DIRECTORY_SEPARATOR . </span><span><span class="hljs-string">'*'</span></span><span>) </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">filemtime</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>) + </span><span><span class="hljs-variable">$max_lifetime</span></span><span> < </span><span><span class="hljs-title function_ invoke__">time</span></span><span>()) {
</span><span><span class="hljs-title function_ invoke__">unlink</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
}
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
}
}
</span></span>
အထက်ဖော်ပြပါကုဒ်တွင် Destroy function ၏လုပ်ဆောင်မှုသည်သတ်မှတ်ထားသော session ID နှင့် session file ကိုဖျက်ရန်ဖြစ်သည်။ အသုံးပြုသူမှထွက်ရန်သို့မဟုတ် session သက်တမ်းကုန်ဆုံးရန်သို့မဟုတ် session သက်တမ်းကုန်ဆုံးသွားသောအခါ ဖျက်ဆီးခြင်း function ကိုအစပျိုးလိမ့်မည်။
<span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">destroy</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$session_id</span></span></span><span>)
{
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-variable language_">$this</span></span><span>->save_path . DIRECTORY_SEPARATOR . </span><span><span class="hljs-variable">$session_id</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">unlink</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
}
</span></span>
Session ID ကိုလက်ခံရရှိသည် ။ ဤလုပ်ဆောင်ချက်သည် Session ID ( $ session_id ) ကိုလက်ခံရရှိသည်။ ၎င်းသည်ကျွန်ုပ်တို့ဖျက်ရန်လိုအပ်သည့်အချက်အလက်များအတွက်ထူးခြားသောအမှတ်အသားတစ်ခုဖြစ်သည့်အထူးအမှတ်အသားတစ်ခုဖြစ်သည်။
ဖိုင်တည်ရှိရှိမရှိစစ်ဆေးပါ ။ ပထမ ဦး စွာလုပ်ဆောင်ချက်သည်သက်ဆိုင်ရာ session တစ်ခုရှိမရှိစစ်ဆေးလိမ့်မည်။ အကယ်. ဖိုင်မရှိပါက၎င်းကိုဖျက်ရန်လိုအပ်သည့်ဖိုင်မရှိပါဟုညွှန်ပြသည့်တိုက်ရိုက်ပြန်လာလိမ့်မည် ။
ဖိုင်ကိုဖျက်ပါ ။ ဖိုင်သည်တည်ရှိပါကဖိုင်ကိုဖျက်ရန် Unlink () function ကိုသုံးပါ။ လက်မခံပါ () ဖိုင်များကိုဖျက်ရန် PPP မှအသုံးပြုသော built-in function တစ်ခုဖြစ်သည်။
Reward Value : ဖျက်ဆီးခြင်းလုပ်ငန်းစဉ်ကိုအောင်မြင်စွာပြီးစီး ကြောင်း ဖော်ပြသည်။
အမှန်တကယ်အသုံးပြုမှုတွင်ကျွန်ုပ်တို့သည်ဖိုင်ပယ်ဖျက်ရေးလုပ်ငန်းများလုံခြုံရေးကိုသေချာစေရန်အမှားကိုင်တွယ်သည့်ယန္တရားတစ်ခုထည့်ရန်လိုအပ်နိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်ဖျက်ခြင်းလုပ်ငန်းကိုအောင်မြင်မှုနှင့်ပျက်ကွက်မှုကိုခြေရာခံရန်သို့မဟုတ် လက်မခွဲခြင်း ၏ပျက်ကွက်မှုကိုဖြည့်စွက်ရန်မှတ်တမ်းမှတ်တမ်းများကိုသင်ထည့်နိုင်သည်။
<span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">destroy</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$session_id</span></span></span><span>)
{
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-variable language_">$this</span></span><span>->save_path . DIRECTORY_SEPARATOR . </span><span><span class="hljs-variable">$session_id</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">unlink</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Failed to delete session file: <span class="hljs-subst">$file</span></span></span><span>");
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>; </span><span><span class="hljs-comment">// ပယ်ဖျက်ခြင်းပျက်ကွက်လျှင်,ပြန်လာ false</span></span><span>
}
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
}
</span></span>
PHP အတွက် PHP အတွက်ကျွန်ုပ်တို့၏စိတ်ကြိုက် session processing class ကိုအသုံးပြုရန်အတွက်သင် session_saver_handler () function မှတဆင့်စိတ်ကြိုက် session processor ကိုမှတ်ပုံတင်ရန်လိုအပ်သည်။
<span><span><span class="hljs-variable">$handler</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">MySessionHandler</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">session_set_save_handler</span></span><span>(
[</span><span><span class="hljs-variable">$handler</span></span><span>, </span><span><span class="hljs-string">'open'</span></span><span>],
[</span><span><span class="hljs-variable">$handler</span></span><span>, </span><span><span class="hljs-string">'close'</span></span><span>],
[</span><span><span class="hljs-variable">$handler</span></span><span>, </span><span><span class="hljs-string">'read'</span></span><span>],
[</span><span><span class="hljs-variable">$handler</span></span><span>, </span><span><span class="hljs-string">'write'</span></span><span>],
[</span><span><span class="hljs-variable">$handler</span></span><span>, </span><span><span class="hljs-string">'destroy'</span></span><span>],
[</span><span><span class="hljs-variable">$handler</span></span><span>, </span><span><span class="hljs-string">'gc'</span></span><span>]
);
</span><span><span class="hljs-comment">// session တစ်ခုစတင်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>();
</span></span>
စိတ်ကြိုက် session processing class ကိုဖြည့်စွက်ပြီးနောက်သင်စမ်းသပ်မှုပြုလုပ်နိုင်သည်။ Session ၏ပျက်စီးခြင်းဖြစ်စဉ်ကိုအစပျိုးခြင်းဖြင့် ဖျက်ဆီးခြင်း လုပ်ဆောင်ခြင်းသည် (ဥပမာ - session_destroy) ) Session Data ကိုမှန်ကန်စွာပယ်ဖျက်ပြီးကျန်ရှိနေသေးသော Session ဖိုင်များမရှိပါ။
SessionHandler ကိုအကောင်အထည်ဖော်ခြင်း SessionHandler ကိုအကောင်အထည်ဖော်ခြင်း - Destroy function သည် session အဆုံးတွင်အရင်းအမြစ်များကိုသန့်ရှင်းရေးလုပ်ရန်ကူညီသည်။ သင့်တင့်သောဖိုင်အမျိုးအစားများနှင့်အမှားအယွင်းများဖြင့်ကိုင်တွယ်ဖြေရှင်းခြင်းဖြင့်သင်ခန်းစာအချက်အလက်များကိုလုံးလုံးလျားလျားဖျက်ဆီးခြင်း,