وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

خطای فعال نبودن کوکی هنگام ورود وردپرس؛ راهنمای رفع مشکل از مرورگر تا هاست

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

انتشار:
توسط تیم فنی نت‌آرام
۱۱ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله خطای فعال نبودن کوکی هنگام ورود وردپرس؛ راهنمای رفع مشکل از مرورگر تا هاست در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
رمز را درست وارد می‌کنید، اما وردپرس می‌گوید کوکی‌ها مسدود یا پشتیبانی نمی‌شوند؟ کوکی یک یادداشت کوچک است که سایت در مرورگر نگه می‌دارد. وردپرس هنگام باز شدن صفحه ورود، یک کوکی آزمایشی به نام wordpress_test_cookie می‌فرستد. اگر مرورگر آن را در درخواست ورود برنگرداند، ممکن است همین خطا را ببینید. این پیام همیشه به معنی خراب بودن مرورگر نیست؛ گاهی آدرس سایت، کش یا افزونه مسئول آن است.
در این راهنما از آزمایش‌های ساده و کم‌خطر شروع می‌کنیم و فقط اگر لازم شد به تنظیمات هاست می‌رسیم. مثال example.com را با دامنه واقعی خودتان جایگزین کنید. اگر سایت فروشگاهی است، آزمایش‌های مربوط به افزونه و کش را ابتدا روی نسخه آزمایشی انجام دهید و پیش از تغییر فایل‌ها از فایل‌ها و پایگاه داده نسخه پشتیبان داشته باشید.

اول مشخص کنید مشکل برای چه کسی رخ می‌دهد

۱. صفحه ورود اصلی سایت را باز کنید؛ معمولاً نشانی آن https://example.com/wp-login.php است. اگر عمداً نشانی ورود را عوض کرده‌اید، از نشانی اختصاصی خودتان استفاده کنید.
۲. همان نشانی را در پنجره خصوصی یک مرورگر دیگر و سپس، در صورت امکان، روی گوشی امتحان کنید. در صفحه ورود، نام کاربری و رمز درست را وارد کنید؛ لازم نیست چندین بار پشت سر هم تلاش کنید، چون افزونه امنیتی ممکن است تلاش‌های مکرر را مسدود کند.
۳. نتیجه را با این جدول مقایسه کنید:
| نتیجه آزمایش | قدم بعدی | | --- | --- | | فقط در یک مرورگر مشکل دارید | تنظیم کوکی و داده همان سایت را در مرورگر اصلاح کنید. | | همه مرورگرها مشکل دارند، به‌خصوص بعد از انتقال یا تغییر دامنه | آدرس وردپرس، HTTPS و تنظیم کوکی دامنه را بررسی کنید. | | صفحه ورود استاندارد کار می‌کند، اما فرم ورود یک افزونه خطا دارد | تنظیمات و به‌روزرسانی همان افزونه را جداگانه بررسی کنید. | | پیام دیگری مثل خطای اتصال پایگاه داده یا خطای ۵۰۰ می‌بینید | ابتدا همان خطا را برطرف کنید؛ این راهنما برای خطای کوکی است. |

راه‌حل اول: داده‌های همین سایت را در مرورگر پاک کنید

اگر پنجره خصوصی کار می‌کند، احتمال دارد کوکی قدیمی پس از انتقال سایت یا تغییر آدرس باقی مانده باشد. در Chrome یا Edge، سایت را باز کنید و روی نماد تنظیمات کنار نشانی سایت بزنید. بخش اطلاعات یا تنظیمات سایت را باز کنید و گزینه مربوط به کوکی‌ها و داده‌های سایت را پیدا کنید. داده‌های مربوط به همین دامنه را پاک کنید، نه اطلاعات همه سایت‌ها را. نام دقیق منو با نسخه مرورگر فرق می‌کند.
در Firefox هم از تنظیمات حریم خصوصی، بخش Cookies and Site Data و مدیریت داده‌ها، نام دامنه خود را جست‌وجو و داده همان سایت را حذف کنید. پاک کردن این داده‌ها شما را از حساب‌های همان سایت خارج می‌کند و ممکن است سبد خرید ذخیره‌شده در همان مرورگر خالی شود. برای جلوگیری از از دست رفتن سبد، آزمایش را با حساب و سبد شخصی خودتان انجام دهید.
حالا همه پنجره‌های مربوط به سایت را ببندید، صفحه ورود را دوباره باز کنید و یک بار وارد شوید. اگر مشکل فقط برای شما حل شد، لازم نیست تنظیمات هاست را تغییر دهید. اگر مرورگر برای همین دامنه کوکی را صراحتاً مسدود کرده، آن محدودیت را بردارید. لازم نیست برای همه سایت‌های اینترنت کوکی‌های شخص ثالث را فعال کنید؛ کوکی ورود معمولاً کوکی خود سایت است.

اگر مشکل در چند مرورگر است، ببینید کوکی واقعاً برمی‌گردد یا نه

