رفع خطای your session has expired در وردپرس

رفع خطای your session has expired در وردپرس

اگر توسعه دهنده و یا وب مستر هستید، احتمالا حداقل یکبار هم که شده با خطای your session has expired در وردپرس مواجه شدید.

خطایی که یکی از خطاهای رایج در فرآیند احراز هویت و ارسال داده‌ها به حساب می‌آید و مستقیما با نحوه مدیریت نشست ها (Sessions) و کوکی‌ها در هسته وردپرس مرتبط است.

این خطا زمانی رخ می‌دهد که مرورگر یا سرور نتواند اعتبار نشست فعال کاربر را تأیید کند یا کوکی مربوط به ورود، منقضی یا نادرست تلقی شود.

اما راه حل برطرف کردن خطا و اصلا جلوگیری کردن از بروز آن کدام است؟ با ما در ادامه این مطلب از دولوپ همراه شوید تا یاد بگیریم که برای رفع این خطا باید چه کنیم!

از دید فنی، وردپرس برای حفظ وضعیت ورود کاربر از ترکیب کوکی های مرورگر و توکن‌هایی امنیتی به اسم nonce استفاده می‌کند. این ترکیب باعث میشود که کوچک‌ترین ناهماهنگی در تنظیمات URL، زمان سیستم، افزونه‌ها یا کش، باعث بروز اختلالی شود که به کاربر خطای Your session has expired را نشان میدهد.

درک عمیق از ساز و کار نشست‌ها، نقش کلیدی ای در تشخیص و رفع این خطا دارد. پس تسلط بر این مسئله برای مدیران سایت های وردپرسی از اهمیت بالایی برخوردار است. زیرا می‌تواند مستقیما روی تجربه کاربری و عملکرد بخش مدیریتی سایت تاثیرگذار باشد.

در ادامه این مطلب از دولوپ، نکات بیشتری را در مورد نحوه خطای Your session has expired در وردپرس بررسی خواهیم کرد.

خطای 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 در وردپرس

همانطور که در ابتدا گفتیم، وردپرس برای مدیریت ورود و اعتبارسنجی کاربران از کوکی‌هایی موقتی استفاده می‌کند. اگر این کوکی‌ها به هر دلیلی نادرست ذخیره شوند، منقضی شوند یا اطلاعات آن‌ها ارسال نشود، وردپرس اجازه ادامه فعالیت را نمی‌دهد و کاربر را به صفحه ورود بازمی‌گرداند.

پس به نوعی باید ریشه ی این مشکل را در کش مرورگر، تنظیمات URL ناهماهنگ، مشکلات در فایل‌های سایت، تداخل افزونه‌ها یا تنظیمات نادرست در سرور جستجو کنیم.

روش های رفع خطای your session has expired در وردپرس

۱. بررسی و هماهنگی 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 رعایت شود.

نکات مهم در خصوص خطای Your session has expired
  • اهمیت کش مرورگر و کوکی‌های منقضی شده

مرورگر ممکن است اطلاعات ورود یا نشست قدیمی را نگه دارد که با وضعیت فعلی سرور همخوانی ندارد. پاک‌سازی کش و کوکی‌ها قبل از ورود می‌تواند از بروز این خطا جلوگیری کند.

  • تاثیر افزونه‌های کش و امنیتی

افزونه‌هایی مانند WP Rocket یا Wordfence ممکن است نشست‌ها را به‌صورت نادرست کنترل یا مسدود کنند. در صورت مشاهده خطا، غیرفعال‌سازی موقت این افزونه‌ها برای بررسی علت توصیه می‌شود.

  • تنظیم صحیح تاریخ و زمان سیستم و سرور

وردپرس برای بررسی اعتبار کوکی‌ها به ساعت سیستم متکی است. اگر ساعت سیستم کاربر یا سرور به‌درستی تنظیم نشده باشد، زمان انقضای نشست به اشتباه محاسبه می‌شود.

  • بررسی فایل‌های قالب و کدهای custom در functions.php

    کدهای سفارشی که در فایل‌های قالب قرار می‌گیرند، به‌ویژه آن‌هایی که مستقیما با کوکی یا سشن کار می‌کنند، می‌توانند باعث تداخل در فرآیند احراز هویت شوند. بازبینی این کدها ضروری است.

جمع بندی نهایی رفع خطای Your session has expired

خطای Your session has expired در وردپرس، علی‌رغم ظاهر ساده‌اش، می‌تواند حاصل زنجیره‌ای از عوامل فنی باشد؛ از کوکی‌های منقضی گرفته تا ناهماهنگی در آدرس‌های سایت یا تداخل افزونه‌های امنیتی.

با بررسی گام به گام مواردی مانند پاک‌سازی کش، تنظیم صحیح URL، بررسی تاریخ سیستم، کنترل کدهای قالب، و بررسی ساختار نشست ها، می‌توان به صورت دقیق منبع خطا را شناسایی و آن را رفع کرد.

تسلط بر جنبه های مختلف مدیریت نشست در وردپرس و شناخت وابستگی های آن به ساختار مرورگر، سرور و افزونه‌ها، نه تنها این مشکل خاص را برطرف می‌کند، بلکه توان فنی مدیر سایت را در مواجهه با سایر خطاهای مشابه نیز به شکل محسوسی ارتقا می‌دهد.

سوالات متداول درباره رفع خطای Your Session Has Expired

خطای Your session has expired به چه معناست؟

این پیام یعنی مهلت اعتبار نشست (session) شما تمام شده و باید دوباره وارد حساب یا صفحه شوید.

مواردی مانند نبود فعالیت طولانی‌مدت، تنظیمات محدودکننده مرورگر، کوکی‌های خراب یا مشکل در زمان سیستم می‌تواند باعث این خطا شود.

5/5 - (1 امتیاز)
تاکنون دیدگاهی ثبت نشده است!