Nietypowe przekierowanie strony

0

Posiadam domenę i hosting na PRV.PL, gdzie umieściłem moją stronkę, dodatkowo mam w domu serwer, który nie zawsze jest włączony.
Chciałbym zrobić taką małą kombinację - kiedy ktoś wchodzi na moją stronkę, a domowy serwer jest uruchomiony, to zostaje automatycznie przekierowany na stronę znajdującą się na nim, jeśli domowy serwer jest wyłączony to nic się nie dzieje (czyli odwiedzający pozostaje na stronie znajdującej się na serwerach prv.pl).

0

fsockopen z adresem Twojego komputera i sprawdzasz czy dostales odpowiedz.

0

A jakby taki kod mógłby wyglądać? Bo php nie miałem niestety czasu jeszcze poznać.

0
$ctx = stream_context_create(array( 
    'http' => array( 
        'timeout' => 1 
        ) 
    ) 
); 
$zm = file_get_contents("http://adres.twojego.domowego.serwera.pl/plik.testowy.txt", 0, $ctx);
if ($zm == 'dziala')
  header('Location: http://adres.twojego.....');

Mniej wiecej tak, tylko nie testowalem czy dziala. Na domowym kompie wstaw jakis plik.testowy.txt a w nim tekst dziala. Generalnie tyle, kodu nie testowalem wiec moze cos nie dzialac ;)

0

No spoko, a jakby to zrobić z tym fsockopen, tak jak napisał johny_bravo???

P.S. Fajny avatar masz Pedros :)

0

Podobnie, zobacz na opis fsockopen w manualu. Otwierasz polaczenie na porcie 80 (www) i sprawdzasz czy przyszla jakas odpowiedz. Tak jak pedros sprawdza czy plik istnieje.

0

Będę próbował... ale po sesji :/

0

Jak w ogole zagladales do manuala, to pierwszy przyklad jest tym, czego szukasz ;)

0

Próbowałem pierwszy przykład z manuala, jeszcze bez żadnego przekierowania, tylko żeby sprawdzało czy serwer jest uruchomiony. I obojętnie czy jest uruchomiony, czy nie - zawsze na stronce wyświetla mi tylko () i nic więcej, żadnego opisu błędu czy chociażby numeru.

0
function checkAndGo($address)
{
	error_reporting(E_ALL);
	$fp = fsockopen("$address", 80, $errno, $errstr, 30);
	if ($fp === false) 
	{
	    echo "$address nieczynny<br>\n";
	}
	else
	{
		echo "$address czynny";
		//header("Location: $address");
	}
	
}

checkAndGo("www.jhkkhjjjhjhjhjgj.com");
checkAndGo("www.google.com");

Mnie tez nie wypisuje zadnego $errstr, ale fakt wejscia do ifa wystarczy, by stwierdzic, ze nie dziala.

0

Próbuje tak jak napisałeś i obojętnie jaki adres wpiszę, zawsze pokazuje, że jest czynny (nieważne, czy np. www.onet.pl, czy byle jakie literki wpiszę), a jak zmieniam w if === na == to mam to samo, tylko w drugą stronę (wszystkie adresy nieczynne).

0

na hostingu czy u siebie na lokalnym probujesz? Nie bardzo widze powod jak moze sie laczyc z nieistniejacym adresem. Kod, ktory podalem u mnie na lokalu wyswietla obydwa komunikaty.

0

Uruchamiam na hostingu (prv.pl) i tak się właśnie zacząłem zastanawiać czy to nie jest jego wina.
Innej możliwości nie widzę, szczególnie, że Tobie działa.

Posprawdzałem na stronce i okazało się, że PHP działa w safe mode i z tego co znalazłem wynika, że część funkcji nie działa: http://www.php.net/manual/pl/features.safe-mode.functions.php
To chyba wyjaśnia moje kłopoty?

No i na serwerze domowym ładnie śmiga, to teraz zaczynam szukać jakiego darmowego hostingu, który będzie miał php z safe mode = Off, próbowałem cba.pl na którym niby tak jest i nie działa, więc chyba coś ściemniają. Może ktoś poleci jakiś hosting???

0

http://www.johny-bravo.ovh.org/fsockopen.php

U mnie dziala. Na ovh nie narzekam, chociaz rzadko go uzywam, bo zwykle pracuje na lokalu.

0

a może rozwiązanie w JS (wymaga wstawienia na serwer jakiegoś obrazka):

<img 
  style="width: 0; height: 0; margin: 0; border: 0; padding: 0" 
  src="http://serwer.pl/folder/jakies_obrazek.jpg" 
  onload="top.location.href=this.src.replace(/\/[^\/]+$/,'')"
>

przeniesie użytkownika do folderu z tym obrazkiem

0

Dzięki za szybką pomoc, naprawdę pomogliście mi :D
A JS też wypróbuję, tak z ciekawości :)

EOT

1 użytkowników online, w tym zalogowanych: 0, gości: 1