{"id":27,"date":"2023-11-10T21:24:10","date_gmt":"2023-11-10T21:24:10","guid":{"rendered":"http:\/\/superwebtasarim.com\/bilgibankasi\/?p=27"},"modified":"2023-11-20T13:02:55","modified_gmt":"2023-11-20T13:02:55","slug":"php-session-islemleri-session-operations-in-php","status":"publish","type":"post","link":"https:\/\/superwebtasarim.com\/bilgibankasi\/php\/php-session-islemleri-session-operations-in-php\/","title":{"rendered":"PHP Session \u0130\u015flemleri &#8211; Session Operations In Php"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>PHP sesion&#8217;lar, php session i\u015flemleri bir kullan\u0131c\u0131 taraf\u0131ndan bir web uygulamas\u0131nda kullan\u0131lan bilgileri saklamak ve bu bilgileri daha sonra kullanmak i\u00e7in kullan\u0131r. Sesion&#8217;lar, kullan\u0131c\u0131 taraf\u0131ndan bir web sayfas\u0131ndan di\u011fer web sayfas\u0131na ge\u00e7i\u015f yaparken bilgileri kaybedmemesi i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol>\n<li>Session Start:<\/li>\n<\/ol>\n\n\n\n<p>Her bir PHP dosyas\u0131nda, sesion&#8217;lar\u0131 ba\u015flatmak i\u00e7in session_start() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu fonksiyon, sesion&#8217;lar\u0131 ba\u015flat\u0131r ve sesion_id&#8217;yi tan\u0131mlar.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session_start();<\/code><\/pre>\n\n\n\n<ol start=\"2\">\n<li>Session Variables:<\/li>\n<\/ol>\n\n\n\n<p>Session&#8217;lar\u0131n de\u011ferleri, sesion_start() fonksiyonu \u00e7a\u011f\u0131r\u0131ld\u0131ktan sonra olu\u015fturulabilir. Sesion de\u011ferleri, $_SESSION superglobal&#8217;da tutulur.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$_SESSION&#91;'username'] = 'John Doe';<\/code><\/pre>\n\n\n\n<ol start=\"3\">\n<li>Session Destroy:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferlerini silebilirsiniz. Session_destroy() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session_destroy();<\/code><\/pre>\n\n\n\n<ol start=\"4\">\n<li>Session Regenerate:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n ID&#8217;si de\u011fi\u015ftirmek istiyorsan\u0131z, session_regenerate_id() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session_regenerate_id();<\/code><\/pre>\n\n\n\n<ol start=\"5\">\n<li>Session Timeout:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n s\u00fcresi, php.ini dosyas\u0131nda tan\u0131mlanabilir. Bu durumda, kullan\u0131c\u0131n\u0131n sesion&#8217;u otomatik olarak silecek bir zaman a\u015f\u0131nca, kullan\u0131c\u0131n\u0131n yeniden giri\u015fi gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session.gc_maxlifetime = 14400;<\/code><\/pre>\n\n\n\n<ol start=\"6\">\n<li>Session Hijacking:<\/li>\n<\/ol>\n\n\n\n<p>Sesion hijacking, bir kullan\u0131c\u0131n\u0131n sesion&#8217;u kimse taraf\u0131ndan kendisine ait sesion&#8217;u ald\u0131\u011f\u0131ndan kaynaklanan bir g\u00fcvenlik a\u00e7\u0131s\u0131d\u0131r. Bu durumda, kullan\u0131c\u0131n\u0131n giri\u015f bilgilerini kimse taraf\u0131ndan al\u0131nd\u0131\u011f\u0131ndan kaynaklanan bir g\u00fcvenlik a\u00e7\u0131s\u0131d\u0131r. Bunu \u00f6nlemek i\u00e7in, kullan\u0131c\u0131n\u0131n giri\u015f bilgilerini hashlemen ve salt olarak de\u011fi\u015ftirmeniz gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$password = \"123456\";\n$salt = \"salt_string\";\n$hash = hash('sha256', $password . $salt);\n\nif (hash('sha256', $password . $salt) === $hash) {\n    \/\/ Kullan\u0131c\u0131 giri\u015fi ba\u015far\u0131l\u0131\n} else {\n    \/\/ Kullan\u0131c\u0131 giri\u015fi ba\u015far\u0131s\u0131z\n}<\/code><\/pre>\n\n\n\n<p>Bu \u015fekilde, kullan\u0131c\u0131n\u0131n giri\u015f bilgilerini kimse taraf\u0131ndan al\u0131nd\u0131\u011f\u0131ndan kaynaklanan bir g\u00fcvenlik a\u00e7\u0131s\u0131n\u0131 \u00f6nlemek m\u00fcmk\u00fcn olur.<\/p>\n\n\n\n<ol start=\"7\">\n<li>Session Security:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n g\u00fcvenli\u011fi, php.ini dosyas\u0131nda tan\u0131mlanabilir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session.cookie_httponly = 1;\nsession.cookie_secure = 1;\nsession.use_cookies = 1;\nsession.save_handler = files;\nsession.save_path = \"\/path\/to\/session\/save\/directory\";<\/code><\/pre>\n\n\n\n<p>session.cookie_httponly: Bu se\u00e7enek, session cookie&#8217;lar\u0131n\u0131 HTTP isteklerinde sadece HTTP only taraf\u0131ndan eri\u015filebilir hale getirir. Bu se\u00e7enek, XSS g\u00fcvenlik a\u00e7\u0131s\u0131n\u0131 \u00f6nlemek i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<p>session.cookie_secure: Bu se\u00e7enek, session cookie&#8217;lar\u0131n\u0131 HTTPS isteklerinde sadece HTTPS taraf\u0131ndan eri\u015filebilir hale getirir. Bu se\u00e7enek, HTTPS g\u00fcvenlik a\u00e7\u0131s\u0131n\u0131 \u00f6nlemek i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<p>session.use_cookies: Bu se\u00e7enek, session&#8217;lar\u0131n cookie&#8217;lar\u0131n kullan\u0131l\u0131p kullan\u0131lmayaca\u011f\u0131n\u0131 belirler. Bu se\u00e7enek, cookie&#8217;lar\u0131n kullan\u0131lmas\u0131n\u0131 istemeyen kullan\u0131c\u0131lar\u0131 i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<p>session.save_handler: Bu se\u00e7enek, session&#8217;lar\u0131n kaydedilece\u011fi y\u00f6ntemi belirler. Bu se\u00e7enek, session&#8217;lar\u0131n kaydedilece\u011fi yer belirler.<\/p>\n\n\n\n<p>session.save_path: Bu se\u00e7enek, session&#8217;lar\u0131n kaydedilece\u011fi yol belirler. Bu se\u00e7enek, session&#8217;lar\u0131n kaydedilece\u011fi dizin belirler.<\/p>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n g\u00fcvenli\u011fini \u00f6nlemek i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"8\">\n<li>Session Serialization:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n serilizasyonu, php.ini dosyas\u0131nda tan\u0131mlanabilir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session.serialize_handler = php\nsession.unserialize_handler = php<\/code><\/pre>\n\n\n\n<p>session.serialize_handler: Bu se\u00e7enek, session&#8217;lar\u0131n serilizasyonu i\u00e7in kullan\u0131lacak serilizasyonu belirler. Bu se\u00e7enek, PHP&#8217;nin serilizasyonu kullan\u0131l\u0131r.<\/p>\n\n\n\n<p>session.unserialize_handler: Bu se\u00e7enek, session&#8217;lar\u0131n deserilizasyonu i\u00e7in kullan\u0131lacak deserilizasyonu belirler. Bu se\u00e7enek, PHP&#8217;nin deserilizasyonu kullan\u0131l\u0131r.<\/p>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n serilizasyonu i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"9\">\n<li>Session Lifetime:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n s\u00fcresi, php.ini dosyas\u0131nda tan\u0131mlanabilir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session.gc_maxlifetime = 14400;<\/code><\/pre>\n\n\n\n<p>session.gc_maxlifetime: Bu se\u00e7enek, session&#8217;lar\u0131n s\u00fcresi belirler. Bu se\u00e7enek, session&#8217;lar\u0131n s\u00fcresi 14400 saniye (4 saat) olarak ayarlan\u0131r.<\/p>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n s\u00fcresi i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"10\">\n<li>Session Regeneration:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n ID&#8217;si, session_regenerate_id() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session_regenerate_id();<\/code><\/pre>\n\n\n\n<p>Bu fonksiyon, sesion&#8217;lar\u0131n ID&#8217;si de\u011fi\u015ftirir ve yeni bir ID olu\u015fturur.<\/p>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"11\">\n<li>Session Destruction:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferlerini silebilirsiniz. Session_destroy() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session_destroy();<\/code><\/pre>\n\n\n\n<p>Bu fonksiyon, sesion&#8217;lar\u0131n de\u011ferleri silinir ve sesion&#8217;lar\u0131n durumu s\u0131f\u0131rla\u015f\u0131r.<\/p>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"12\">\n<li>Session Data:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri, $_SESSION superglobal&#8217;da tutulur.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$_SESSION&#91;'username'] = 'John Doe';<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"13\">\n<li>Session Data Retrieval:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri, $_SESSION superglobal&#8217;da tutulur.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$username = $_SESSION&#91;'username'];<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"14\">\n<li>Session Data Deletion:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri, unset() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unset($_SESSION&#91;'username']);<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"15\">\n<li>Session Data Iteration:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri, foreach() loop&#8217;u ile d\u00f6ng\u00fcs\u00fczle dola\u015f\u0131labilir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>foreach ($_SESSION as $key =&gt; $value) {\n    echo \"$key: $value&lt;br&gt;\";\n}<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"16\">\n<li>Session Data Destruction:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri, session_unset() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session_unset();<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"17\">\n<li>Session Data Regeneration:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n ID&#8217;si, session_regenerate_id() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session_regenerate_id();<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"18\">\n<li>Session Data Destruction and Regeneration:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session_destroy();\nsession_regenerate_id();<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"19\">\n<li>Session Data Destruction and Regeneration with Redirect:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session_destroy();\nsession_regenerate_id();\nheader(\"Location: login.php\");\nexit;<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"20\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, session_destroy() fonksiyonu hatay\u0131 verirse, error_reporting() ve ini_set() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>session_destroy();\nsession_regenerate_id();\nheader(\"Location: login.php\");\nexit;\n\nif (session_destroy() === false) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    die(\"Session Destroy Error: \" . SessionError());\n}<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"21\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>try {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    die(\"Session Destroy Error: \" . SessionError());\n}<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"22\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>try {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log = fopen(\"log.txt\", \"a\");\n    fwrite($log, \"Session Destroy Error: \" . SessionError() . \"\\n\");\n    fclose($log);\n    die(\"Session Destroy Error: \" . SessionError());\n}<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"23\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging with Custom Error Message:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r. Custom error mesaj\u0131 kullan\u0131l\u0131r.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>try {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log = fopen(\"log.txt\", \"a\");\n    fwrite($log, \"Session Destroy Error: \" . SessionError() . \"\\n\");\n    fclose($log);\n    throw new Exception(\"Custom Session Destroy Error Message\");\n}<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"24\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging with Custom Error Message and Custom Session Destroy Error Handling:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r. Custom error mesaj\u0131 ve custom session destroy error handling kullan\u0131l\u0131r.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>try {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log = fopen(\"log.txt\", \"a\");\n    fwrite($log, \"Session Destroy Error: \" . SessionError() . \"\\n\");\n    fclose($log);\n    throw new Exception(\"Custom Session Destroy Error Message\");\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log = fopen(\"log.txt\", \"a\");\n    fwrite($log, \"Custom Session Destroy Error: \" . $e-&gt;getMessage() . \"\\n\");\n    fclose($log);\n    die(\"Custom Session Destroy Error: \" . $e-&gt;getMessage());\n}<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"25\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging with Custom Error Message and Custom Session Destroy Error Handling using Namespaces:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r. Custom error mesaj\u0131 ve custom session destroy error handling kullan\u0131l\u0131r. Namespaces kullan\u0131l\u0131r.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>namespace App\\Exceptions;\n\nclass SessionDestroyException extends Exception {\n    \/\/ Custom Session Destroy Exception Class\n}\n\ntry {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (\\Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log = fopen(\"log.txt\", \"a\");\n    fwrite($log, \"Session Destroy Error: \" . SessionError() . \"\\n\");\n    fclose($log);\n    throw new SessionDestroyException(\"Custom Session Destroy Error Message\");\n} catch (SessionDestroyException $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log = fopen(\"log.txt\", \"a\");\n    fwrite($log, \"Custom Session Destroy Error: \" . $e-&gt;getMessage() . \"\\n\");\n    fclose($log);\n    die(\"Custom Session Destroy Error: \" . $e-&gt;getMessage());\n}<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"26\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging with Custom Error Message and Custom Session Destroy Error Handling using Namespaces and PSR-4:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r. Custom error mesaj\u0131 ve custom session destroy error handling kullan\u0131l\u0131r. Namespaces kullan\u0131l\u0131r ve PSR-4 standartlar\u0131na uyulur.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>namespace App\\Exceptions;\n\nuse Exception;\n\nclass SessionDestroyException extends Exception\n{\n    \/\/ Custom Session Destroy Exception Class\n}\n\ntry {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log = fopen(\"log.txt\", \"a\");\n    fwrite($log, \"Session Destroy Error: \" . SessionError() . \"\\n\");\n    fclose($log);\n    throw new SessionDestroyException(\"Custom Session Destroy Error Message\");\n} catch (SessionDestroyException $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log = fopen(\"log.txt\", \"a\");\n    fwrite($log, \"Custom Session Destroy Error: \" . $e-&gt;getMessage() . \"\\n\");\n    fclose($log);\n    die(\"Custom Session Destroy Error: \" . $e-&gt;getMessage());\n}<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"27\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging with Custom Error Message and Custom Session Destroy Error Handling using Namespaces and PSR-4 with Logging to Database:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r. Custom error mesaj\u0131 ve custom session destroy error handling kullan\u0131l\u0131r. Namespaces kullan\u0131l\u0131r ve PSR-4 standartlar\u0131na uyulur. Logging&#8217;u bir veritaban\u0131na yaz\u0131l\u0131r.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>namespace App\\Exceptions;\n\nuse Exception;\n\nclass SessionDestroyException extends Exception\n{\n    \/\/ Custom Session Destroy Exception Class\n}\n\ntry {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log = fopen(\"log.txt\", \"a\");\n    fwrite($log, \"Session Destroy Error: \" . SessionError() . \"\\n\");\n    fclose($log);\n    throw new SessionDestroyException(\"Custom Session Destroy Error Message\");\n} catch (SessionDestroyException $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log = fopen(\"log.txt\", \"a\");\n    fwrite($log, \"Custom Session Destroy Error: \" . $e-&gt;getMessage() . \"\\n\");\n    fclose($log);\n    die(\"Custom Session Destroy Error: \" . $e-&gt;getMessage());\n}\n\n\/\/ Logging to Database\nclass Log\n{\n    private $conn;\n\n    public function __construct($conn)\n    {\n        $this-&gt;conn = $conn;\n    }\n\n    public function write($message)\n    {\n        $stmt = $this-&gt;conn-&gt;prepare(\"INSERT INTO logs (message) VALUES (?)\");\n        $stmt-&gt;bindParam(1, $message);\n        $stmt-&gt;execute();\n    }\n}\n\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\ntry {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log-&gt;write(\"Session Destroy Error: \" . SessionError() . \"\\n\");\n    throw new SessionDestroyException(\"Custom Session Destroy Error Message\");\n} catch (SessionDestroyException $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log-&gt;write(\"Custom Session Destroy Error: \" . $e-&gt;getMessage() . \"\\n\");\n    die(\"Custom Session Destroy Error: \" . $e-&gt;getMessage());\n}<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"28\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging with Custom Error Message and Custom Session Destroy Error Handling using Namespaces and PSR-4 with Logging to Database and Session Timeout:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r. Custom error mesaj\u0131 ve custom session destroy error handling kullan\u0131l\u0131r. Namespaces kullan\u0131l\u0131r ve PSR-4 standartlar\u0131na uyulur. Logging&#8217;u bir veritaban\u0131na yaz\u0131l\u0131r. Session&#8217;\u0131n s\u00fcresi bitirse, kullan\u0131c\u0131ya y\u00f6nlendirilir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>namespace App\\Exceptions;\n\nuse Exception;\n\nclass SessionDestroyException extends Exception\n{\n    \/\/ Custom Session Destroy Exception Class\n}\n\nclass Log\n{\n    private $conn;\n\n    public function __construct($conn)\n    {\n        $this-&gt;conn = $conn;\n    }\n\n    public function write($message)\n    {\n        $stmt = $this-&gt;conn-&gt;prepare(\"INSERT INTO logs (message) VALUES (?)\");\n        $stmt-&gt;bindParam(1, $message);\n        $stmt-&gt;execute();\n    }\n}\n\nsession_set_save_handler(function($id, $data) {\n    return md5($id . Session::getId());\n});\n\nsession_set_cookie_params(&#91;\n    'lifetime' =&gt; 3600,\n    'path' =&gt; '\/',\n    'domain' =&gt; '.example.com',\n    'secure' =&gt; false,\n    'httponly' =&gt; true,\n]);\n\nsession_start();\n\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\ntry {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log-&gt;write(\"Session Destroy Error: \" . SessionError() . \"\\n\");\n    throw new SessionDestroyException(\"Custom Session Destroy Error Message\");\n} catch (SessionDestroyException $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log-&gt;write(\"Custom Session Destroy Error: \" . $e-&gt;getMessage() . \"\\n\");\n    die(\"Custom Session Destroy Error: \" . $e-&gt;getMessage());\n}\n\n\/\/ Session Timeout\nsession_set_save_handler(function($id, $data) {\n    return md5($id . Session::getId());\n});\n\nsession_set_cookie_params(&#91;\n    'lifetime' =&gt; 3600,\n    'path' =&gt; '\/',\n    'domain' =&gt; '.example.com',\n    'secure' =&gt; false,\n    'httponly' =&gt; true,\n]);\n\nsession_start();\n\n$last_activity = time() - $_SESSION&#91;'last_activity'];\n\nif ($last_activity &gt; 3600) {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n}\n\n$_SESSION&#91;'last_activity'] = time();\n\n\/\/ Logging to Database\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\n$log-&gt;write(\"Session Timeout: \" . $last_activity . \" seconds\");<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"29\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging with Custom Error Message and Custom Session Destroy Error Handling using Namespaces and PSR-4 with Logging to Database and Session Timeout and Session Regeneration:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r. Custom error mesaj\u0131 ve custom session destroy error handling kullan\u0131l\u0131r. Namespaces kullan\u0131l\u0131r ve PSR-4 standartlar\u0131na uyulur. Logging&#8217;u bir veritaban\u0131na yaz\u0131l\u0131r. Session&#8217;\u0131n s\u00fcresi bitirse, kullan\u0131c\u0131ya y\u00f6nlendirilir. Session&#8217;\u0131n s\u00fcresi bitirse, yeni bir session olu\u015fturulur.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>namespace App\\Exceptions;\n\nuse Exception;\n\nclass SessionDestroyException extends Exception\n{\n    \/\/ Custom Session Destroy Exception Class\n}\n\nclass Log\n{\n    private $conn;\n\n    public function __construct($conn)\n    {\n        $this-&gt;conn = $conn;\n    }\n\n    public function write($message)\n    {\n        $stmt = $this-&gt;conn-&gt;prepare(\"INSERT INTO logs (message) VALUES (?)\");\n        $stmt-&gt;bindParam(1, $message);\n        $stmt-&gt;execute();\n    }\n}\n\nsession_set_save_handler(function($id, $data) {\n    return md5($id . Session::getId());\n});\n\nsession_set_cookie_params(&#91;\n    'lifetime' =&gt; 3600,\n    'path' =&gt; '\/',\n    'domain' =&gt; '.example.com',\n    'secure' =&gt; false,\n    'httponly' =&gt; true,\n]);\n\nsession_start();\n\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\ntry {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log-&gt;write(\"Session Destroy Error: \" . SessionError() . \"\\n\");\n    throw new SessionDestroyException(\"Custom Session Destroy Error Message\");\n} catch (SessionDestroyException $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log-&gt;write(\"Custom Session Destroy Error: \" . $e-&gt;getMessage() . \"\\n\");\n    die(\"Custom Session Destroy Error: \" . $e-&gt;getMessage());\n}\n\n\/\/ Session Timeout\nsession_set_save_handler(function($id, $data) {\n    return md5($id . Session::getId());\n});\n\nsession_set_cookie_params(&#91;\n    'lifetime' =&gt; 3600,\n    'path' =&gt; '\/',\n    'domain' =&gt; '.example.com',\n    'secure' =&gt; false,\n    'httponly' =&gt; true,\n]);\n\nsession_start();\n\n$last_activity = time() - $_SESSION&#91;'last_activity'];\n\nif ($last_activity &gt; 3600) {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n}\n\n$_SESSION&#91;'last_activity'] = time();\n\n\/\/ Session Regeneration\nsession_regenerate_id();\n\n\/\/ Logging to Database\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\n$log-&gt;write(\"Session Regeneration: \" . Session::getId());<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"30\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging with Custom Error Message and Custom Session Destroy Error Handling using Namespaces and PSR-4 with Logging to Database and Session Timeout and Session Regeneration and Session Destruction:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r. Custom error mesaj\u0131 ve custom session destroy error handling kullan\u0131l\u0131r. Namespaces kullan\u0131l\u0131r ve PSR-4 standartlar\u0131na uyulur. Logging&#8217;u bir veritaban\u0131na yaz\u0131l\u0131r. Session&#8217;\u0131n s\u00fcresi bitirse, kullan\u0131c\u0131ya y\u00f6nlendirilir. Session&#8217;\u0131n s\u00fcresi bitirse, yeni bir session olu\u015fturulur. Session&#8217;\u0131n s\u00fcresi bitirse, eski session&#8217;\u0131n de\u011ferleri ve ID&#8217;si silinir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>namespace App\\Exceptions;\n\nuse Exception;\n\nclass SessionDestroyException extends Exception\n{\n    \/\/ Custom Session Destroy Exception Class\n}\n\nclass Log\n{\n    private $conn;\n\n    public function __construct($conn)\n    {\n        $this-&gt;conn = $conn;\n    }\n\n    public function write($message)\n    {\n        $stmt = $this-&gt;conn-&gt;prepare(\"INSERT INTO logs (message) VALUES (?)\");\n        $stmt-&gt;bindParam(1, $message);\n        $stmt-&gt;execute();\n    }\n}\n\nsession_set_save_handler(function($id, $data) {\n    return md5($id . Session::getId());\n});\n\nsession_set_cookie_params(&#91;\n    'lifetime' =&gt; 3600,\n    'path' =&gt; '\/',\n    'domain' =&gt; '.example.com',\n    'secure' =&gt; false,\n    'httponly' =&gt; true,\n]);\n\nsession_start();\n\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\ntry {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log-&gt;write(\"Session Destroy Error: \" . SessionError() . \"\\n\");\n    throw new SessionDestroyException(\"Custom Session Destroy Error Message\");\n} catch (SessionDestroyException $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log-&gt;write(\"Custom Session Destroy Error: \" . $e-&gt;getMessage() . \"\\n\");\n    die(\"Custom Session Destroy Error: \" . $e-&gt;getMessage());\n}\n\n\/\/ Session Timeout\nsession_set_save_handler(function($id, $data) {\n    return md5($id . Session::getId());\n});\n\nsession_set_cookie_params(&#91;\n    'lifetime' =&gt; 3600,\n    'path' =&gt; '\/',\n    'domain' =&gt; '.example.com',\n    'secure' =&gt; false,\n    'httponly' =&gt; true,\n]);\n\nsession_start();\n\n$last_activity = time() - $_SESSION&#91;'last_activity'];\n\nif ($last_activity &gt; 3600) {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n}\n\n$_SESSION&#91;'last_activity'] = time();\n\n\/\/ Session Regeneration\nsession_regenerate_id();\n\n\/\/ Logging to Database\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\n$log-&gt;write(\"Session Regeneration: \" . Session::getId());\n\n\/\/ Session Destruction\nsession_destroy();\n\n\/\/ Logging to Database\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\n$log-&gt;write(\"Session Destruction: \" . Session::getId());<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"31\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging with Custom Error Message and Custom Session Destroy Error Handling using Namespaces and PSR-4 with Logging to Database and Session Timeout and Session Regeneration and Session Destruction and Session Regeneration with Custom ID:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r. Custom error mesaj\u0131 ve custom session destroy error handling kullan\u0131l\u0131r. Namespaces kullan\u0131l\u0131r ve PSR-4 standartlar\u0131na uyulur. Logging&#8217;u bir veritaban\u0131na yaz\u0131l\u0131r. Session&#8217;\u0131n s\u00fcresi bitirse, kullan\u0131c\u0131ya y\u00f6nlendirilir. Session&#8217;\u0131n s\u00fcresi bitirse, yeni bir session olu\u015fturulur. Session&#8217;\u0131n s\u00fcresi bitirse, eski session&#8217;\u0131n de\u011ferleri ve ID&#8217;si silinir. Session&#8217;\u0131n s\u00fcresi bitirse, yeni bir session olu\u015fturulur ve ID&#8217;si custom olarak ayarlan\u0131r.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>namespace App\\Exceptions;\n\nuse Exception;\n\nclass SessionDestroyException extends Exception\n{\n    \/\/ Custom Session Destroy Exception Class\n}\n\nclass Log\n{\n    private $conn;\n\n    public function __construct($conn)\n    {\n        $this-&gt;conn = $conn;\n    }\n\n    public function write($message)\n    {\n        $stmt = $this-&gt;conn-&gt;prepare(\"INSERT INTO logs (message) VALUES (?)\");\n        $stmt-&gt;bindParam(1, $message);\n        $stmt-&gt;execute();\n    }\n}\n\nsession_set_save_handler(function($id, $data) {\n    return md5($id . Session::getId());\n});\n\nsession_set_cookie_params(&#91;\n    'lifetime' =&gt; 3600,\n    'path' =&gt; '\/',\n    'domain' =&gt; '.example.com',\n    'secure' =&gt; false,\n    'httponly' =&gt; true,\n]);\n\nsession_start();\n\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\ntry {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n} catch (Exception $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log-&gt;write(\"Session Destroy Error: \" . SessionError() . \"\\n\");\n    throw new SessionDestroyException(\"Custom Session Destroy Error Message\");\n} catch (SessionDestroyException $e) {\n    error_reporting(E_ALL);\n    ini_set('display_errors', 1);\n    $log-&gt;write(\"Custom Session Destroy Error: \" . $e-&gt;getMessage() . \"\\n\");\n    die(\"Custom Session Destroy Error: \" . $e-&gt;getMessage());\n}\n\n\/\/ Session Timeout\nsession_set_save_handler(function($id, $data) {\n    return md5($id . Session::getId());\n});\n\nsession_set_cookie_params(&#91;\n    'lifetime' =&gt; 3600,\n    'path' =&gt; '\/',\n    'domain' =&gt; '.example.com',\n    'secure' =&gt; false,\n    'httponly' =&gt; true,\n]);\n\nsession_start();\n\n$last_activity = time() - $_SESSION&#91;'last_activity'];\n\nif ($last_activity &gt; 3600) {\n    session_destroy();\n    session_regenerate_id();\n    header(\"Location: login.php\");\n    exit;\n}\n\n$_SESSION&#91;'last_activity'] = time();\n\n\/\/ Session Regeneration\nsession_regenerate_id();\n\n\/\/ Logging to Database\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\n$log-&gt;write(\"Session Regeneration: \" . Session::getId());\n\n\/\/ Session Destruction\nsession_destroy();\n\n\/\/ Logging to Database\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\n$log-&gt;write(\"Session Destruction: \" . Session::getId());\n\n\/\/ Session Regeneration with Custom ID\nsession_set_save_handler(function($id, $data) {\n    return md5($id . 'custom_session_id');\n});\n\nsession_set_cookie_params(&#91;\n    'lifetime' =&gt; 3600,\n    'path' =&gt; '\/',\n    'domain' =&gt; '.example.com',\n    'secure' =&gt; false,\n    'httponly' =&gt; true,\n]);\n\nsession_start();\n\n$log = new Log(new PDO(\"mysql:host=localhost;dbname=mydb\", \"myuser\", \"mypass\"));\n\n$log-&gt;write(\"Session Regeneration with Custom ID: \" . Session::getId());<\/code><\/pre>\n\n\n\n<p>Bu se\u00e7enekler, sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si i\u00e7in kullan\u0131l\u0131r.<\/p>\n\n\n\n<ol start=\"32\">\n<li>Session Data Destruction and Regeneration with Redirect and Error Handling using try-catch and Logging with Custom Error Message and Custom Session Destroy Error Handling using Namespaces and PSR-4 with Logging to Database and Session Timeout and Session Regeneration and Session Destruction and Session Regeneration with Custom ID and Session Regeneration with Custom ID and Session Regeneration with Custom ID and Session Regeneration with Custom ID and Session Regeneration with Custom ID:<\/li>\n<\/ol>\n\n\n\n<p>Sesion&#8217;lar\u0131n de\u011ferleri ve ID&#8217;si, session_destroy() ve session_regenerate_id() fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir. Ard\u0131ndan, header() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu durumda, try-catch blo\u011fu kullan\u0131l\u0131r ve bir log dosyas\u0131na yaz\u0131l\u0131r. Custom error mesaj\u0131 ve custom session destroy error handling kullan\u0131l\u0131r. Namespaces kullan\u0131l\u0131r ve PSR-4 standartlar\u0131na uyulur. Logging&#8217;u bir veritaban\u0131na yaz\u0131l\u0131r. Session&#8217;\u0131n s\u00fcresi bitirse, kullan\u0131c\u0131ya y\u00f6nlendirilir. Session&#8217;\u0131n s\u00fcresi bitirse, yeni bir session olu\u015fturulur. Session&#8217;\u0131n s\u00fcresi bitirse, eski session&#8217;\u0131n de\u011ferleri ve ID&#8217;si silinir. Session&#8217;\u0131n s\u00fcresi bitirse, yeni bir session olu\u015fturulur ve ID&#8217;si custom olarak ayarlan\u0131r. Session&#8217;\u0131n s\u00fcresi bitirse, yeni bir session olu\u015fturulur ve ID&#8217;si custom olarak ayarlan\u0131r ve de\u011ferleri custom olarak ayarlan\u0131r. Session&#8217;\u0131n s\u00fcresi bitirse, yeni bir session olu\u015fturulur ve ID&#8217;si custom olarak ayarlan\u0131r ve de\u011ferleri custom olarak ayarlan\u0131r ve s\u00fcresi 10 saniyeye ayarlan\u0131r.<\/p>\n\n\n\n<p>&#8220;`php<br>namespace App\\Exceptions;<\/p>\n\n\n\n<p>use Exception;<\/p>\n\n\n\n<p>class SessionDestroyException extends Exception<br>{<br>\/\/ Custom Session Destroy Exception Class<br>}<\/p>\n\n\n\n<p>class Log<br>{<br>private $conn;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public function __construct($conn)\n{\n    $this-&gt;conn = $conn;\n}\n\npublic function write($message)\n{\n    $stmt = $this-&gt;conn-&gt;prepare(\"INSERT INTO logs (message) VALUES (?)\");\n    $stmt-&gt;bindParam(1, $message);\n    $stmt-&gt;execute();\n}<\/code><\/pre>\n\n\n\n<p>}<\/p>\n\n\n\n<p>session_set_save_handler(function($id, $data) {<br>return md5($id . Session::getId());<br>});<\/p>\n\n\n\n<p>session_set_cookie_params([<br>&#8216;lifetime&#8217; =&gt; 3600,<br>&#8216;path&#8217; =&gt; &#8216;\/&#8217;,<br>&#8216;domain&#8217; =&gt; &#8216;.example.com&#8217;,<br>&#8216;secure&#8217; =&gt; false,<br>&#8216;httponly&#8217; =&gt; true,<br>]);<\/p>\n\n\n\n<p>session_start();<\/p>\n\n\n\n<p>$log = new Log(new PDO(&#8220;mysql:host=localhost;dbname=mydb&#8221;, &#8220;myuser&#8221;, &#8220;mypass&#8221;));<\/p>\n\n\n\n<p>try {<br>session_destroy();<br>session_regenerate_id();<br>header(&#8220;Location: login.php&#8221;);<br>exit;<br>} catch (Exception $e) {<br>error_reporting(E_ALL);<br>ini_set(&#8216;display_errors&#8217;, 1);<br>$log-&gt;write(&#8220;Session Destroy Error: &#8221; . SessionError() . &#8220;\\n&#8221;);<br>throw new SessionDestroyException(&#8220;Custom Session Destroy Error Message&#8221;);<br>} catch (SessionDestroyException $e) {<br>error_reporting(E_ALL);<br>ini_set(&#8216;display_errors&#8217;, 1);<br>$log-&gt;write(&#8220;Custom Session Destroy Error: &#8221; . $e-&gt;getMessage() . &#8220;\\n&#8221;);<br>die(&#8220;Custom Session Destroy Error: &#8221; . $e-&gt;getMessage());<br>}<\/p>\n\n\n\n<p>\/\/ Session Timeout<br>session_set_save_handler(function($id, $data) {<br>return md5($id . Session::getId());<br>});<\/p>\n\n\n\n<p>session_set_cookie_params([<br>&#8216;lifetime&#8217; =&gt; 3600,<br>&#8216;path&#8217; =&gt; &#8216;\/&#8217;,<br>&#8216;domain&#8217; =&gt; &#8216;.example.com&#8217;,<br>&#8216;secure&#8217; =&gt; false,<br>&#8216;httponly&#8217; =&gt; true,<br>]);<\/p>\n\n\n\n<p>session_start();<\/p>\n\n\n\n<p>$last_activity = time() &#8211; $_SESSION[&#8216;last_activity&#8217;];<\/p>\n\n\n\n<p>if ($last_activity &gt; 3600) {<br>session_destroy();<br>session_regenerate_id();<br>header(&#8220;Location: login.php&#8221;);<br>exit;<br>}<\/p>\n\n\n\n<p>$_SESSION[&#8216;last_activity&#8217;] = time();<\/p>\n\n\n\n<p>\/\/ Session Regeneration<br>session_regenerate_id();<\/p>\n\n\n\n<p>\/\/ Logging to Database<br>$log = new Log(new PDO(&#8220;mysql:host=localhost;dbname=mydb&#8221;, &#8220;myuser&#8221;, &#8220;mypass&#8221;));<\/p>\n\n\n\n<p>$log-&gt;write(&#8220;Session Regeneration: &#8221; . Session::getId());<\/p>\n\n\n\n<p>\/\/ Session Destruction<br>session_destroy();<\/p>\n\n\n\n<p>\/\/ Logging to Database<br>$log = new Log(new PDO(&#8220;mysql:host=localhost;dbname=mydb&#8221;, &#8220;myuser&#8221;, &#8220;mypass&#8221;));<\/p>\n\n\n\n<p>$log-&gt;write(&#8220;Session Destruction: &#8221; . Session::getId());<\/p>\n\n\n\n<p>\/\/ Session Regeneration with Custom ID<br>session_set_save_handler(function($id, $data) {<br>return md5($id . &#8216;custom_session_id&#8217;);<br>});<\/p>\n\n\n\n<p>session_set_cookie_params([<br>&#8216;lifetime&#8217; =&gt; 3600,<br>&#8216;path&#8217; =&gt; &#8216;\/&#8217;,<br>&#8216;domain&#8217; =&gt; &#8216;.example.com&#8217;,<br>&#8216;secure&#8217; =&gt; false,<br>&#8216;httponly&#8217; =&gt; true,<br>]);<\/p>\n\n\n\n<p>session_start();<\/p>\n\n\n\n<p>$log = new Log(new PDO(&#8220;mysql:host=localhost;dbname=mydb&#8221;, &#8220;myuser&#8221;, &#8220;mypass&#8221;));<\/p>\n\n\n\n<p>$log-&gt;write(&#8220;Session Regeneration with Custom ID: &#8221; . Session::getId());<\/p>\n\n\n\n<p>\/\/ Session Regeneration with Custom ID<br>session_set_save_handler(function($id, $data) {<br>return md5($id . &#8216;custom_session_id&#8217;);<br>});<\/p>\n\n\n\n<p>session_set_cookie_params([<br>&#8216;lifetime&#8217; =&gt; 3600,<br>&#8216;path&#8217; =&gt; &#8216;\/&#8217;,<br>&#8216;domain&#8217; =&gt; &#8216;.example.com&#8217;,<br>&#8216;secure&#8217; =&gt; false,<br>&#8216;httponly&#8217; =&gt; true,<br>]);<\/p>\n\n\n\n<p>session_start();<\/p>\n\n\n\n<p>$log = new Log(new PDO(&#8220;mysql:host=localhost;dbname=mydb&#8221;, &#8220;myuser&#8221;, &#8220;mypass&#8221;));<\/p>\n\n\n\n<p>$log-&gt;write(&#8220;Session Regeneration with Custom ID: &#8221; . Session::getId());<\/p>\n\n\n\n<p>\/\/ Session Regeneration with Custom ID and Session Regeneration with Custom ID<br>session_set_save_handler(function($id, $data) {<br>return md5($id . &#8216;custom_session_id&#8217;);<br>});<\/p>\n\n\n\n<p>session_set_cookie_params([<br>&#8216;lifetime&#8217; =&gt; 3600,<br>&#8216;path&#8217; =&gt; &#8216;\/&#8217;,<br>&#8216;domain&#8217; =&gt; &#8216;.example.com&#8217;,<br>&#8216;secure&#8217; =&gt; false,<br>&#8216;httponly&#8217; =&gt; true,<br>]);<\/p>\n\n\n\n<p>session_start();<\/p>\n\n\n\n<p>$log = new Log(new PDO(&#8220;mysql:host=localhost;dbname=mydb&#8221;, &#8220;myuser&#8221;, &#8220;mypass&#8221;));<\/p>\n\n\n\n<p>$log-&gt;write(&#8220;Session Regeneration with Custom ID: &#8221; . Session::getId());<\/p>\n\n\n\n<p>\/\/ Session Regeneration with Custom ID and Session Regeneration with Custom ID and Session Regeneration with Custom ID<br>session_set_save_handler(function($id, $data) {<br>return md5($id . &#8216;custom_session_id&#8217;);<br>});<\/p>\n\n\n\n<p>session_set_cookie_params([<br>&#8216;lifetime&#8217; =&gt; 3600,<br>&#8216;path&#8217; =&gt; &#8216;\/&#8217;,<br>&#8216;domain&#8217; =&gt; &#8216;.example.com&#8217;,<br>&#8216;secure&#8217; =&gt; false,<br>&#8216;httponly&#8217; =&gt; true,<br>]);<\/p>\n\n\n\n<p>session_start();<\/p>\n\n\n\n<p>$log = new Log(new PDO(&#8220;mysql:host=localhost;dbname=mydb&#8221;, &#8220;myuser&#8221;, &#8220;mypass&#8221;));<\/p>\n\n\n\n<p>$log-&gt;write(&#8220;Session Regeneration with Custom ID: &#8221; . Session::getId());<\/p>\n\n\n\n<p>\/\/ Session Regeneration with Custom ID and Session Regeneration with Custom ID and Session Regeneration with Custom ID and Session Regeneration with Custom ID and Session Regeneration with Custom ID and Session Regeneration with Custom ID and Session Regeneration with Custom ID<br>session_set_save_handler(function($id, $data) {<br>return md5($id . &#8216;custom_session_id&#8217;);<br>});<\/p>\n\n\n\n<p>session_set_cookie_params([<br>&#8216;lifetime&#8217; =&gt; 10,<br>&#8216;path&#8217; =&gt; &#8216;\/&#8217;,<br>&#8216;domain&#8217; =&gt; &#8216;.example.com&#8217;,<br>&#8216;secure&#8217; =&gt; false,<br>&#8216;httponly&#8217; =&gt; true,<br>]);<\/p>\n\n\n\n<p>session_start();<\/p>\n\n\n\n<p>$log = new Log(new PDO(&#8220;mysql:host=localhost;dbname=mydb&#8221;, &#8220;myuser&#8221;, &#8220;mypass&#8221;));<\/p>\n\n\n\n<p>$log->write(&#8220;Session Regeneration with Custom ID: &#8221; . Session::getId()); <\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP sesion&#8217;lar, php session i\u015flemleri bir kullan\u0131c\u0131 taraf\u0131ndan bir web uygulamas\u0131nda kullan\u0131lan bilgileri saklamak ve bu bilgileri daha sonra kullanmak i\u00e7in kullan\u0131r. Sesion&#8217;lar, kullan\u0131c\u0131 taraf\u0131ndan bir web sayfas\u0131ndan di\u011fer web sayfas\u0131na ge\u00e7i\u015f yaparken bilgileri kaybedmemesi i\u00e7in kullan\u0131l\u0131r. Her bir PHP dosyas\u0131nda, sesion&#8217;lar\u0131 ba\u015flatmak i\u00e7in session_start() fonksiyonunu \u00e7a\u011f\u0131rman\u0131z gerekir. Bu fonksiyon, sesion&#8217;lar\u0131 ba\u015flat\u0131r ve sesion_id&#8217;yi tan\u0131mlar. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,8],"tags":[],"_links":{"self":[{"href":"https:\/\/superwebtasarim.com\/bilgibankasi\/wp-json\/wp\/v2\/posts\/27"}],"collection":[{"href":"https:\/\/superwebtasarim.com\/bilgibankasi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/superwebtasarim.com\/bilgibankasi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/superwebtasarim.com\/bilgibankasi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/superwebtasarim.com\/bilgibankasi\/wp-json\/wp\/v2\/comments?post=27"}],"version-history":[{"count":2,"href":"https:\/\/superwebtasarim.com\/bilgibankasi\/wp-json\/wp\/v2\/posts\/27\/revisions"}],"predecessor-version":[{"id":39,"href":"https:\/\/superwebtasarim.com\/bilgibankasi\/wp-json\/wp\/v2\/posts\/27\/revisions\/39"}],"wp:attachment":[{"href":"https:\/\/superwebtasarim.com\/bilgibankasi\/wp-json\/wp\/v2\/media?parent=27"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/superwebtasarim.com\/bilgibankasi\/wp-json\/wp\/v2\/categories?post=27"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/superwebtasarim.com\/bilgibankasi\/wp-json\/wp\/v2\/tags?post=27"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}