![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 18 Dołączył: 5.02.2016 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Napisałem taki kodzik (index.php)
Teraz problem jest tego typu. Wszystko działa poprawnie, dopóki nie wejdziemy na stronę np. strona.pl / koszyk (regułka mod_rewrite i tak przekierowuje na index.php) W tym przypadku skrypt sprawdza pierwszy warunek i ustawia ciastko naszego "koszyka", ale uwaga, tylko na podstronie /koszyk/ I jest problem, bo tworzą się trzy ciastka. Koszyk, użytkownik i koszyk w /koszyk/ Jak wejdę w /zamowienie/ to adekwatnie, tworzy nam ciastko koszyka (pierwszy warunek) na ścieżkę /zamowienie/ zamiast nadawać ciastko na całą stronę. Jak temu zaradzić, jak to zabezpieczeć żeby te ciastka były ZAWSZE na całą stronę, a nie na dane podfoldery, no i żeby się "nadpisywały" będąc na podstronie, a nie tworzyły nowe? Kod w funkcji: Ten post edytował Niree 27.06.2017, 18:24:11 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przejrzyj dokumentację funkcji setcookie, dokładnie parametr path.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 18 Dołączył: 5.02.2016 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
Przejrzyj dokumentację funkcji setcookie, dokładnie parametr path. Ale gdy ustawiłem parametr 'path' na '/' to tworzyło mi cały czas nowe ciasteczka. Zamiast sprawdzić warunek 1 i 2 to od razu robiło 3. Za każdym razem. Wejście w /koszyk/ to już w ogóle, kolejne 2 ciastka mimo istnienia tych ciastek. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż więcej kodu - jak tworzysz ciastka.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 18 Dołączył: 5.02.2016 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
Generalnie dostałem dostęp do adresu:
dev.hosting.pl/niree/ Funkcja:
Problem w tym, że jak ustawię, tak jak mówiłeś, path na '/', to gdy wejdę na stronę to za każdym razem tworzy mi nowy koszyk. Tak jakby skrypt nie zczytywał cookies, może zamiast '/' powinien być folder do którego mam FTP? czyli '/niree/'? No ale tak czy siak stworzy ciastko w /niree/koszyk/, w konsekwencji będę miał dwa ciastka ze strony głównej i jedno (o tej samej wartości i nazwie) na path /koszyk/ - tak jest teraz. Nie mówię, że to w czymś przeszkadza, ale po co dwoić i troić ciastka. Niech będą dwa na całą stronę, a nie dwa takie same w danej podstronie. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ustawiasz ciastko, a operujesz na wyniku z bazy danych.
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 18 Dołączył: 5.02.2016 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem, czy zrozumiałeś kod.
Warunek sprawdza, czy ciastko istnieje, jeśli istnieje to sprawdza, który koszyk jest z nim połączony, jeśli żaden koszyk nie jest połączony z tym ciastkiem, to tworzy i nowego usera i nowy koszyk (analogicznie w drugim warunku) Co ma tutaj operacja na bazie, skoro to jest funkcja i tylko sprawdza, czy wpis istnieje? Problem jest z samym nadaniem ciastka na podstronach. Po prostu tworzy zbędne ciastka. Wchodzę na index.php - jest okej, są maksymalnie dwa ciastka. Wchodzę na /koszyk/ - fakt, spełnia się warunek i nadaje nam ciastko koszyka, ale DODAJE NOWE ciastko, zamiast nadpisywać stare. W dodatku nie dość nie że nadpisuje, to jeszcze ustawia ścieżkę na /koszyk/. Czyli na /koszyk/ mam 3 ciastka: 1 - user ze strony głównej, 2 - koszyk ze strony głównej, 3 - koszyk ze ścieżką /koszyk/ Widocznie setcookie na /koszyk/ nadaje ścieżkę zgodnie z obecnym katalogiem. Popróbuję z tym path, może przez zmęczenie mi już mózg świruje. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 23:57 |