رفع خطای your session has expired در وردپرس
اگر توسعهدهنده یا وبمستر هستید، احتمالا حداقل یکبار هم که شده با خطای your session has expired در وردپرس مواجه شدهاید؛ یکی از رایج ترین مشکلات کاربران وردپرس که هنگام فرآیند احراز هویت و ارسال دادهها به حساب رخ میدهد. این خطا مستقیما با نحوه مدیریت نشستها (Sessions) و کوکیها در هسته وردپرس مرتبط است.
خطایی که یکی از خطاهای رایج در فرآیند احراز هویت و ارسال دادهها به حساب میآید و مستقیما با نحوه مدیریت نشست ها (Sessions) و کوکیها در هسته وردپرس مرتبط است.
این خطا زمانی رخ میدهد که مرورگر یا سرور نتواند اعتبار نشست فعال کاربر را تأیید کند یا کوکی مربوط به ورود، منقضی یا نادرست تلقی شود.
اما راه حل برطرف کردن خطا و اصلا جلوگیری کردن از بروز آن کدام است؟ با ما در ادامه این مطلب از دولوپ همراه شوید تا یاد بگیریم که برای رفع این خطا باید چه کنیم!
از دید فنی، وردپرس برای حفظ وضعیت ورود کاربر از ترکیب کوکی های مرورگر و توکنهایی امنیتی به اسم nonce استفاده میکند. این ترکیب باعث میشود که کوچکترین ناهماهنگی در تنظیمات URL، زمان سیستم، افزونهها یا کش، باعث بروز اختلالی شود که به کاربر خطای Your session has expired را نشان میدهد.
درک عمیق از ساز و کار نشستها، نقش کلیدی ای در تشخیص و رفع این خطا دارد. پس تسلط بر این مسئله برای مدیران سایت های وردپرسی از اهمیت بالایی برخوردار است. زیرا میتواند مستقیما روی تجربه کاربری و عملکرد بخش مدیریتی سایت تاثیرگذار باشد.
یکی از راهکارهای متداول برای رفع مشکلات مربوط به کش، غیرفعالسازی کش در htaccess است که میتواند از بروز تداخل با نشستهای وردپرس جلوگیری کند.
در ادامه این مطلب از دولوپ، نکات بیشتری را در مورد نحوه خطای Your session has expired در وردپرس بررسی خواهیم کرد.
خطای Your session has expired در وردپرس چیست؟
خطای Your session has expired یا نشست شما منقضی شده است در وردپرس، معمولا زمانی ظاهر میشود که مرورگر کاربر نمیتواند جلسه (session) ورود را به درستی حفظ کند.
این خطا بیشتر هنگام تلاش برای ورود به داشبورد مدیریت یا ارسال فرم ها دیده میشود و اغلب به دلیل مشکل در کوکی ها یا تنظیمات زمان بندی نشست (session timeout) اتفاق میافتد.
به طور فنی، وردپرس برای تایید اعتبار کاربران از کوکی استفاده میکند و اگر کوکی منقضی شود یا مرورگر نتواند آن را ارسال کند (مثلا به دلیل پیکربندی اشتباه URL سایت، کش مرورگر، یا مشکل در افزونههای امنیتی)، این پیام را نمایش میدهد.
راه حل های معمول رفع این خطا شامل پاکسازی کش مرورگر، بررسی تنظیمات URL در وردپرس (مانند تفاوت بین www و بدون www یا http و https)، غیرفعال کردن افزونههای امنیتی یا کش و بررسی تاریخ و ساعت سیستم هستند. راه حل هایی که در ادامه آن ها را دقیق تر و تخصصی تر بررسی خواهیم کرد.
بیشتر بخوانید:
دلایل بروز خطای Your Session Has Expired چیست؟
وقتی در وردپرس با خطای session expired روبهرو میشوید، ممکن است برایتان سوال پیش بیاید که منقضی شده یعنی چی؟ در واقع، این خطا به این معناست که نشست یا همان ارتباط موقت کاربر با سرور به پایان رسیده است. وردپرس برای حفظ امنیت کاربران و از طریق خدمات امنیت وردپرس، هر نشست را فقط برای مدت زمان مشخصی فعال نگه میدارد. پس از گذشت آن زمان، سیستم بهصورت خودکار نشست را خاتمه میدهد و پیغام Your session has expired را نمایش میدهد.
گاهی اوقات کاربران هنگام بارگذاری فایلها نیز پیامی با عنوان file has expired یعنی چی مشاهده میکنند. این خطا نیز مفهومی مشابه دارد و به این معناست که مهلت استفاده از فایل یا لینک مربوطه به پایان رسیده است و باید دوباره آن را بازنشانی یا بارگذاری کنید.
در برخی موارد هم پیغام زمان کاربری شما منقضی شده است یعنی چه برای کاربران ظاهر میشود. این جمله در واقع ترجمهی همان خطای session expired است و بیان میکند که مدت اعتبار ورود شما تمام شده و باید دوباره وارد حساب خود شوید.
بهطور خلاصه، تمام این پیامها نشان میدهند که نشست کاربری، کوکیها یا فایلهای موقت ذخیرهشده در مرورگر منقضی شدهاند و وردپرس دیگر نمیتواند ارتباط امن شما را تشخیص دهد. این مسئله معمولا به دلایل زیر اتفاق میافتد:
منقضی شدن نشست (Session Expired)
اگر برای مدت طولانی در سایت هیچ فعالیتی نداشته باشید، وردپرس بهطور خودکار نشست شما را خاتمه میدهد تا امنیت سایت حفظ شود. این اتفاق معمولا زمانی رخ میدهد که مدت زمان نشست تعیینشده در تنظیمات سرور یا وردپرس به پایان برسد.
مشکلات کوکیها (Cookies)
وردپرس برای شناسایی و حفظ نشست کاربران از کوکیها استفاده میکند. اگر این کوکیها بهدرستی ذخیره یا منتقل نشوند، احتمال بروز خطای file has expired وجود دارد. این به این معناست که اطلاعات ذخیرهشده در مرورگر شما منقضی شدهاند.
تداخل افزونهها یا قالبها
افزونهها و قالبهایی که برای مدیریت نشستها طراحی شدهاند ممکن است با سیستم پیشفرض وردپرس تداخل داشته باشند. در این حالت، خطای زمان کاربری شما منقضی شده است ممکن است نمایان شود، زیرا افزونهها میتوانند مدت زمان نشست را تغییر دهند.
تنظیمات اشتباه تاریخ و زمان
اگر تاریخ یا ساعت سرور یا سایت شما نادرست تنظیم شده باشد، نشستهای شما زودتر از زمان واقعی منقضی میشوند. این میتواند باعث شود که سیستم نتواند تشخیص دهد که زمان نشست به پایان رسیده یا خیر.
محدودیتهای سروری
در برخی موارد، محدودیتهای سرور در مدیریت کوکیها یا تنظیمات PHP میتواند باعث بروز خطای session expired شود. بهطور مثال، اگر مدت زمان اجرای اسکریپتها یا ذخیرهسازی کوکیها محدود باشد، نشست بهزودی منقضی میشود.
برای رفع خطای session expired، میتوانید ابتدا کوکیها و کش مرورگر را پاک کنید، سپس تنظیمات آدرس سایت و ساعت سرور را بررسی کرده و در صورت لزوم، افزونههای کش یا امنیتی را موقتا غیرفعال کنید.
چگونه از بروز خطای Your Session Has Expired پیشگیری کنیم؟
اگر برای شما هم سوال است که پیغام نشست کاربری شما پایان یافته یعنی چه کافی است در ادامه با ما همراه باشید.خطای Your session has expired معمولا به دلیل منقضی شدن نشست کاربر یا مشکلات مربوط به کوکیها بروز میکند. در اینجا راهکارهایی برای پیشگیری از این خطا آورده شده است:
افزایش مدت زمان نشست
میتوانید مدت زمان نشست را در تنظیمات وردپرس یا سرور افزایش دهید. این کار به جلوگیری از بروز خطای “Your session has ended” کمک میکند.
تنظیم صحیح تاریخ و زمان
اشتباه در تنظیم تاریخ و زمان سرور میتواند باعث منقضی یعنی چه شدن نشستها شود. بنابراین، اطمینان حاصل کنید که منطقه زمانی سرور بهدرستی تنظیم شده باشد.
پاکسازی کش و کوکیها
اگر با خطای “file has expired یعنی چی” مواجه میشوید، ممکن است مشکل از کوکیها یا کش مرورگر باشد. پاک کردن کش و کوکیها میتواند این مشکل را حل کند.
بهروزرسانی منظم وردپرس و افزونهها
با بهروزرسانی وردپرس و افزونهها میتوانید از بروز خطای “Your session has expired” جلوگیری کنید. بهروزرسانیها معمولا باگها و مشکلات امنیتی را رفع میکنند.
استفاده از افزونههای مدیریت نشست
افزونههای مدیریت نشست به شما این امکان را میدهند که مدت زمان نشست را تنظیم کنید.
جدول جلوگیری از بروز خطای Your Session Has Expired
| روش پیشگیری | توضیح |
|---|---|
| افزایش مدت زمان نشست | افزایش مدت زمان نشست در تنظیمات وردپرس یا سرور. |
| تنظیم صحیح تاریخ و زمان سرور | اطمینان از تنظیم صحیح تاریخ و منطقه زمانی در سرور. |
| پاکسازی کش و کوکیها | پاک کردن کش و کوکیهای مرورگر بهطور مرتب. |
| بهروزرسانی منظم وردپرس و افزونهها | بهروزرسانی وردپرس و افزونهها برای رفع باگها. |
| استفاده از افزونههای مدیریت نشست | استفاده از افزونههای مدیریت نشست برای تنظیمات دقیقتر. |
روش های رفع خطای your session has expired در وردپرس
همانطور که در ابتدا گفتیم، وردپرس برای مدیریت ورود و اعتبارسنجی کاربران از کوکیهایی موقتی استفاده میکند. اگر این کوکیها به هر دلیلی نادرست ذخیره شوند، منقضی شوند یا اطلاعات آنها ارسال نشود، وردپرس اجازه ادامه فعالیت را نمیدهد و کاربر را به صفحه ورود بازمیگرداند.
پس به نوعی باید ریشه ی این مشکل را در کش مرورگر، تنظیمات URL ناهماهنگ، مشکلات در فایلهای سایت، تداخل افزونهها یا تنظیمات نادرست در سرور جستجو کنیم.
بیشتر بخوانید:
۱. بررسی و هماهنگی URL سایت و وردپرس (Site URL و WordPress URL)
وردپرس از دو آدرس اصلی برای تشخیص مسیر و ساختار ورود استفاده میکند: WordPress Address (URL) و Site Address (URL).
اگر یکی از این آدرسها با دیگری تفاوت داشته باشد، مثلا یکی با www و دیگری بدون www باشد یا یکی با http و دیگری با https تنظیم شده باشد، وردپرس قادر به اعتبارسنجی کوکیها نخواهد بود.
برای رفع این مشکل باید وارد بخش تنظیمات > عمومی شوید و مطمئن شوید که هر دو آدرس دقیقا یکسان هستند.
همچنین میتوانید این مقادیر را مستقیما در فایل wp-config.php تعریف کنید:
define(‘WP_HOME’, ‘https://example.com’);
define(‘WP_SITEURL’, ‘https://example.com’);
۲. پاکسازی کش مرورگر و کوکی ها
کش مرورگر و کوکیهای ذخیره شده ممکن است حاوی اطلاعات منقضی شده یا ناهماهنگ باشند که باعث بروز این خطا میشوند. برای حل این مشکل و رفع مشکل کوکی وردپرس، باید کوکیها و کش مرورگر را پاک کنید.
در مرورگرهای جدیدتر میتوانید از گزینهی Clear Browsing Data استفاده کرده و گزینهی Cookies and other site data و Cached images and files را انتخاب و حذف کنید. سپس مرورگر را ببندید و دوباره باز کنید.
۳. غیرفعال کردن افزونه های امنیتی یا کش
افزونههایی مانند Wordfence، iThemes Security یا افزونههای کش مانند W3 Total Cache یا WP Super Cache ممکن است باعث تداخل در کوکیها یا نشستهای ورود شوند. پس بهطور موقت تمام این سبک افزونهها را غیرفعال کنید و بررسی کنید آیا مشکل برطرف میشود یا خیر.
اگر خطا رفع شد، افزونهها را یک به یک فعال کرده و تست کنید تا افزونهی مشکلدار را شناسایی کنید. اگر دسترسی به پیشخوان ندارید، میتوانید پوشهی plugins را در مسیر assets هاستتان به طور موقت تغییر نام دهید.
۴. بررسی زمان و تاریخ سیستم کاربر و سرور
اگر تاریخ و ساعت سیستم کاربر یا سرور به درستی تنظیم نشده باشد، کوکیهای نشست ممکن است با زمان نادرست ایجاد شوند و بلافاصله نامعتبر شوند.
پس بررسی کنید که تاریخ و ساعت در تنظیمات سیستمعامل کاربر و همچنین در سرور (بهویژه در هاستهای اختصاصی یا VPS) دقیق و با منطقه زمانی صحیح تنظیم شده باشند.
در وردپرس هم مطمئن شوید که منطقه زمانی سایت در تنظیمات > عمومی > منطقه زمانی درست انتخاب شده است.
۵. بررسی فایل های هسته وردپرس و بازنویسی آن ها
گاهی فایلهای هسته وردپرس آسیب میبینند یا ناقص میشوند. برای اطمینان از صحت فایلهای اصلی وردپرس، میتوانید آخرین نسخه وردپرس را از سایت رسمی دانلود کرده و فقط پوشههای wp-admin و wp-includes را با نسخه سالم جایگزین کنید.
مراقب باشید که فایلهای موجود در assets که شامل قالبها و افزونهها هستند، دستنخورده باقی بمانند.
۶. بررسی کدهای قالب (theme) و فایل functions.php
اگر اخیرا تغییری در قالب سایت یا فایل functions.php اعمال کردید، ممکن است کدی در تغییراتتان وجود داشته باشد که با نشست وردپرس تداخل ایجاد میکند.
پس موقتا قالب را به یکی از قالب های پیشفرض وردپرس (مانند Twenty Twenty-Four) تغییر دهید و تست کنید. همچنین فایل functions.php را بررسی کرده و هر کدی که به session_start() یا کوکیها مربوط میشود، موقتا غیرفعال کنید.
۷. افزایش مدت زمان نشست (Session Timeout)
اگر کاربر مدت زمان زیادی در صفحه ورود بدون فعالیت باقی بماند، نشست منقضی خواهد شد.
میتوانید با افزودن کدی در فایل functions.php مدت زمان اعتبار کوکی را افزایش دهید:
function custom_login_cookie_lifetime($expirein) {
return 3600 * 4; // ۴ ساعت
}
add_filter(‘auth_cookie_expiration’, ‘custom_login_cookie_lifetime’);
۸. بررسی افزونههای فرمساز و سشنهای اختصاصی
در برخی موارد، فرمسازهایی مانند Gravity Forms یا Contact Form 7 که از سشن اختصاصی برای ذخیره دادهها استفاده میکنند، ممکن است در ارسال فرم باعث این خطا شوند. مطمئن شوید که این افزونهها بهروز هستند و به درستی پیکربندی شدهاند. همچنین در صورت نیاز، سعی کنید از افزونههای جایگزین استفاده کنید.
اگر تمامی این روشها انجام شد و مشکل همچنان پابرجا بود، احتمال دارد مشکل از سطح سرور یا پیکربندی PHP باشد، که در این صورت باید با پشتیبانی هاست تماس بگیرید و مواردی مانند محدودیت session storage یا تنظیمات php.ini را بررسی نمایید.
رفع خطای Your session has expired با تیم حرفه ای دولوپ
اگر با خطای Your session has expired در وردپرس مواجه شدید و نمیخواهید وقت ارزشمندتان را صرف آزمون و خطای راهحلهای پیچیده کنید، وقت آن رسیده که حل این مشکل را به یک تیم حرفهای توسعه وردپرس و ارائه مشاوره وردپرس بسپارید.
تیم متخصص دولوپ با سال ها تجربه در عیب یابی فنی، بررسی دقیق نشستها، کوکی ها و ساختار امنیتی وردپرس، در کوتاهترین زمان ممکن این خطا را ریشهیابی و رفع میکند.
فرقی هم نمیکند که مشکل از ناهماهنگی آدرس سایت باشد یا اختلال در افزونهها یا حتی تنظیمات سمت سرور! چون ما با بررسی کامل ساختار وبسایت شما، پیکربندی حرفهای و اعمال بروزترین استانداردهای فنی، پایداری و امنیت سایتتان را تضمین میکنیم.
برای دریافت مشاوره خدمات با ما ارتباط بگیرید
نکات مهم در خصوص خطای Your session has expired
اشاره کردیم که خطای Your session has expired در وردپرس، از جمله خطاهایی است که اغلب کاربران (بهویژه مدیران سایت) هنگام ورود به پیشخوان یا ارسال فرم ها با آن مواجه میشوند.
این پیام بهطور مستقیم با اعتبار نشست (Session) کاربر و نحوه تعامل مرورگر با کوکیهای وردپرس مرتبط است. برای مدیریت آن، دانستن یک سری نکات مهم است.
تطابق کامل URL سایت با URL وردپرس
هرگونه تفاوت بین آدرس سایت (Site URL) و آدرس وردپرس (WordPress URL) مانند اختلاف بین www و بدون www یا http و https، میتواند باعث نامعتبر شدن کوکیهای ورود شود.
این تطابق باید هم در تنظیمات وردپرس و هم در فایل wp-config.php رعایت شود.
اهمیت کش مرورگر و کوکیهای منقضی شده
مرورگر ممکن است اطلاعات ورود یا نشست قدیمی را نگه دارد که با وضعیت فعلی سرور همخوانی ندارد. پاکسازی کش و کوکیها قبل از ورود میتواند از بروز این خطا جلوگیری کند.
تاثیر افزونههای کش و امنیتی
افزونههایی مانند WP Rocket یا Wordfence ممکن است نشستها را بهصورت نادرست کنترل یا مسدود کنند. در صورت مشاهده خطا، غیرفعالسازی موقت این افزونهها برای بررسی علت توصیه میشود.
تنظیم صحیح تاریخ و زمان سیستم و سرور
وردپرس برای بررسی اعتبار کوکیها به ساعت سیستم متکی است. اگر ساعت سیستم کاربر یا سرور بهدرستی تنظیم نشده باشد، زمان انقضای نشست به اشتباه محاسبه میشود.
بررسی فایلهای قالب و کدهای custom در functions.php
کدهای سفارشی که در فایلهای قالب قرار میگیرند، بهویژه آنهایی که مستقیما با کوکی یا سشن کار میکنند، میتوانند باعث تداخل در فرآیند احراز هویت شوند. بازبینی این کدها ضروری است.
جمع بندی نهایی رفع خطای Your session has expired
خطای Your session has expired در وردپرس، علیرغم ظاهر سادهاش، میتواند حاصل زنجیرهای از عوامل فنی باشد؛ از کوکیهای منقضی گرفته تا ناهماهنگی در آدرسهای سایت یا تداخل افزونههای امنیتی.
با بررسی گام به گام مواردی مانند پاکسازی کش، تنظیم صحیح URL، بررسی تاریخ سیستم، کنترل کدهای قالب، و بررسی ساختار نشست ها، میتوان به صورت دقیق منبع خطا را شناسایی و آن را رفع کرد.
تسلط بر جنبه های مختلف مدیریت نشست در وردپرس و شناخت وابستگی های آن به ساختار مرورگر، سرور و افزونهها، نه تنها این مشکل خاص را برطرف میکند، بلکه توان فنی مدیر سایت را در مواجهه با سایر خطاهای مشابه نیز به شکل محسوسی ارتقا میدهد.
سوالات متداول درباره رفع خطای Your Session Has Expired
خطای Your session has expired به چه معناست؟
اگر با پیام درحال حاضر شما نشست(session)فعال دارید. درصورتی که با مرورگر دیگری وارد سیستم شده اید از آن خارج شده و مجدد تلاش فرمایید. روبهرو شدید این پیام یعنی نشست (session) شما منقضی شده و باید دوباره وارد شوید.
علتهای رایج نمایش این خطا چیست؟
مواردی مانند نبود فعالیت طولانیمدت، تنظیمات محدودکننده مرورگر، کوکیهای خراب یا مشکل در زمان سیستم میتواند باعث این خطا شود.