Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zrobić przekierowanie
Forum PHP.pl > Forum > Przedszkole
marcincompl
Witam
Miałem starą stronę która generowała taki link:
index.php?option=com_content&task=view&id=4&Itemid=4
Chciałbym aby z ta strona nakierowywała na inną stronę tylko jest problem bo jak stworzę taki plik:
index.php?option=com_content&task=view&id=4&Itemid=4
to serwer go nie widzi....
Proszę mi pomóc jak stworzyć taką stronę o takim linku....
(mój plik swf nakierowuje na taki link, a nie mam źródłowego pliku fla i muszę zrobić przekierowanie
z takiego linku na inną stronę)
blooregard
php.net/header
marcincompl
Dzięki za stronkę, ale nie mogę się połapać gdzie wpisać zapytanie:
index.php?option=com_content&task=view&id=4&Itemid=4
a gdzie źródło:
mojastronka.htm

....muszę takich przekierowań zrobić 3....
nospor
Cytat
to serwer go nie widzi....
Nie masz pliku index.php ze serwer go nie widzi?
marcincompl
Cytat(nospor @ 8.01.2009, 14:17:53 ) *
Nie masz pliku index.php ze serwer go nie widzi?

.... ok stworzę plik index.php ale tu chodzi o to co w nim umieścić aby te przekierowanie działało...
nospor
no dostales linka
http://pl.php.net/manual/pl/function.header.php

  1. <?php
  2. header('Location: nowastrona.html');
  3. ?>

Tylko w zależnosci od tego co przyjdzie w linku dajesz inny adres na ktory przekierowujesz.
O IF
http://pl2.php.net/manual/pl/control-structures.if.php
i $_GET
chyba slyszales?

Innym sposobem jest rozwiązanie tego na poziomie apache. Robisz htaccess i wnim określasz ze taki a taki adres ma kierowac na cos innego
marcincompl
  1. <?php
  2. header('Location: nowastrona.html');
  3. ?>

Ten kod działa ale tylko na jeden link....
Z IF i $_GET nie poradze sobie...
Z htaccess odpada próbowałem ale nie działa......
nospor
Cytat
Ten kod działa ale tylko na jeden link....
WIem, przeciez ci napisalem o tym

Cytat
Z IF i $_GET nie poradze sobie...
poniewaz? Nie umiesz dac warunku?
  1. <?php
  2. $zm = 4;
  3. if ($zm == 2) echo 'to jest rowne 2';
  4. else echo 'To nie jest rowne 2';
  5. ?>

I w czym tu problem? Napisz czego nie kumasz w if i $_GET, pokaz co probowales zrobic to ci pomozemy.
kamil1114
$_GET działa na zasadzie że zmienne są kodowane w url-u. Tu masz przykład wykorzystania $_GET do pobrania danych
Kod
<form>
<input type="text" name="pole_tekstowe">
<input type="submit" value="Wyślij">
</form>

A to wpisujesz w znacznikach <?php ?>

$pole_tekstowe=$_GET['pole_tekstowe'];

echo $pole tekstowe; //teraz możesz użyć informacji które pobrałeś z formularza

Rozumiesz o co w tym chodzi ?
marcincompl
Słabo znam php... dlatego prosiłbym jeśli ktoś by był taki dobry
i pomógł mi napisać regułkę......
Strarus
Nie jestem pewien o co Ci chodzi ale musisz w linkach dać taki adres, a co do tego przekierowywania to chyba Tobie chodzi o coś takiego, że jeśli strona jest index.php przekieruj do site1.php jeśli jest show.php to przekieruj do site2.php??
marcincompl
Mam takie linki:
index.php?option=com_content&task=view&id=4&Itemid=4
index.php?option=com_content&task=view&id=3&Itemid=3
index.php?option=com_content&task=view&id=1&Itemid=2

i chcę aby po wejściu na index.php każdy link przekierowywał na inną stronę:
kontakt.html
cennik.html
oferta.html

