Fehlerhafte Scriptverarbeitung unter neuer php-Version

Hallo bplaced-Gemeinde,

unter der Adresse http://www.foto-werk-stadt.bplaced.net/zeit/zeit.php habe ich ein Script laufen, welches PHP-Seitig die Serverzeit ausliest, zur dynamischen Verarbeitung an Javascript übergibt und anschließend via HTML anzeigt.

Seit kurzem funktioniert dieses Script auf bplaced nicht mehr. Die gestrige Prüfung auf zwei alternativen Webspaces bescheinigte hingegen die tadellose Funktionstüchtigkeit.

Soweit ich meinerseits den Sachverhalt prüfen konnte, wird unter bplaced die Serverzeit korrekt ausgelesen, bei eingeschaltetem Javascript ein Zeilenumbruch erzeugt sowie vorhandener Text berücksichtigt und via HTML ausgegeben. Weshalb der eigentliche Inhalt - die aktuelle Zeit - nicht mehr wiedergegeben wird, bleibt mir hiernach schleierhaft.

In meiner Not wandte ich mich zunächst direkt an bplaced, jedoch konnte mir von deren Seite bei der Lösung des Problemes nicht weitergeholfen werden.

Im Folgenden habe ich hier den gesamten Code dieser Datei gepostet. Es handelt sich hierbei um einen Fremd-Code, welchen ich für meine Bedürfnisse noch ein wenig ausgebaut habe. Wie es richtig aussehen müsste, ist unter meinem ehemaligen Webspace http://fotowerkstadt.fo.ohost.de/zeit/zeit.php anschaulich demonstriert.

<script language="php">
$Javascriptzeit = date("Y, n, j, G, i, s");
</script>

<html>
<head>

<script language="JavaScript">
<!--
var Serverzeit = new Date(<?php echo $Javascriptzeit; ?>);
var Wochentag = (<?php echo date("w"); ?>);

function UhrzeitAnzeigen()
{
if(!document.all && !document.getElementById)
{
return;
}

var Tag = Serverzeit.getDate();
var Monat = Serverzeit.getMonth();
var Jahr = Serverzeit.getFullYear();

var Stunden = Serverzeit.getHours();
var Minuten = Serverzeit.getMinutes();
var Sekunden = Serverzeit.getSeconds();

Serverzeit.setSeconds(Sekunden+1);

var Tagesname = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");

if (Stunden == 0 && Minuten == 0 && Sekunden == 0)
{
if (Wochentag < 6)
{
Wochentag = Wochentag + 1;
}
else
{
Wochentag = 0;
}
}

var Monatsname = new Array("Dezember", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November");

if(Monat == 0)
{
Jahr = Jahr - 1;
}

if(Stunden <= 9)
{
Stunden = "0" + Stunden;
}

if(Minuten <= 9)
{
Minuten = "0" + Minuten;
}

if(Sekunden <= 9)
{
Sekunden = "0" + Sekunden;
}

Uhrzeitanzeige = Tagesname[Wochentag] + ", " + Tag + ". " + Monatsname[Monat] + " " + Jahr + " - " + Stunden + ":" + Minuten + ":" + Sekunden;

if(document.getElementById)
{
document.getElementById("Uhrzeit").innerHTML = Uhrzeitanzeige;
}
else if(document.all)
{
Uhrzeit.innerHTML = Uhrzeitanzeige;
}

setTimeout("UhrzeitAnzeigen()", 1000);
}
//-->
</script>

<title>Uhrzeit des Webservers mit Javascript und PHP dynamisch anzeigen</title>

</head>

<body onLoad="UhrzeitAnzeigen();">

<script type="text/javascript">
if (navigator.javaEnabled()) 
{
  document.write('<br><br>Nach MEZ / MESZ ist jetzt: ');
}
</script>

<span id="Uhrzeit"></span>

</body>
</html>

Sicherlich ist es recht abwegig, den Fehler der neuen, durch bplaced installierten PHP-Version zuzuschreiben. Fakt ist jedoch, dass offenbar durch diese das hier beschriebene Unheil seinen Lauf genommen hat.

Völlig ratlos bin ich nun mit meinem “Latein” am Ende, und auf Eure Hilfe angewiesen.
Kennt jemand das Problem, bzw. einen Lösungsansatz zu dessen Beseitigung?

Freundliche Grüße aus Kopenhagen,

Tobias

<script language="php">
$Javascriptzeit = date("Y, n, j, G, i, s");
</script>

das ist keine gute Methode, um PHP-Code einzubinden.

Versuch es doch mal so:

Hallo michi,

vielen Dank für Deine rasche Antwort.
Von mir programmierter Code mit der Kurzschreibweise [quote] <?php...?> [/quote] funktionierte nicht immer reibungslos. Deshalb (und auch der Übersichtlichkeit wegen) hatte ich mich für die längere Schreibweise entschieden.

Ich habe den Code nach Deinem Vorschlag korrigiert. Das Problem der fehlenden Zeitanzeige konnte damit jedoch nicht gelöst werden.

MfG, Tobias

Wenn du mal in den Quellcode der neuen Seite schaust, siehst du, dass da alle Zeilenumbrueche fehlen.

Dadurch bezieht sich jetzt dummerweise der einleitende JavaScript-Kommentar nach dem -Tag auf das ganze nachfolgende, so dass davon nichts mehr ausgefuehrt wird.
Und da deshalb auch die Funktion UhrzeitAnzeigen nicht definiert wurde, meldet der Browser das dann beim Versuch, die ueber onload im Body-Element aufzurufen, als Fehler.

Versuch erst mal, die Datei neu hochzuladen - und waehle dabei in deinem FTP-Programm als Uebertragungsmodus explizit ASCII aus.

Hallo chrisb,

vielen Dank für Deinen wertvollen Hinweis. Dieser hat das Problem behoben.

MfG, Tobias

[EOF]