Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Warunkowe przekierowanie na inną stronę www
Forum PHP.pl > Forum > PHP
Fenix1974
Witam serdecznie.

Mam stronę internetową na starym serwerze - www.a
Zrobiłem nową stronę na nowym serwerze - www.b

Chciałbym zrobić automatyczne przekierowanie warunkowe ze strony www.a na stronę nową www.b ale pod warunkiem, że nowy serwer aktualnie działa i strona nowa jest dostępna.

Jeśli www.b aktualnie nie jest dostępna (wyłączony serwer), przekierowanie nie powinno się zrobić a okienko przeglądarki powinno wypełnić się zawartością starej strony ze starego serwera.

Bardzo proszę o pomoc i serdecznie dziekuję.
L_Devil
hmm... spróbuj się połączyć z nową stroną za pomocą fsockopen - sprawdź czy dostaniesz odpowiedź. Jeżeli tak, używasz
  1. <?php
  2. header("Location: http://adres-nowej-strony.pl");
  3. ?>
jeżeli nie, wiesz co robić smile.gif
Fenix1974
Dzięki L_Devil za odpowiedź.

Niestety nadal sobie nie poradzę. Pojęcia nie mam o programowaniu w php.
Używam CMS'a.
Bardzo potrzebuję cały kod - gotowy do wstawienia do strony.
Bardzo proszę o dalszą pomoc.
L_Devil
Dodaj na samej górze pliku, który jest wykonywany jako pierwszy, np. include/header.php, czy temuż podobne. Nie wiem, nie napisałeś jaki to CMS.
Zrób to tylko na starym serwerze

  1. <?php
  2. $sh = fsockopen("http://adres-nowego-serwera/index.php", 80);
  3. if(!$sh)
  4. {
  5. header("Location: http://adres-nowego-serwera/index.php");
  6. }
  7. fclose($sh);
  8. ?>
Fenix1974
L_Devil zrobiłem tak:
Na starym serwerku zminiłem index.php na index2.php (na próbę).
Utworzyłem nowy plik index.php.
Wpisałem do niego kod który mi podałeś.
Po wpisaniu w przeglądarce adresu z plikiem index.php wyświetliła się następująca informacja:

Warning: fsockopen() [function.fsockopen]: unable to connect to http://nowa.strona:80 (Unable to find the socket transport "http" - did you forget to enable it when you configured php?) in (...)\index.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at (...)\index.php:2) in (...)\index.php on line 5

Warning: fclose(): supplied argument is not a valid stream resource in (...)\index.php on line 7

Masz jeszcze trochę cierpliwości ? winksmiley.jpg
L_Devil
Drugi serwer działał w momencie wykonywania skryptu? Jeżeli nie, to dopisz na samym początku linijkę
  1. <?php
  2. ?>
, jeżeli działał to znak że administrator nie zezwala ci na stosowanie polecenia 'fsockopen' - no to masz, niestety, pecha.
Fenix1974
Serwer działa ... Widać jest jak piszesz.
Czy istnieje możliwość alternatywna? Kod w zwykłym html?

Dziękuję bardzo za pomoc L_Devil.
dtb
  1. <?php
  2.  
  3. $s = @fopen('http://www.b/', 'r');
  4.  
  5. if ((bool)$s) {
  6.     header('Location: http://www.b/');
  7.     die();
  8. } else {
  9.     // tresc pliku na serwerze A
  10. }
  11.  
  12. ?>


nie jestem pewien, czy js moze polaczyc sie z jakims serwerem z sieci
Fenix1974
Dziękuje dtb. Zadziałało bezbłędnie winksmiley.jpg

Czy wiecie może, jak coś takiego zrobić w html'u lub java?

Okazało sie po prostu, że z php nie mogę skorzystać. sad.gif
Asmox
Ja także stosuję tę metodę z header(Location: "strona"), ale czasem mam z tym problemy. O co chodzi jak mi wywali taki komunikat:
Cytat
Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\WebServ\httpd\Projektuj WWW!\index.php:10) in C:\Program Files\WebServ\httpd\Projektuj WWW!\skrypty\php\wyloguj.php on line 3

Proszę o pełną interpretację, bo mimo iż znam angielski to nic z tego nie rozumiem
erix
Temat: Najczestsze_bledy

Cytat
Czy wiecie może, jak coś takiego zrobić w html'u

http://letmegooglethatforyou.com/?q=html%20refresh
Fenix1974
Cytat(erix @ 18.01.2009, 21:35:59 ) *

Gratuluję funkcji opiekuna. Sprawdź datę mojego pytania. No chyba, że to nowa dyscyplina, nabijać sobie jak najwięcej postów.
Beznadzieja....
Asmox
Nie będę zakładał nowych tematów jak w jednym jest to o co mi chodzi.
Poza tym te funkcje:
  1. <?
  2. //użycie funkcji na początku
  3.  
  4. echo $tekst;
  5.  
  6. header( 'Location: <a href=\"http://wiki.php.pl'&#092;" target=\"_blank\">http://wiki.php.pl'</a> );
  7.  
  8. //...i na koścu
  9. ?>

Nie działają. Nadal pisze mi to samo i się czepia, że w nagłówku jest informacja o dołączeniu skryptów JavaScript nifty corners.
Kurde wiem jak używać googli i gdyby wszystko było ok to bym sobie nie zawracał głowy pisaniem na forum.
@Edit: Znalazłem tymczasowe rozwiązanie, chociaż wolałbym php
echo "<script type=\"text/javascript\">location.replace('index.php?strona=sorry');</script>";
erix
Cytat
Kurde wiem jak używać googli i gdyby wszystko było ok to bym sobie nie zawracał głowy pisaniem na forum.

Użyj lepiej tej wyszukiwarki, bo wpisując Cannot modify header information możesz znaleźć dziesiątki rozwiązań.

I właśnie z tego powodu, że było - zamykam.
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.