czy da się to jakoś zrobić?questionmark.gif
(mam plik swf w którym są zapisane stare linki, a nie mam pliku źródłowego aby go przerobić
dlatego tak mi zależy na tym przekierowaniu
Piniek
Cytat(marcincompl @ 9.01.2009, 11:13:13 ) *
czy da się to jakoś zrobić?questionmark.gif


Da się! Pokaż co sam zrobiłeś albo temat wyląduje na poszukuję z tagiem [wolontariat].

Pozdrawiam
thomson89
Coś ci podpowiem. Z tym co przeczytasz tu oraz tu, i poniżej, już powinieneś sam dać radę.

Poczytaj sobie o $_GET, link chyba posty wyżej, jak nie to link. Aaa, jeszcze tutaj coś jest o tym.

Zaczynamy! W index dajesz specjalny link:
  1. <a href="index.php?nazwazmiennej=wartosc">
  2. <!-- tam gdzie nazwa zmiennej to oczywiscie jakas nazwa, moze byc np. id
  3. tam gdzie wartosc zmiennej, to np. kontakt
  4. zmienimy więc link tak jak powyżej -->
  5. <a href="index.php?id=kontakt">KONTAKT</a>

Teraz mozesz odwołać się do zmiennej umieszczonej w adresie, po prostu możesz tą zmienną pobrać, za pomocą GET. I tak jak wyżej ktoś napisał, używając funkcji warynkowych, możesz przypisac stronie odpowiedną wartość według twojej zmiennej. Nie kumasz? Jak klikniesz na link wyżej, "uruchomi się skrypt php". Popatrz:
  1. <?php
  2. @$id = $_GET[&apos;id&apos;]; //pobierasz z pasku adresu zmienną id, zmałpkujemy go (aby wyciszyć errory w przypadku braku zmiennej)
  3. if(isset($id)) //sprawdzamy czy zmienna id istnieje
  4. {
  5. include($id.&apos;.html&apos;); // wstawiamy plik o nazwie id ( w tym przypadku kontakt) i dopisujemy rozszerzenie)
  6. }
  7. else  //jak nie ma zmiennej, ladujemy strone glowna
  8. {
  9. include(&apos;glowna.html&apos;);
  10. }
  11. //oczywiscie ty bedziesz uzywal switch :)
  12. ?>

Przeróbkę, zrozumienie, zostawiam tobie. Jak dalej nie rozumiesz - czytaj manuala, linki w tym poście i się ucz php. Myślę że bardzo ci pomogłem i przy odrobinie chęci, nie umiejętności - uda ci się to zrobić (tu: przerobić).

Pozdrawiam!

PS: Wycięło trochę kod. Jak coś źle, prosze o sprostowanie. Tam gdzie &apos to znak '

Co ty na to amrcinku? Nie wysilałem się na darmo. Czekam na efekt...
erix
Kod
@$id = $_GET[&apos;id&apos;]; //pobierasz z pasku adresu zmienną id, zmałpkujemy go (aby wyciszyć errory w przypadku braku zmiennej)

A o empty" title="Zobacz w manualu PHP" target="_manual słyszałeś? Błędy powinno się wyłapywać, a nie wyciszać.
pawel81
  1. <a href="index.php?site=2">kontakt</a>
  2. <a href="index.php?site=3">cennik</a>
  3. <a href="index.php?site=4">oferta</a>
  4. <?php
  5. $site = isset($_GET['site']) ? (integer) $_GET['site'] : 1;
  6.  
  7. switch ($site){
  8.    case 2:
  9.        $include = 'kontakt';
  10.    break;
  11.  
  12.    case 3:
  13.        $include = 'cennnik';
  14.    break;
  15.  
  16.    case 4:
  17.        $include = 'oferta';
  18.    break;
  19.  
  20.    default :
  21.        $include = 'home';
  22. }
  23.  
  24. if(file_exists($include.'php')) include_once($include.'php');
  25. else echo 'brak pliku ' . $include;
  26. ?>

Mozecie mi wyjasnic co oznacza &apos;id&apos; w
Cytat
$_GET[&apos;id&apos;];
marcincompl
  1. <?php
  2.    if( $_GET['option'] == 'com_content' && $_GET['task'] == 'view' ){
  3.        if( $_GET['id'] == 4 && $_GET['Itemid'] == 4 ){
  4.            header('Location: kontakt.html');
  5.        }
  6.        elseif( $_GET['id'] == 3 && $_GET['Itemid'] == 3 ){
  7.            header('Location: cennik.html');
  8.        }
  9.        elseif( $_GET['id'] == 1 && $_GET['Itemid'] == 2 ){
  10.            header('Location: oferta.html');
  11.        }
  12.    }
  13. ?>

Ten kod działa..... pobiera po dwie zmienne z linku i przekierowuje na konkretne adresy
Dziękuję wszystkim za pomoc.....
erix
Cytat
Mozecie mi wyjasnic co oznacza &apos;id&apos; w

Błąd parsera forum...
thomson89
Cytat(marcincompl @ 10.01.2009, 11:41:59 ) *
Ten kod działa..... pobiera po dwie zmienne z linku i przekierowuje na konkretne adresy
Dziękuję wszystkim za pomoc.....


Brawo! Ale liczę na coś więcej niż dziekuję. Patrz: stopka. aaevil.gif
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.