Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Przekierowanie na inną stronę.
MasterChest
post 24.02.2013, 12:18:32
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.01.2013

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


Witam.

Potrzebuję zrobić przekierowanie z bloga na wordpressie na inną stronę.
Załóżmy mam przykładowy post wordpress.com/jakis-post i chciałbym aby po przekierowaniu na inną domenę URL również tak samo wyglądał czyli domena.pl/jakis-post.
Dodatkowo chciałbym to 'jakis-post' umieścić w treści strony np. przy labelu 'tytuł'.

Wydaje mi się, że nie jest to sporo linijek kodu, próbowałem znaleźć coś działającego na tej zasadzie w internecie lecz zupełnie nie wiem pod jaką frazą szukać.
Czy mógłby mi ktoś pomóc?

Pozdrawiam serdecznie
Go to the top of the page
+Quote Post
muniekw
post 24.02.2013, 13:17:06
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 22
Dołączył: 1.06.2009
Skąd: Warszawa

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


Nie wiem czy nie chciało Ci się szukać, ale ja wpisałem przekierowanie wordpress i znalazło masę stron... wink.gif

Link: przekierowanie wordpress
Go to the top of the page
+Quote Post
MasterChest
post 24.02.2013, 13:52:36
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.01.2013

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


Źle chyba ująłem w sumie to co chciałem przekazać.

Chodzi mi o to, że na stronie załóżmy mam różne posty i w każdym jest odnośnik prowadzący na domenę.
Na domenie jest jeden główny folder, bez żadnych podstron i chcę by po kliknięciu na odnośnik w URL domeny pojawiał się taki sam... nie wiem jak to nazwać, dalsza część linku po prostu, jak wyżej w poście napisałem 'jakiś-post'. I bez względu na to jak link będzie wyglądać ma wyświetlać zawartość głównego folderu.


Trochę chaotycznie chyba opisane?

Ten post edytował MasterChest 24.02.2013, 13:56:34
Go to the top of the page
+Quote Post
toaspzoo
post 24.02.2013, 14:01:29
Post #4





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


http://www.drzewo-wiedzy.pl/?page=artykul&id=40
http://php.net/manual/en/reserved.variables.server.php


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
MasterChest
post 27.02.2013, 16:54:00
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.01.2013

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


Trochę pokombinowałem i mam coś takiego:

  1. <?php
  2. $host = $_SERVER['HTTP_HOST'];
  3. $uri = rtrim($_SERVER['REQUEST_URI'], '/\\');
  4. $fileNparams = explode('?',$uri);
  5. $uri_parts = explode('&',$fileNparams[1]);
  6.  
  7. $generate_url =
  8. 'http://domena.pl/skrypt/'.$uri_parts[0];
  9.  
  10. ?>


Lecz nic mi z tego nie wyszło. To moja pierwsza styczność z php, szukałem w google i nic więcej wyskrobać nie potrafię.
Skrypt jest w pliku index.php w folderze domena.pl/skrypt.
Chcę aby po kliknięciu w odnośnik do tej domeny na stronie np. blog.pl/jakis_post przekierowało mnie na domena.pl/skrypt/jakis_post ale tak aby nadal pokazywało główny folder czyli /skrypt.

Jakieś sugestie?

Próbowałem również z REDIRECT_URI i HTTP_REFFERER i nadal nic.
Go to the top of the page
+Quote Post
PiNkOs
post 27.02.2013, 19:06:01
Post #6





Grupa: Zarejestrowani
Postów: 76
Pomógł: 4
Dołączył: 27.02.2009

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


  1. <?php
  2. $uri = rtrim($_SERVER['REQUEST_URI'], '/\\');
  3. $fileNparams = explode('/',$uri);
  4. $ile = count($fileNparams);
  5. $generate_url = 'http://domena.pl/skrypt/'.$fileNparams[$ile-1];
  6.  
  7. echo $generate_url;
  8. ?>


