Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Header Location i zmienne
Avaray
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.01.2015

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


Witam użytkowników i zarazem zwracam się o pomoc.
Jestem bardzo poczatkujący w sprawach PHP. Do tej pory bawiłem się jedynie HTML i CSS.
Staram się stworzyć wielojęzykową stronę z użyciem skryptu LangQuery.
Ustawianie języka dla odwiedzającej osoby, zapis do cookies... wszystko działa pięknie, poza jedną rzeczą - adresem w przeglądarce, który się nie zmienia po ustawieniu języka.
Chciałbym w tym celu skorzystać z Header Location i htaccess.
Z htaccess raczej sobie poradzę. Problem mam z PHP, którego nie ogarniam, jak już wspominałem.
Nie wiem jak ustawić zmienne w TYM KODZIE w linijkach 104-107.

.$this->page raczej mam dobrze ustawione
$this->list jest błędne i w ogóle nie wiem czy tam powinno być w tej linijce in_array

Ostateczny adres strony z ustawionym językiem ma wyglądać tak: http://php.pl/en/index.php

Czy znajdzie się jakaś dobra dusza, która spojrzy na to - i mówiąc wprost - zrobi to za mnie? Lub chociaż da jakieś wskazówki, abym mógł zrozumieć błędy?

Ten post edytował Avaray 23.01.2015, 21:14:51
Go to the top of the page
+Quote Post
SpiritCode
post
Post #2





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

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


Przede wszystkim nie deklarujesz zmiennej page
Go to the top of the page
+Quote Post
Avaray
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.01.2015

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


Cytat(SpiritCode @ 23.01.2015, 16:31:58 ) *
Przede wszystkim nie deklarujesz zmiennej page

Nie mam tego przypadkiem w linijce 44?
  1. $this->page = basename($_SERVER['PHP_SELF']);


Edit: Dowiedziałem się o co chodzi z deklaracją.
Umieściłem deklaracje w linijkach 20-21 i wygląda to tak:
  1. public $domain = ($_SERVER['SERVER_NAME']);
  2. public $page = basename($_SERVER['PHP_SELF']);


Edit2: Zaktualizowałem także pierwszy post.
Nowy, lekko oczyszczony i poprawiony kod znajduje się TUTAJ.

Ten post edytował Avaray 23.01.2015, 21:20:13
Go to the top of the page
+Quote Post
SpiritCode
post
Post #4





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

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


Na początku pliku (po tagach PHP) daj

I pokaż błędy
Go to the top of the page
+Quote Post
Avaray
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.01.2015

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


Cytat(SpiritCode @ 25.01.2015, 09:22:57 ) *
Na początku pliku (po tagach PHP) daj

I pokaż błędy

Wydaje mi się, że nie będę w stanie zobaczyć błędów dopóki nie będzie poprawnie napisane ustawianie headera.
Przy obecnym ustawieniu w konsoli przeglądarki otrzymuję jedynie:
Cytat
Failed to load resource: the server responded with a status of 500 (Internal Server Error)


Obecnie kod wygląda tak: http://pastebin.com/PJLk6X1c

// Jako iż nie mogę edytować już wcześniejszych postów - przypominam: chodzi o ustawienie headera, które znajduje się na samym dole kodu.

Ten post edytował Avaray 26.01.2015, 12:03:46
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


A gdzie masz stworzenie obiektu LangQuery ?
Poza tym chyba to:
  1. /* USTAWIENIE ADRESU */
  2. $this->setaddress();
  3. $this->page = basename($_SERVER['PHP_SELF']);
  4. $this->domain = ($_SERVER['SERVER_NAME']);

Powinno być POZA klasą
Go to the top of the page
+Quote Post
Avaray
post
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.01.2015

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


Cytat(Pyton_000 @ 26.01.2015, 12:15:13 ) *
A gdzie masz stworzenie obiektu LangQuery ?
Poza tym chyba to:
  1. /* USTAWIENIE ADRESU */
  2. $this->setaddress();
  3. $this->page = basename($_SERVER['PHP_SELF']);
  4. $this->domain = ($_SERVER['SERVER_NAME']);

Powinno być POZA klasą

Jeśli dobrze rozumiem to stworzenie obiektu mam w index.php
  1. include("scripts/LangQuery.php");
  2. $L=new LangQuery();


Umieściłem także cytowane linijki poza klasą i nic to nie zmieniło. Ciągle error 500.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


no to dawaj .htaccess
Go to the top of the page
+Quote Post
Avaray
post
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.01.2015

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


Cytat(Pyton_000 @ 26.01.2015, 12:30:44 ) *
no to dawaj .htaccess

Zapewniam, że w htaccess nie mam nic związanego z tym skryptem.
Problemem jest błędnie zbudowane ustawianie headera lub te zmienne, które dodałem.
Gdyby ustawianie headera w skrypcie było poprawnie napisane, wtedy wyświetlałby się poprawny URL w przeglądarce i moim oczom ukazywałaby się strona błędu 404.
Kiedy dobrnę do momentu, gdy będę widzieć poprawny URL i błąd 404 - wtedy będę bawić się htaccess.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


to zrób

die("Location: ".$language=$this->current.'/' .$page); i tego kolejnego Przed header(...)
Go to the top of the page
+Quote Post
freemp3
post
Post #11





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

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


W metodzie setaddress posługujesz się zmiennymi $language, $default oraz $page, ale nie masz ich wcześniej zdeklarowanych, ani nie przekazujesz ich w parametrze. Poza tym dlaczego nadpisujesz zmienną $language:
  1. header("Location: ".$language=$this->current.'/' .$page);

?
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 - 11:06