این آزمایش چیزی را روی سایت تغییر نمی‌دهد. در Chrome یا Edge صفحه ورود را باز کنید و کلید F12 را بزنید. به تب Network بروید، گزینه حفظ گزارش (Preserve log) را روشن کنید و صفحه ورود را دوباره بارگذاری کنید. درخواست صفحه ورود، معمولاً wp-login.php، را انتخاب کنید. در بخش پاسخ، دنبال سربرگ Set-Cookie و نام wordpress_test_cookie بگردید. ممکن است ابزار مرورگر دلیل رد شدن کوکی، مانند ناهمخوانی دامنه یا نبود ارتباط امن، را کنار آن نشان دهد.
اگر کوکی ارسال شده اما مرورگر آن را رد می‌کند، علت نمایش‌داده‌شده را یادداشت کنید و تنظیم دامنه یا HTTPS را در بخش بعد اصلاح کنید. اگر اصلاً Set-Cookie نمی‌بینید، ممکن است پاسخ از کش یا یک لایه واسط آمده باشد؛ ابتدا کش و افزونه‌ها را طبق مراحل پایین جدا کنید. نبودن یک سربرگ در یک درخواست به‌تنهایی دلیل قطعی نیست: مطمئن شوید درخواست درست و آخرین پاسخ پس از تغییر مسیر را انتخاب کرده‌اید.
برای روشن‌تر شدن نتیجه، تصور کنید در نوار آدرس https://shop.example.com/wp-login.php را باز کرده‌اید و مرورگر می‌گوید دامنه کوکی با دامنه فعلی سازگار نیست. این پیام را به معنی «رمز اشتباه است» تعبیر نکنید: ابتدا ببینید درخواست نهایی واقعاً به کدام نام رفته و آیا تنظیم قدیمی COOKIE_DOMAIN برای نام دیگری در پیکربندی باقی مانده است. در مقابل، اگر مرورگر کوکی را پذیرفته ولی پس از ورود همچنان به صفحه ورود برمی‌گردید، بررسی کوکی آزمایشی به‌تنهایی کافی نیست؛ تنظیم آدرس سایت، کوکی نشست ورود و تغییر مسیرها را هم بررسی کنید.
اگر کار با Network برایتان سخت است، نتیجه آزمایش مرورگر دوم و پنجره خصوصی را نگه دارید و مراحل آدرس، کش و افزونه را به‌ترتیب انجام دهید. پس از هر تغییر فقط یک بار همان آزمایش را تکرار کنید؛ این‌طور می‌فهمید کدام تغییر مؤثر بوده است.
مقادیر کوکی، رمز، تصویر کامل Network یا سربرگ‌های احراز هویت را برای دیگران نفرستید. نام کوکی، نام دامنه و متن دلیل مسدود شدن معمولاً برای شروع عیب‌یابی کافی‌اند.

آدرس سایت و HTTPS را یکسان کنید