Jeżeli chodzi o kod to tak to widzę.

Cytat
Skrypt jest w pliku index.php w folderze domena.pl/skrypt.


Z twoje opisu wynika, że chcesz uzyskać przekierowanie ze strony do której chcesz uzyskać przekierowanie, a tak się nie da.

Skrypt powinien raczej znajdować się po stronie ...

Cytat
blog.pl/jakis_post


Ew. możesz poczytać o HTTP_REFERER, ale to nie jest skuteczna metoda w 100%.
Go to the top of the page
+Quote Post
MasterChest
post 27.02.2013, 20:00:54
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.01.2013

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


Cytat
Z twoje opisu wynika, że chcesz uzyskać przekierowanie ze strony do której chcesz uzyskać przekierowanie, a tak się nie da.



Może nie do końca przekierowanie, tzn.. Ze strony blog.pl/jakis_post po kliknięciu w odnośnik zawierający skrypt chciałbym aby były pobierane dane ze strony blog.pl na temat zmiennej url którą w tym wypadku jest jakis_post.
I po tym etapie po prostu dodała ją do domeny na było przekierowanie.


Jeżeli chodzi o HTTP_REFERER to tutaj by się właśnie to zdało, ale w moim przypadku nic z tym nie działa, próbowałem na wiele sposobów.

Go to the top of the page
+Quote Post
PiNkOs
post 28.02.2013, 11:03:59
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 4
Dołączył: 27.02.2009

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


Do strony w Wordpressie dodaj poniższy kod:

  1. <?php
  2. if(isset($_SERVER['HTTP_REFERER'])){
  3. $uri = rtrim($_SERVER['HTTP_REFERER'], '/\\');
  4. $fileNparams = explode('/',$uri);
  5. $ile = count($fileNparams);
  6. $generate_url = 'http://domena.pl/skrypt/'.$fileNparams[$ile-1];
  7.  
  8. header("Location: ".$generate_url);
  9. }else{
  10. echo 'Zmienna $_SERVER[\'HTTP_REFERER\'] pusta!';
  11. }
  12. ?>


Zastosowałem HTTP_REFERER. Zmienna ta zawiera adres, z którego nastąpiło wejście. Następnie przy użyciu explode() nastąpiło podzielenie adresu na elementy rozgraniczone slashem i zapisane w tablicy. Czyli np. jeżeli będzie to adres http://jakas_strona.pl/jakies_cos to zostanie to odpowiednio podzielone na [0] http: |[1]|[2] jakas_strona.pl |[3] jakies_cos. W tym wypadku interesuje nas element jakies_cos, który znajduje się na ostatnim miejscu w tablicy. Dlatego zastosowałem następnie funkcję count(), która zlicza ilość elementów tablicy. Kolejnym krokiem jest już przyklejenie ostatniego elementu tablicy do twojego linku. Z racji iż elementy tablicy numerowane są od zera, należy od ilość elementów tablicy odjąć jeden ($ile-1). No i ostatni krok to przekierowanie przy użyciu header("Location: ...").

Istnieją lepsze rozwiązania (np. wyrażenia regularne), w których można przewidzieć wszystkie przypadku, ale wcześniej użyłeś explode() dlatego nie chciałem mieszać.

Sprawa się komplikuje gdy wchodzisz z linku np. jakas_strona/zywnosc/owoce/jablka, wtedy zostanie pobrana sama wartość jablka. Dlatego, aby skrypt działał jak należy -----> Wyrażenia regularne

Mam nadzieję, że cię zrozumiałem i oto ci chodziło wink.gif

Ten post edytował PiNkOs 28.02.2013, 11:14:37
Go to the top of the page
+Quote Post
MasterChest
post 1.03.2013, 01:40:45
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.01.2013

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


Działa dokładnie tak jak chciałem!
Jesteś wielki. Lkingsmiley.png
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 04:57