Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] header Location - podmiana ostatniej zmiennej
M@X
post
Post #1





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam.
Niewiem czy jest to tak możliwe jak mi sie wydaje ?

Mam strone dwujęzyczną którą zmieniam na zasadzie sesji.
  1. if($_GET['jezyk']=='polski')
  2. {
  3. $_SESSION['language']='polski';
  4. header('Location: index.php?l=polski');
  5. }
  6. elseif($_GET['jezyk']=='angielski')
  7. {
  8. $_SESSION['language']='angielski';
  9. header('Location: index.php?l=angielski');
  10. }

no i dzięki temu wszystko działa, tyle że po wywołaniu danej sesji strona wraca do index.php
A chodzi mi aby jak np jest link: index.php?sekcja=opis&dzial=2&l=polski to żeby podmieniał tylko końcówke na ...&l=angielski

Można to w jakiś sposób rozwiązać, np:
header('Location: index.php?AKTUALNE_ZMIENNE&l=angielski');
coś jak
header('Location: index.php?$_SERVER['REQUEST_URI']&l=angielski');

Ten post edytował M@X 25.02.2011, 22:58:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
ylk
post
Post #2





Grupa: Zarejestrowani
Postów: 194
Pomógł: 26
Dołączył: 9.01.2011
Skąd: /dev/null

Ostrzeżenie: (0%)
-----


  1. $_SERVER['HTTP_REFERER']
Go to the top of the page
+Quote Post
M@X
post
Post #3





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


wsadziłem to w ten sposób

header("Location: ".$_SERVER['HTTP_REFERER']."&l=angielski");

i podmienia język na danej podstronie (na danych zmiennych) ale tworzy link w postaci:

www.strona.pl/index.php?sekcja=opis&dzial=2&l=polski&l=angielski

Można jakoś wyeliminować żeby kasował lub podmieniał tą ostatnią zmienną "l" ?

Ten post edytował M@X 26.02.2011, 08:31:23
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Olej Referera, to jest coraz rzadziej wysyłany.

Daj w linku do zmiany języka jakąś dodatkową zmienną, np. redirect i wrzucaj tam konkretne żądanie zakodowane np. urlencode. Dalej będziesz wiedział, co robić. (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Bags_Bunny
post
Post #5





Grupa: Zarejestrowani
Postów: 262
Pomógł: 39
Dołączył: 12.04.2004

Ostrzeżenie: (0%)
-----


@M@X: nie podoba mi się Twoja duplikacja kodu.
W ogóle, to trochę dziwnie kombinujesz. Skoro masz już w GET zmienną język to po co jeszcze to l? No ale nie moja sprawa.
  1. if( isset( $_GET['jezyk'] ) )
  2. {
  3. $_SESSION['language'] = $_GET['jezyk'] == 'angielski' ? 'angielski' : 'polski'; //zakładam, że polski jest domyślny
  4. header( 'Location: index.php?' . http_build_query( array( 'l' => $_SESSION['language'] ) + $_GET ) );
  5. exit; //polecam, jeśli nic już się nie musi wykonać
  6. }


Ten post edytował Bags_Bunny 26.02.2011, 14:31:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 07:00