W jaki sposób za pomocą kodu PHP usunąć u użytkownika skryptu wszystkie pliki cookie inne dane witryn, obrazy w pakięci podręcznej itp. ? Dziękuję za pomoc
Za pomocą PHP tego nie zrobisz. Możesz ewentualnie poubijac sesje, które ludzie mają aktywne na Twoim serwerze.
Ale PHP działa na serwerze, więc nie masz dostępu z jego poziomu do danych trzymanych lokalnie. Tutaj można skorzystać z JS, ale nie wiem, na ile będziesz w stanie usunąć wszystko, co jest trzymane w cache - raczej to się uda tylko w kontekście tych cookies, które sam osadziłeś. A co do czyszczenia pamięci podręcznej, obrazków itp - nie wiem, czy w ogóle jest to możliwe do osiągnięcia.
edit
Raczej temat jest nie do ogarnięcia, a przynajmniej nie w takim zakresie, w jakim Ty byś chciał - https://stackoverflow.com/questions/8155064/how-to-programmatically-empty-browser-cache
No tak, a cookie jak wykasować ? Wiem, że to wygasa po kilku minutach samodzielnie, a gdyby to przyśpieszyć, to wygasanie sesji ? Tylko jak to zrobić ?
Komputer i tak pamięta to co jest w zmiennej sesji, nawet po jej unicestwieniu.
media napisał(a):
No tak, a cookie jak wykasować ? Wiem, że to wygasa po kilku minutach samodzielnie, a gdyby to przyśpieszyć, to wygasanie sesji ? Tylko jak to zrobić ?
Komputer i tak pamięta to co jest w zmiennej sesji, nawet po jej unicestwieniu.
Na bank problem X/Y.
Napisz, co tak na prawdę próbujesz zrobić?
chcę unicestwić trwale zmienną sesji, aby nic poniej nie zostało........
media napisał(a):
chcę unicestwić trwale zmienną sesji, aby nic poniej nie zostało........
Sesja działa tak, że wysyłasz komuś token, i potem ten ktoś odsyła Ci ten token z powrotem, tak żeby było wiadomo kto to jest.
Jeśli chcesz zniszczyć sesję, to po prostu przestajesz odpowiadać na ten token, innymi słowy niszczysz sesje. Tego tokena nie jesteś w stanie już nikomu "zabrać", ale to i tak nie ma znczenia, bo on już w tej chwili jest bez wartościowy - jeśli usunąłeś sesję (np wołając session_destroy()
), to ten token i tak już do niczego się nie przyda, i nie da się z niego nic odczytać.
Ale produkty pokazują się jeszcze klika minut nawet po użyciu
<?php
unset ($_SESSION["shopping_cart"]);
unset ($_SESSION["tab"]);
session_destroy();
$_SESSION = array();
?>
Nic to nie daje. Dopiero po kilku minutach zaczynają znikać obrazki z produktami. Podejrzewam, że są w pamięci, albo w Cookie, dlatego pytam o technikę czyszczenia programem.
obrazki z produktami. Podejrzewam, że są w pamięci, albo w Cookie
Nie bierz tego zbyt osobiście, nie jest to żaden hejt czy inna forma dręczenia, tylko porada z samego środka dobrego serca.
Jeśli uważasz, że masz jakieś obrazki zapisane w cookies, to chyba lepiej będzie, jak sobie dasz spokój. Bo wygląda, że nie masz totalnie żadnego pojęcia o tym, z czym walczysz. Zresztą kod, który wrzuciłeś też nie jest zbyt sensowny - mam wrażenie, że chaotycznie starasz się usunąć, co przychodzi ci do głowy, nie do końca rozumiejąc, jak działa mechanizm sesji w PHP
No to cache przechowuje te obrazki. Gdzieś jest ich kopia, pomimo usunięcia sesji one nadal utrzymują się przez kilka minut,
media napisał(a):
No to cache przechowuje te obrazki. Gdzieś jest ich kopia, pomimo usunięcia sesji one nadal utrzymują się przez kilka minut,
Przeglądarka ma swój cache. Możesz tym sterować nagłówkami Cache-Control
.
Wpisałem w skrypcie te meta - tagi nic się nie zmnienia. Nie reaguje, wszystko po staremu.
Wpisałem to:
<?php
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
i nie kasuje. Trzeba tu coś ustawiać ?
Dałem experience na 2024 rok i dalej nie zaskoczyło. Nie rozumiem tego?
Po pierwsze to jakie experience?
Po drugie to takie ustawienia działają przy pierwszym ściągnięciu, potem przeglądarka sobie pamięta że plik wygasa np za rok i przez rok o niego w ogóle nie pyta więc skąd ma wiedzieć że coś sobie w tej kwestii zmieniłeś. Jak już się pobrało to musisz teraz ręcznie to usunąć.
No i przeglądarki i proxy różnie respektują te nagłówki (zwłaszcza w przeszłości) dlatego żeby się z tym nie bawić najprościej po prostu zmienić nazwę pliku, np dodać na końcu nazwy pliku jego hash, wtedy przeglądarka nie ma wyjścia i musi ściągnąć plik ponownie przy każdej zmianie.
Czyli mam to zapisać ten plik jako pierwszy#.php
o poniższej treści ?
<?php
// Date in the past
header("Expires: Mon, 26 Jul 2024 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
ugh *masuje skronie*
Nie...
- 26 Jul 2024 to nie jest "Date in the past", ten plik wygaśnie dopiero w przyszłym roku.
- Rozwiązanie z dodaniem hasha na końcu nazwy pliku jest ZAMIAST rozwiązania z wysyłaniem nagłówka
- Nie chodziło o znak hasha
#
tylko o wyliczony hash pliku np sha1 czyli coś w stylupierwszy-ee51a3034ca05aea7e17771f2ba8dfb6f15b98fc.php
, ale równie dobrze możesz tam po prostu dodać wersję pliku nppierwszy-v1.php
,pierwszy-v2.php
lub datę ostatniej zmiany. - Jak już dodajesz nagłówki to masz to zrobić w każdym pliku który ma nie być cache'owany, co to jest
pierwszy.php
? Chyba że tenpierwszy.php
includujesz w każdym innym pliku
Nie chce wyzerować cache nadal pamięta wszystkie produkty dodane na stronę. Czy ktoś ma jakiś pomysł. Generalnie można spróbować z tymi nagłówkami, tylko nie wiem jak je ustawić?
a po ctrl+f5 nadal są te produkty? Niemal na pewno nie masz problemów z cachem. Daj linka do strony, opisz o co chodzi
Ale to musi usuwać fragment pogramu w php lub javascript, przecież osoba oglądająca nie będzie znała skrótów klawiszowych
pytam się czy po ctrl+f5 nadal jest problem. Jeśli jest to nie jest to problem z cachem przeglądarki i te nagłówki nie pomogą
wciskanie ctrl + F5 powoduje jedynie miganie strony, nie kasuje zdjęć w jej pamięci
wejdź w konsole developera F12 i na zakładce Aplikacja sprawdź Cookies i Local Storage / Session Storage. Sprawdź co musisz usunąć żeby zdjęcia zniknęły
W konsolę developera ? Co to takiego ? Jak klikam F12 to pokazujemi się tryb samolotowy na laptopie ?
To pewnie musisz nacisnąć Fn+F12, niektóre laptopy mają to odwrócone
Nie mam Fn gdzie to jest ?
media napisał(a):
Nie mam Fn gdzie to jest ?
Możesz otworzyć narzędzia developerskie prawym klawiszem, i wybierając "Zbadaj"
gdzie jest zakładka aplikacja?
media napisał(a):
gdzie jest zakładka aplikacja?
Excuse me captain, maybe it's silly, but can You fly ?
Jakieś niechciane obrazki PODOBNO widać w przeglądarce, a nikt nie mówi o HTML-u który im każe sie ukazać ?
a co za różnica jak wygląda html, napisał że niszczy sesję a zawartość koszyka "shopping_cart" i "obrazki produktów" znikają dopiero po kilkunastu minutach. Zresztą przy pytaniach o poziomie skomplikowania "gdzie jest klawisz na klawiaturze" raczej się nie da mu pomóc
wejdź w konsole developera F12 i na zakładce Aplikacja sprawdź Cookies i Local Storage / Session Storage. Sprawdź co musisz usunąć żeby zdjęcia zniknęły