• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Server checken - Weiterleitung

Hesoyam

Neues Mitglied
Hallo,

wie eine simple Weiterleitung funktioniert, weiss ich.

Ich möchte, dass wenn der User meine Seite aufruft, soll gecheckt werden, ob Server1 verfügbar ist, ist er das nicht, soll zu Server2 weitergeleitet werden.

Dass soll deshalb gemacht werden, weil ich 2 Server habe.
Einen in den USA auf den ich nicht verzichten kann (7GB Speicher, keine Werbung etc.) und einen in Deutschland (funpic.de).

Da aber leider der Server1 (USA) immerwieder mal asufälle hat, oder ich irgendwie sonst nicht auf den Server zugreifen kann und da ich nicht weiss ob das anderen auch so geht möchte ich, dass eben gecheckt werden soll, ob der Server verfügbar ist.

So soll das also ablaufen:
1. Seite wird aufgerufen
2. Server1 wird überprüft
3 Wenn Server1 verfübar:
3.1 Weiterleitung zu Server1
3. Wenn nicht:
4. Weiterleitung zu Server2

Wenn einem das zu lange dauert (zumindest habe ich schon öfters erfahren, dass das länger dauern kann) dann soll da ein Link stehen, der auf Server2 weiterleitet.

Vielen Dank im Vorraus
 
versuchs mal mit socket:

Code:
$fp = fsockopen("ip", port);
if($fp)
    echo "erreichbar";
else
    echo "nicht erreichbar";
fclose($fp);
kann unter umständen länger dauern.
wie wärs wenn du einfach beide urls angibst ?
 
Ehm, also du sagst zwar, dass es damit möglich ist zu überprüfen ob der Server erreichbar ist, aber wie kann ich ihn den weiterleiten?

und ich will ja, dass wenn der Server1 NICHT erreichabr ist, dass dann automatisch auf Server2 Weitergeleitet wird.

Und das kann ich da leider nicht sehen. Danke trotzdem, werde es dennoch mal einbauen.
 
PHP:
$fp = fsockopen("ip", port);
if(!$fp)
    header("Location: http://www.example.com/");
    exit;
else
    header("Location: http://www.example2.com/");
    exit;
fclose($fp);
Mfg Mo3b
 
Ich habe jetzt mal dashier eingegeben, aber es leitet leider auf den Server um, auf den es umleiten soll, wenn der andere NICHT verfügbar ist:

PHP:
<?php
$fp = fsockopen("http://www.hesoyam.freeweb7.com/", port);
if(!$fp) {
    header("Location: http://hesostein.he.funpic.de/David/");
    exit; }
else {
    header("Location: http://www.hesoyam.freeweb7.com/");
    exit; }
fclose($fp); 
?>

Achja ... und zwar kenne ich das bei PAFNET.de - the meetingplace
wenn ihr da mal draufklickt, seht ihr, wie eine Seite aufgeht auf der Dann steht, dass man auf einen Server weitergeleitet wird.
Das hätte ich auch gerne. Hab das selber versucht, also den Code oben mit einem normalen HTML-Code verknüpft, geht aber leider nicht ;(
 
Zuletzt bearbeitet:
Das muss so heisen:

PHP:
$fp = fsockopen("http://www.hesoyam.freeweb7.com/");

(, port ist also weggelassen)

Der Code sollte jetzt testen ob $fp einen Wert hat oder NULL ist. ist $fp gleich NULL, so konnte der Server nicht erreicht werden. Das !-Zeichen negiert das Ganze, wenn der Server also nicht erreichbar ist wird auf
PHP:
Location: http://hesostein.he.funpic.de/David/
gelinkt. Wenn nicht auf den anderen.

Du könntest ja auch mal etwas ausgeben mit echo, so wie FoxMorayn es vorgeschalgen hat. Dann müsstest du ja sehen ob es geht.

 
PHP:
ini_set('default_socket_timeout' 2);

so kannst du das timeout limit auf 2 sekunden stellen, wenn der server also nach 2 sekunden nicht erreicht wurde dann ist er nicht erreichbar ^^ einen wert niedriger als 2 würde ich nicht wählen da jeder server mal n bissel länger zum antworten brauchen kann.

Ps: NULL? wenn da was fehlschlägt wird FALSE zurück gegeben!
 
@Slibbo: Hast ja Recht der gibt False zurück ;)

Ansonsten wegen der Meldung wegen Weiterleitung und so, möglicherweise könnte man das so machen: (Ist sicher nicht die beste Lösung, sagt mir wenns was besseres gibt)

Auf der index-Seite steht:

Sie werden in 5 Sekunden weitergeleitet...

und im head der html-datei steht:

Code:
<meta http-equiv="refresh" content="5; URL=index2.php">

in der index2 steht dann der besprochene php-Code
 
ich gehe mal davon aus, dass der php teil funktioniert.
die ladezeit, könnte man mit ajax überbrücken, oder die abfrage komplett mit ajax gestallten.
 
Kurze Frage nochmal ... ehm wo muss ich denn
PHP:
ini_set('default_socket_timeout' 2);
einfügen?
Am Anfang denk ich mal, aber ich bin mir da nicht so sicher ^^

Achja und danke an alle für die viele Hilfe, das ist hier echt die beste Community in der ich je war und in der ich warscheinlich je sein werde ^^
 
wo ist egal, hauptsache über den fsockopen befehl ^^
praktikabler weise packt man das natürlich da hin wo man das braucht damit man sowas schnell wieder findet ^^
 
Da kommt aber bei mir son komischer fehler

Quelltext:
PHP:
<?php
   ini_set('default_socket_timeout' 3); 
$fp = fsockopen("http://www.hesoyam.freeweb7.com/");
if(!$fp) {
    header("Location: http://hesostein.he.funpic.de/David/");
    exit; }
else {
    header("Location: http://www.hesoyam.freeweb7.com/");
    exit; }
fclose($fp);
?>
Und der Error
HTML:
Parse error:  syntax error, unexpected T_LNUMBER in /home/www/cwcity/hosting/h/e/hesostein/htdocs/David/Redirecting/index.php on line 19
????

Zeile 19 is die Zeile mit dem
PHP:
   ini_set('default_socket_timeout' 3);

____EDIT*

Was ich noch dazuwissen möchte.

Ich habe, wie mir ... mist jetzt kann ich den Namen nicht sehen ^^ ... ein User geraten hat, eine Seite angelegt, die an meine fsockopen-Seite weiterleitet gebaut.

Ich habe dort ein Bild (
loading.gif
)
Dieses Bild soll aber im Vordergrund Zentriert stehen ... derteit steht es wie man hier sehen kann,
Colombia Unida - Powered by CO.CC
im Footer ganz unten ... da gefällt es mir aber nicht und da passt es auch nicht hin.
Über CSS geht das ja, aber ich weiss leider nur wie man es mit position:absolute hinbekommt und das sieht eher bescheiden aus.
Ich weiss, das ich hiermit in der falschen kategorie bin, aber wegen so einerm kinkerlitzchen gleich nen neuen threat aufzumachen ... also da werd ich aj vorher noch gesperrt wegen spam ^^
 
Zuletzt bearbeitet:
PHP:
ini_set('default_socket_timeout', 3);



du hast da ein , vergessen ^^
 
um das bild zu zentrieren musst du es in einen tag packen, der 100% breite hat und diesem tag text-align:center; geben.
 
ja, wie ich des Zentrieren kann, dass weiss ich auch, aber danke ^^

nach längerem überlegen bin ich dann auch zum Schluss gekommen, dass es besser ist, das Bild auch wirklich nur zu zentrieren und nicht das Bild vor der gesamten Schrift (überdeckend) im Zentrum des Bildschrims zu stellen, da dass wohl etwas doof aussehe ...
Danke an Slibbo wegen dem , ^^
 
Zurück
Oben