Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ukrywanie zmiennych w pasku adresu.
Forum PHP.pl > Forum > PHP
lord_t
Elo,
próbuję ukryć zmienne w adresie, tzn żeby zamiast
domena.pl/index.php?a=1&b=domek widoczne było:
domena.pl/

Mam tylko jeden plik: index.php (on wczytuje konkretne podstrony przez include).
Zrobiłem coś takiego:
1)Na stronie (index.php) aktywuję link, którego href to np. http://domena.pl/index.php?a=1&b=domek .
2)Wykrywam, że jest coś w _GET, jeśli tak, to przepisuję _GET do _SESSION, po czym robię przekierowanie znowu do index.php.
3)W index.php odczytuję sobie np. ze _SESSION['b']=domek więc includuję domek.php.

To działa, ale mam obiekcje co do przycisku wstecz. W FF(sprawdzalem w 2) i IE (sprawdzalem w 6) po kliknięciu na link wchodzi odpowiednia strona, ale nie działa przycisk wstecz (tzn. tak jakby nie weszła inna strona).
W Operze można się cofnać klikając wstecz.

Pytanie: dlaczego w FF i IE nie działa wstecz?
scanner
Ja mam ogólnie obiekcje co do Twojego sposobu działania. Każde kliknięcie w link spowoduje wywołanie dwu requestów do serwera - to już z samego założenia jest nie do przyjęcia.
Pytanie czemu aż tak bardzo chcesz komplikować sobie życie?
Kocurro
Zamień wywołania GET na wywołania POST używając formularzy do nawigacji.

pozdr.
lord_t
Scanner, po to żeby w pasku adresu cały czas była pokazywana tylko domena główna. Chętnie dowiem się jak to można zrobić prościej/lepiej.

Kocurro, zrobiłem get, żeby nie robić formularzy.
scanner
Na szybko - maskowanie adresu z użyciem IFRAME. Po szczegóły zapraszam do wyszukiwarki.
lord_t
Właśnie iframe nie chcę ruszać.
luki100011
Tak nie ukryjesz bo użytkownik musi kliknąć link z zmiennymi które chcesz ukryć w sesji więc i tak on je może podejrzeć przed kliknięciem.

Kiedyś maskowano to za pomocą ramki. Dajesz ją na całą stronę a w niej wyświetlasz treści, użytkownik cały czas widzi w pasku adresu www.domena.pl. Oczywiście nie niknie problem z pierwszego akapitu, ale to najłatwiejszy sposób.

Kiedyś pamiętam tak PRV.PL umożliwiało maskowanie adresu stron.

Jak to nie jest jasne zobacz mój środkowy link w podpisie. Zawsze widać tylko nazwę domeny a popatrz na co klikasz.
lord_t
luki100011, ja wiem, że będzie widać ten link np. w pasku stanu, ale to nie istotne. Chcę osiągnąć to o czym pisałem dla paska adresu tylko. Bez iframe'a i ajaxa.
qrees
Cytat(lord_t @ 9.07.2008, 14:37:44 ) *
luki100011, ja wiem, że będzie widać ten link np. w pasku stanu, ale to nie istotne. Chcę osiągnąć to o czym pisałem dla paska adresu tylko. Bez iframe'a i ajaxa.

bez iframe'a, ani bez ajaxa się nie da. Parametry w GET są z założenia umieszczane w adresie strony. Dałoby się zrobić żeby adres nie wyświetlał się na pasku stanu, ale na pasek adresu nic nie poradzisz.
lord_t
No jak nie jak sobie poradziłem O_o. Tylko ta nieścisłość przeglądarek: wstecz jest albo nie.
qrees
Cytat(lord_t @ 9.07.2008, 17:52:08 ) *
No jak nie jak sobie poradziłem O_o. Tylko ta nieścisłość przeglądarek: wstecz jest albo nie.

[EDIT]
Przeczytałem pierwszy post i się wyjaśniło winksmiley.jpg
Kocurro
O kurcze czyżbym dał prawidłowe rozwiązanie a inni mnie olali - o jejku ... błądzicie a najprostszego nie zrobicie winksmiley.jpg

pozdr.
klocu
Poprawne tak, czy takie 100% użyteczne, żeby każdą pierdołę wysyłać POST'em? To już jest kwestia w/g własnego uznania każdego kodera.
Choćby nawigowanie po podstronach robione POST'em?

A nawet jeśli bardzo chcesz coś ukryć, to jeśli ktoś będzie zdeterminowany żeby odczytać dane które ślesz to to zrobi.
Więc jaki cel ma takie pseudo maskowanie?
oscar17
to może spróbuj z mod_rewrite - możesz 'ukryć' to co wysyłasz GETem przypisując inny adres i przy okazji wygląda ładniej... Chyba że zależy ci bardzo aby wszystkie podstrony miały jednakowy adres...
batman
Nie ma innego sposobu niź iframe lub ajax.

1. Zmienne get - sam wiesz jaki jest problem.
2. Zmienne post - przycisk wstecz spowoduje pojawienie się komunikatu o ponownym wysłaniu danych.
3. mod_rewrite tego nie zrobi (gdzieś obiło mi się o uszy, że można ukrywać, ale szukałem i nie znalazłem)
Kocurro
Jeśli chodzi o POST'a jak mądrze zrobisz to nie otrzymasz takiego komunikatu smile.gif

pozdr.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.