הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   מחיקת קובץ מהשרת באמצעות כפתור + רענון הדף + מחיקת הcache (https://hosts.co.il/forums/showthread.php?t=111048)

Tyler 13-07-18 17:12

מחיקת קובץ מהשרת באמצעות כפתור + רענון הדף + מחיקת הcache
 
היי חברים,
אני מנסה לעשות איזשהו משחקון קטן שבתחילתו הוא מחלק זוג קלפים.
זוג הקלפים בעצם מיוצג על ידי תמונה(יש עשרות תמונות של זוגות שונים), ובעצם מתבצע mt_rand בין אותן תמונות, ובסוף מוצגת תמונה אחת.
אני רוצה לתת אפשרות לשחקן ל"שינוי הקלפים".
רוצה לתת הזדמנות להחלפת התמונה של הקלפים.
התמונה נוצרת בייחוד לשם משתמש של השחקן ולכן זוג הקלפים שהוא מקבל נשאר קבוע.
חשבתי לעשות זאת באמצעות כפתור שיעשה פעולת unlink ובעצם ימחק את קובץ התמונה yosi.jpg, ואז יעשה header לindex.php, ובעצם בקוד של הindex יש כבר את יצירת התמונה עבור המשתמש אם היא לא קיימת במערכת. (בודק לפי האיידי).

אז זה אמור להיות:
יוסי מתחבר
מקבל זוג קלפים באמצעות תמונה שנוצרת במיוחד בשבילו
Yosi.jpg
לוחץ על "להחליף קלפים"
מתבצעת מחיקה לקובץ yosi.jpg
מתבצע redirect מחדש לindex.php
יוסי מקבל רנדומלית זוג קלפים חדש באמצעות yosi.jpg חדש
----

את זה הצלחתי לעשות.
מה הבעיה? שכשאני לוחץ על "להחליף קלפים", הקובץ תמונה הראשון אכן נמחק ומוחלף בידי תמונה אחרת, אך בדפדפן עדיין מוצגת התמונה הראשונה.
והרי אני לא אגיד למשתמשים "טוב תמחקו cache".
ניסיתי להגדיר בheader בין הmeta tags את האפשרןץ של no cache וexpires=0, ז"א שלא תתבצע שמירת cache באתר שלי. אבל זה לא פתר את הבעיה.

מי שלא הבין, התמונה מהשרת אכן נמחקת, המשתמש אכן מועבר מחדש לindex.php ואכן נוצרת בשבילי תמונה חדשה, אבל בדפדפן מוצגת עדיין התמונה הישנה לא משנה כמה ריפרש אני אלחץ.

אולי דרך החשיבה שלי כאן לא נכונה בכלל וצריך ללכת לכיוון אחר ולא לכיוון הunlink והריפרש.

אשמח לעזרה,
תודה.

MCUP 20-07-18 13:29

מדובר בהגדרות של השרת עליו מורץ האתר.
יש ביכולתך לבטל פשוט את הcache ע"י כתיבת חוקים בקובץ .htaccess
תוכך להוסיף אותו לתיקיית השורש שם מוקם האתר
ולהכניס לתוכו את הקוד הבא:
ציטוט:

# DISABLE CACHING
<IfModule mod_headers.c>
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0
</IfModule>

BarSpecial 24-08-18 20:59

"טריק" נוסף שתוכל לעשות הוא טעינת התמונה עם query string שיעקוף את הגדרות ה-cache בשרת ובדפדפן.
למשל במקום לטעון את yossi.jpg, תטען את yossi.jpg?v=1, בטעינה הבאה תטען את yossi.jpg?v=2 וכו'.


כל הזמנים הם GMT +2. הזמן כעת הוא 15:08.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