![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 2.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
napisałem sobie skrypt rozpoznający wybrany język i zapisujący go do ciasteczek. Wszystko działa, ale mam wątpliwość czy można pewne sprawy rozwiązać prościej. Na stronie mam pełno odnośników postaci: http://strona.pl/index.php?zm1=ble&zm2=ole&zm3=jupi a aktualny adres pobieram tak: $aktualny_adres= 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING']; //może jest funkcja zwracająca cały adres, jaka? i wstawiam jako odnośnik: echo '<a class="polski" href="' . $aktualny_adres . '&lang=pl"></a>'; I niby jeśli ktoś będzie stale zmieniać adres, nie klikając w jakiś odnośnik do podstrony. to zbiera się w adresie: &lang=pl&lang=pl&lang=pl&lang=en&lang=pl Mogę napisać ifa, który to wycina z adresu i fajnie. Ale czy jest lepszy sposób? Czy da się jakoś przekazywać wartości zmiennych (nadanych w czasie kliknięcia) aby nie było ich w adresie? Albo czy da się zrobić coś takiego: 1 jeśli kliknięcie w określony obszar (np odnośnik), to 2 wykonaj zbiór instrukcji, po czym 3 przejdź do nowej lokalizacji. Jeśli tak to w jaki sposób, jakieś wskazówki? I ostatnie pytanie, czy jeśli mam ifa postac: if( $a==1 || $a==3 || $a==11 || $a==5 ) { ... } to można w jakiś sposób, użyć tablicy? if( a= array(1, 3, 11, 5) ), jak to zrobić? Pozdrawiam i proszę o odpowiedzi i wskazówki. Ten post edytował statek 9.06.2009, 20:30:06 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
np w sesje możesz dać język.
session_start" title="Zobacz w manualu PHP" target="_manual na pocztątku pliku i potem $_SESSION['lang']='pl'; Ten post edytował Spawnm 9.06.2009, 14:41:12 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
in_array" title="Zobacz w manualu PHP" target="_manual
zrób sobie print_r($_SERVER); a sam się dowiesz. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 2.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedzi!
Spawnm tylko ja nie pytałem jak zapisać wartość do sesji albo ciasteczka. Chodzi o to jak wykonać jakąkolwiek instrukcje (w tym przypisanie) jednocześnie z kliknięciem użytkownika w odnośnik. Bo użytkownicy mogą zmienić język i miło by było gdyby dało się uniknąć dopisywania: 〈=pl do adresu fifi209, to in_array jest super! Szkoda, że nie można wpisywać w ifa tablic tak jak w: str_replace(array("\r\n", "\r", "\n"), '', $string). Znalazłem: REQUEST_URI - zawiera adres bez nazwy domeny. Czyli wystarczy dodać go do HTTP_HOST i mam aktualny adres, zamiast składać 3 stringi. O to chodziło? Czy może jest coś jeszcze? Albo czy może się zdarzyć, że REQUEST_URI będzie niedostępne a PHP_SELF i QUERY_STRING będą dostępne? Albo na odwrót? Ewentualnie HTTP_REFERER nadałoby się do aktualnego adresu przy zmianie języka, bo poprzedni i aktualny adres różnią się tylko 〈=en, który jest zapisywany do ciastka/sesji. Czyli HTTP_REFERER wypada najwygodniej, ale czy jest równie niezawodne co tamte? Zawsze będzie działać? Czy obojętne których wartości będę używał? Ponawiam pytanie: czy da się inaczej niż poprzez dodawanie do adresu, przekazywać wartości nadane zmiennym podczas kliku? Pozdrawiam. PS Mam dwa nowe pytania: Jak wywołać funkcje, której nazwę mam zapisaną w tablicy jako string (wcześniej została includowana)? Napisałem skrypt, który działa ale po przerobieniu go na funkcje (dodadniu function nazwa(){ ... return; } i includowaniu pliku z funkcją nie jestem wstanie wywołać tej funkcji, gdzie może być błąd - nawiasy i średniki sprawdziłem setki razy ... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
eval" title="Zobacz w manualu PHP" target="_manual
Co do funkcji masz: return; A przecież coś zwracać musi... Co do rozwiązania z adresem - moim zdaniem jak Ci wygodniej - i tak to co od użytkownika to można podmienić. ^^ Co do języków... Zapisz np. do cookie set_cookie" title="Zobacz w manualu PHP" target="_manual @edit Pamiętaj, że najpierw wysyłamy do użytkownika nagłówki i cookie. (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) I co do języków możesz zawsze post'em przekazać? Fuuuuj! Bierz rozwiązanie z cookie albo sesjami. Ten post edytował fifi209 9.06.2009, 21:05:41 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Mam dwa nowe pytania:
Jak wywołać funkcje, której nazwę mam zapisaną w tablicy jako string (wcześniej została includowana)? Napisałem skrypt, który działa ale po przerobieniu go na funkcje (dodadniu function nazwa(){ ... return; } i includowaniu pliku z funkcją nie jestem wstanie wywołać tej funkcji, gdzie może być błąd - nawiasy i średniki sprawdziłem setki razy ...
pokaż skrypt. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 2.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedzi!
fifi209 dzięki za eval:) co do funkcji to mam: function abc() // nic nie pobieram, bo korzystam tylko z $_SERVER i $_GET { petla1{} petla2{} petla3{} return $zm; } w każdej pętli coś się dzieje i jest zapis do zmiennej $zm, jeśli zmienię i dam kilka returnów w pętlach to efekt ten sam - nie mogę wywołać funkcji. Czym freewearowym pod win mogę debugować skrypty php? A do języków używam ciasteczek ale czasem użytkownik chce zmienić język i jakoś muszę przekazać tą informację. Czy da się jakoś ominąć metodę GET aby nie było tego badziewia widać w adresie? Czy można jakoś inaczej przekazywać zmienne i ich wartości, albo maskować adresy? Pozdrawiam. Spawnm jeśli do jutra nie znajdę problemu to wykleję skrypt i poproszę o znalezienie błędu - już nerwicy dostaje z tym skrypcikiem .... @edit teraz mnie chyba olśniło czy jak w funkcji mam instrukcje: setcookie to ciasteczko jest normalnie ustawiane, czy musze jakoś to zglobalowac? Ten post edytował statek 10.06.2009, 00:00:56 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Czy da się jakoś ominąć metodę GET aby nie było tego badziewia widać w adresie? Jeśli zapamiętasz język w sesji, to nie. Ale przynajmniej pierwsze wywołanie będzie musiało zawierać identyfikator języka, jeśli nie będzie się on zgadzał z tym wykrytym na podstawie nagłówków. Cytat setcookie to ciasteczko jest normalnie ustawiane, czy musze jakoś to zglobalowac? No już nie zajrzeć do manuala na setcookie" title="Zobacz w manualu PHP" target="_manual i zadawać takie pytania, to trzeba mieć tupet. O jakimkolwiek kursie PHP nie wspomnę. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 2.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
erix
Już się pogodziłem (prawie) z tymi brzydkimi adresami. Czytałem o setcookie w manualu i wydawało mi się, że to zmienna globalna i zawsze mam do niej dostęp, z każdego miejsca. Ale wolałem się upewnić, bo w poszukiwaniu błędu w mojej funkcji zacząłem zastanawiać się nad każdą możliwością. Błędu jeszcze nie znalazłem, ale jutro mam pół dnia na poszukiwania. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.09.2025 - 00:23 |