اگر ورود بعد از تغییر دامنه، فعال‌کردن SSL یا جابه‌جایی سایت خراب شده، احتمال دارد مرورگر روی یک آدرس باشد و وردپرس کوکی را برای آدرس دیگری بفرستد. نوار نشانی را ببینید: آیا سایت با www باز می‌شود اما ورود به نسخه بدون www می‌رود؟ آیا جایی از مسیر از https به http برمی‌گردد؟ یکی از نسخه‌ها را که برای سایت واقعاً تنظیم شده، به عنوان نشانی اصلی انتخاب کنید؛ قبل از هر تغییری مطمئن شوید همان نام با گواهی معتبر و بدون هشدار مرورگر باز می‌شود.
اگر به پیشخوان دسترسی دارید، به تنظیمات ← عمومی بروید و دو مقدار «نشانی وردپرس» و «نشانی سایت» را ببینید. در نصب معمولی که وردپرس در ریشه سایت قرار دارد، این دو معمولاً همان نشانی اصلی HTTPS هستند. در نصب داخل زیرپوشه یا نصب‌های خاص ممکن است عمداً متفاوت باشند؛ بدون شناخت ساختار نصب، آن‌ها را یکسان نکنید. پس از اصلاح مقدار اشتباه، داده‌های همان سایت را در مرورگر پاک کنید و ورود را دوباره بیازمایید.
اگر به پیشخوان دسترسی ندارید، در cPanel به Files ← File Manager بروید، پوشه سایت را باز کنید و از فایل wp-config.php یک کپی پشتیبان بگیرید. فایل را ویرایش کنید و دنبال WP_HOME، WP_SITEURL و COOKIE_DOMAIN بگردید. این تنظیم‌ها ممکن است از قبل در فایل وجود داشته باشند. مقدار دامنه اشتباه یا دامنه قبلی در COOKIE_DOMAIN می‌تواند جلوی پذیرش کوکی را بگیرد؛ اگر این خط یک تنظیم قدیمی و سفارشی است و دلیل استفاده از آن را می‌دانید، نسخه آن را ثبت کنید و با کمک مدیر سایت آن را اصلاح یا موقتاً غیرفعال کنید. تنظیم‌های تکراری با همان نام اضافه نکنید. برای نصب چندسایتی یا زیرپوشه‌ای، تنظیم کوکی ممکن است عمدی باشد و باید مطابق همان ساختار بررسی شود.
اگر WP_HOME یا WP_SITEURL در این فایل تعریف شده باشد، صرف تغییر گزینه‌های پایگاه داده ممکن است نتیجه دلخواه ندهد. در چنین حالتی، اول مقدار تعریف‌شده و دلیل وجود آن را پیدا کنید. اگر بعد از تغییر دسترسی بدتر شد، همان نسخه پشتیبان فایل را برگردانید. فایل پیکربندی حاوی رمز پایگاه داده است؛ محتوای آن را در پیام عمومی یا تصویر منتشر نکنید.
برای نمونه، فرض کنید سایت قبلاً با www.example.com کار می‌کرده و اکنون نشانی اصلی بدون www است. صرف اینکه نام دامنه در تنظیمات وردپرس عوض شده، ثابت نمی‌کند هر خط سفارشی قدیمی هم تغییر کرده باشد. از فایل پشتیبان بگیرید، نام دامنه ثبت‌شده در تنظیم سفارشی کوکی را با آدرس نهایی مرورگر مقایسه کنید و تنها تنظیمی را که علت آن را می‌شناسید اصلاح کنید. سپس یک پنجره خصوصی تازه باز کنید. اگر ورود در آن پنجره درست شد، بار دیگر در مرورگر عادی با پاک‌کردن فقط داده‌های همین سایت امتحان کنید. اگر نسخه قدیمی دامنه همچنان در نوار آدرس ظاهر می‌شود، مسیر تغییر نشانی در وردپرس، وب‌سرور و CDN را جداگانه بررسی کنید؛ چند تغییر هم‌زمان، تشخیص مقصر را دشوار می‌کند.
اگر مشکل با گواهی HTTPS همراه است، اول خود نشانی اصلی را در یک مرورگر باز کنید و مطمئن شوید هشدار گواهی وجود ندارد. با خاموش‌کردن بررسی گواهی یا اجبار ورود ناامن روی HTTP، خطای کوکی را دور نزنید. در محیطی که HTTPS در پراکسی یا CDN پایان می‌یابد، تشخیص نادرست HTTPS در پشت پراکسی نیز ممکن است سبب اختلاف رفتار شود؛ تنظیم پراکسی را تنها با شناخت زنجیره واقعی و بر اساس راهنمای ارائه‌دهنده اصلاح کنید.

کش را از ورود جدا کنید

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

تداخل افزونه را بدون از دست دادن تنظیمات پیدا کنید

اگر مرورگر و آدرس درست هستند، افزونه امنیتی، ورود یا کش ممکن است پاسخ ورود را تغییر دهد. در محیط آزمایشی، ابتدا افزونه‌های مرتبط با ورود و کش را یکی‌یکی غیرفعال و بعد از هر تغییر همان آزمایش ورود را تکرار کنید. هر بار نتیجه را یادداشت کنید. وقتی خطا با غیرفعال‌شدن یک افزونه رفع شد، همان افزونه را به‌روز کنید، تنظیمات ورود و کش آن را بخوانید و دوباره با آن آزمایش کنید؛ فقط فعال یا غیرفعال‌کردن تصادفی همه افزونه‌ها علت دقیق را نشان نمی‌دهد.
اگر به پیشخوان دسترسی ندارید و مدیر سایت هستید، راه اضطراری در File Manager این است که پس از داشتن نسخه پشتیبان، پوشه افزونه مشکوک را در wp-content/plugins موقتاً با یک نام مشخص مثل example-plugin.disabled تغییر نام دهید. این کار معمولاً باعث غیرفعال‌شدن آن افزونه می‌شود؛ فایل‌ها و تنظیمات را عمداً حذف نمی‌کند. سپس ورود را آزمایش کنید و نام پوشه را به حالت اول برگردانید. ممکن است لازم باشد افزونه را دوباره از پیشخوان فعال کنید. غیرفعال‌کردن افزونه امنیتی یا فروشگاهی می‌تواند بر امنیت یا خرید مشتری اثر بگذارد؛ این آزمایش را در محیط آزمایشی یا زمان کم‌ترافیک و فقط برای افزونه‌ای که می‌شناسید انجام دهید. پوشه اصلی plugins را بدون برنامه تغییر ندهید، چون همه افزونه‌ها را تحت تأثیر قرار می‌دهد.
اگر فقط یک فرم ورود اختصاصی افزونه خطا می‌دهد اما ورود استاندارد وردپرس سالم است، مسیر بررسی را روی همان افزونه نگه دارید: نسخه آن، تنظیمات فرم، کش و سازگاری با قالب را بررسی کنید. اگر بعد از این مراحل مشکل باقی بود، زمان دقیق آزمایش، نام افزونه، نسخه‌ها و دلیل مسدودشدن کوکی را بدون رمز یا مقدار کوکی برای پشتیبانی افزونه بفرستید.

چطور مطمئن شوم مشکل حل شده است؟

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

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام