Umleitungseite bei Nichtfunktion der DS

Status
Für weitere Antworten geschlossen.

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
Gehostet ist unsere HP bei 1+1.
Verschiedenen Seiten unserer HP sind über Frames in die DS zusätzlich eingebunden.
Nun schaltet sich die DS (gewollt) von-bis aus und ist dann natürlich über die Umleitung von selfhost nicht zu erreichen.

Gibt es eine Lösung, dass in der Zeit, wo die DS "Nachtruhe" hält, eine Infoseite angezeigt wird, als Ersatz sozusagen, bis die DS Morgens wieder aus dem Schlaf erwacht?
Würde mich für einen Lösung(sansatz) freuen - Danke.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
wenn dies Ein- und Auszeiten immer fix sind, dann kannst du dir z.B. mit php ein Abfrage basteln und in der fraglichen Zeit eine Infosseite anzeigen.
 

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
Danke für den Tip, doch leider bin ich nicht sooo fit, was php betrifft.

Würde mich über ein kleinen Lösungsanstz freuen, wenn es nicht so viel Mühe mach ;) - und wo mass dann die *.php-Seite gehostet werden, bei selfhost oder bei 1+1, wo die Urseiten stehen?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
PHP:
$anfang = 17*3600; //Ausschaltzeit 17 Uhr
$ende = 6*3600 // Einschaltzeit 6 Uhr

$jetzt = date('G:i',strtotime('now'));
$t = explode(':',$jetzt);
$jetzt = t[0]*3600+t[1]*60

if($jetzt >= $anfang || $jetzt <= $ende) {
  //DS ist ausgeschaltet irgendeine Meldung anzeigen
}else{
  //DS sollte laufen also normale Webseite anzeigen
}
so mal als Codeschnippel. Sollte so laufen, kann es aber nicht testen. Im if/else Konstrukt musst du natürlich noch deine gewünschten Aktionen angeben.
 

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
$anfang = 17*3600; //Ausschaltzeit 17 Uhr
$ende = 6*3600 // Einschaltzeit 6 Uhr

$jetzt = date('G:i',strtotime('now'));
$t = explode(':',$jetzt);
$jetzt = t[0]*3600+t[1]*60

if($jetzt >= $anfang || $jetzt <= $ende) {
//DS ist ausgeschaltet irgendeine Meldung anzeigen
}else{
//DS sollte laufen also normale Webseite anzeigen
}

So kommt also bei if und else in die gescheifte Klammer die jeweilige http-Adresse?
Und der code wird in eine PHP - Name ist egal?

<?php
Dein Codebeispiel
?> gesetzt?

Hab noch eine andere Variante gefunden - evtl. funktioniert die auch?

Quellcode

<?php
if ($url)
{
header("Location: $url");
exit;
}

echo "<html><head>\n";
echo "<title>URL-Redirector</title></head>";

echo "<form action=\"$PHP_SELF\">\n";
echo "URL:\n";
echo "<input type=\"text\" size=\"40\" name=\"url\" value=\"http://\">\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Start\">\n";
echo "</form>\n";

echo "</html>";
?>
 
Zuletzt bearbeitet:

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
Ich glaube mich zu erinnern, dass bei 1+1 keine externen (fremde) PHP-Script lauffäig sind - Joomla läuft auch nicht.
Damit dürfte diese Möglichkeit der Weiterleitung so nicht funktionieren. :confused:

Oder kann ich das Script in einer *.html-Seite einbetten?
Gibt es noch andere Möglichkeiten?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wieso sollten keine PHP Scripte laufen in deinem Webspace? Das ist doch gerade der Sinn eines Webspaces, dass man Scripte laufen lassen kann.
Ich würde sowas probieren
PHP:
$anfang = 17*3600; //Ausschaltzeit 17 Uhr
$ende = 6*3600 // Einschaltzeit 6 Uhr

$jetzt = date('G:i',strtotime('now'));
$t = explode(':',$jetzt);
$jetzt = t[0]*3600+t[1]*60

if($jetzt >= $anfang || $jetzt <= $ende) {
  //DS ist ausgeschaltet irgendeine Meldung anzeigen
echo "Zur Zeit ist die Seite leider nicht online. Bitte probiere es zwischen 06 Uhr und 17 Uhr";
}else{
  //DS sollte laufen also normale Webseite anzeigen
}
Leg dieses Script als index.php in den Root deines Webspaces. Im else-Teil musst du dann noch deine Seite einbinden, die angezeigt werden soll.
 

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
@jahlives, ehe wir lange darüber philosophieren, ob es geht oder nicht, probier ich es heute Abend einfach aus und bedanken mich erst einmal. ;)

Dennoch bitte ein kleine Rückfrage. Wie verhält es sich hinter "else"? Wird da die Umleitung zu selfhost.de eingeschrieben, wenn "ja" wie,
weil - wenn ich schreibe: whttp://xyz.selfhost.pro ich mit " // " die Zeile auskommentiere?!
 
Zuletzt bearbeitet:

PatrickS3

Benutzer
Mitglied seit
18. Mrz 2010
Beiträge
547
Punkte für Reaktionen
0
Punkte
42
Wieso sollten keine PHP Scripte laufen in deinem Webspace? Das ist doch gerade der Sinn eines Webspaces, dass man Scripte laufen lassen kann.

Nur zur Info. Nicht jeder Webspace Anbieter erlaubt php Scripte.

Bei T-Offline ist z.B. erst ab der Homepage Basic php möglich.
 

Steini

Benutzer
Mitglied seit
22. Mrz 2010
Beiträge
423
Punkte für Reaktionen
1
Punkte
0
In den ELSE-Teil schreibst du:
PHP:
Header('Location: http://xyz.selfhost.pro');
exit;
Das "//DS sollte laufen also normale Webseite anzeigen" kannst du löschen.
 

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
Euch ein Dank - wie gesagt, ich werde es heute Abend mal probieren, ob es funktioniert.
 

Steini

Benutzer
Mitglied seit
22. Mrz 2010
Beiträge
423
Punkte für Reaktionen
1
Punkte
0
Damit's auch wirklich funktioniert, hier das "aufgebohrte" Skript inkl. Funktion...

Aufrufen mit:

PHP:
<?php

steinis_nas_redirect('17:30', '06:45');

?>
...wobei der erste Wert die Einschalt- und der zweite die Ausschaltzeit ist. Die passende Funktion ist dann diese:

PHP:
function steinis_nas_redirect($e='', $a='', $tz='Europe/Berlin') {
date_default_timezone_set($tz);

$e = explode(':', $e);
$e = mktime($e[0], $e[1], 0, 1, 1, 1);
$a = explode(':', $a);
$a = mktime($a[0], $a[1], 0, 1, 1, 1);

$j = mktime(date('H'), date('i'), 0, 1, 1, 1);

if ($e>$a) $a += 60*60*24;

if ($j>=$e and $j<=$a) {
echo 'Zur Zeit ist die Seite online. Bitte beachten: Von '.date('H:i', $a).' Uhr bis '.date('H:i', $e).' Uhr steht diese Website nicht zur Verfügung...';
#Header('Location: http://xyz.selfhost.pro/');
exit; 
} else {
echo 'Zur Zeit sind wir offline. Bitte versuchen Sie es in der Zeit von '.date('H:i', $e).' Uhr bis '.date('H:i', $a).' Uhr...';
}
}
Der dritte Parameter $tz bezeichnet die Zeitzone, in der sich dein NAS befindet. Das dürfte bei den meisten von uns die korrekte Zeitzone sein, solltest du dich aber auf einem anderen Kontinent resp. Zeitzone befinden, trägst du einen von diesen Werten ein...
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ich würde mal noch die Bedingung überdenken, die dürfte so nicht immer treffen: Wenn die Uhrzeit z.B. 01:00 ist, dann gibt das Script aus die Seite wäre online. Denn 1 dürfte kleiner sein als $a und damit wir deine AND Bedingung nicht erfüllt werden.
Das Script funzt solange die Uhrzeit nicht über Mitternacht geht
 

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
@Steini, danke für die Mühe, ich weiß aber wirklich noch nicht, ob das bei 1+1 alles läuft - ich bin da skeptisch.

Aber dennoch eine Frage.
wo kommt der 1. (oberen) Codeteil hin?
Der 2. (untere) als index.php auf den Server in root?
 

Steini

Benutzer
Mitglied seit
22. Mrz 2010
Beiträge
423
Punkte für Reaktionen
1
Punkte
0
Ich würde mal noch die Bedingung überdenken [...]
Uuuuuhh, böser Fehler... :eek: Danke für den Hinweis. Das passiert, wenn man freestyle codet... So, hab's fehlerbereinigt nochmal oben reinkopiert.

[...] ich weiß aber wirklich noch nicht, ob das bei 1+1 alles läuft - ich bin da skeptisch. [...]
Wenn du ein Hosting-Paket hast, in welchem PHP als Feature beinhaltet ist, dann läuft auch dieses Skript. Und falls kein PHP zur Verfügung steht, so kannst du das Ganze auch als JavaScript in eine (X)HTML-Seite packen. Sofern der Besucher JavaScript nicht deaktiviert hat, würde das dann analog zu obigem Skript funktionieren.

[...] wo kommt der 1. (oberen) Codeteil hin? [...]
Du packst beides zusammen in die index.php - ich hab's der Verdeutlichung halber gesplittet.

[...] Der 2. (untere) als index.php auf den Server in root? [...]
Wie gesagt: Den Aufruf steinis_nas_redirect(); und die Funktion zusammen in der index.php abspeichern.
 

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
Nun habr ihr alle an einer Lösung gebastelt, welche nun doch nicht funktioniert, da ein Servertest mit einer "Hallo Welt"-php folgende Meldung zurück gibt:
ZUGRIFF NICHT ERLAUBT
Die angeforderte Seite darf nicht angezeigt werden.

Ich hatte es mir fast gedacht. Da ist 1und1 etwas eigen.

Ich habe aber noch Webspace bei 1blu - ich könnte ich die Umleitung installieren, da die php-Scripte zulassen. Da mach ich mich mal an die Arbeit und melde mich dazu wieder.
 
Zuletzt bearbeitet:

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
Also folgender Sachstand: Ich habe folgende index.php auf den 1blu-Webspace umgeleitet und die Links entsprechend geändert.

PHP:
<?PHP
  
parthenaue25_redirect('16:30', '06:45');

function parthenaue25_redirect($e='', $a='', $tz='Europe/Berlin') {
date_default_timezone_set($tz);

$e = explode(':', $e);
$e = mktime($e[0], $e[1], 0, 1, 1, 1);
$a = explode(':', $a);
$a = mktime($a[0], $a[1], 0, 1, 1, 1);

$j = mktime(date('H'), date('i'), 0, 1, 1, 1);

if ($e>$a) $a += 60*60*24;

if ($j>=$e and $j<=$a) {
echo 'Zur Zeit ist die Seite online. Bitte beachten: Von '.date('H:i', $a).' Uhr bis '.date('H:i', $e).' Uhr steht diese Website nicht zur Verfügung...';
#Header('Location: http://parthenaue25.selfhost.pro/photo');
exit; 
} else {
echo 'Zur Zeit sind wir offline. Bitte versuchen Sie es in der Zeit von '.date('H:i', $e).' Uhr bis '.date('H:i', $a).' Uhr...';
}
}  
?>

Wenn die DS an ist funktioniert die Weiterleitung ohne Probleme. Wobei die Zeit (ist im Moment schon abgelaufen) keine Berücksichtigung findet.
Wenn die DS aber aus ist und die Zeit wurde korrekt abgeändert (16:30) dann kommt die Fehlermeldung "Diese Webseite kann nicht angezeigt werden".
Also nicht der Hinweis auf die Erreichbarkeit.

Könnte man evtl. die *.php so umschreiben, dass zwischen einer Zeit "von -bis" die DS-Umleitung startet und die Photos angezeigt werden und in der restlichen Zeit eine andere (alternativ) html-Webseite startet (die Hosting-Lage ist mir dabei egal)? Der Grund ist die Formatierung der Seiten mit gleichen Layout. ;)
 
Zuletzt bearbeitet:

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
Nun habe ich mich doch für ein Java-Skipt entschieden. Es funktioniert ohne Probleme.

PHP:
<script type="text/javascript">
  //<![CDATA[
    var curDate = new Date()   //Neues Datumobjekt erzeugen
    var h = curDate.getHours()   //Stunden aus dem Datumsobjekt holen
 
    if(h >= 8 && h < 22)   //Zwischen 8 und 22 Uhr
      top.location.href = 'http://parthenaue25.selfhost.pro/photo'   //Auf seite2weiterleiten
  //]]>
</script>

Dieses Skript in den Headbereich und die html-Seite entsprechend nach meinen Wünschen gestaltet.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat