PHP Parse error - PHP-Programmierhilfe benötigt

meikotimo

Lt. Commander
Registriert
Sep. 2005
Beiträge
1.406
Hallo,

seit 2009 betreiben wir von unserem Verein eine Website, welche per CMS (Contrexx) geführt wird.
Nun haben wir seit ca. 2 Wochen das Problem, das folgende Fehlermeldung erscheint, wenn man die Website aufruft:

Fehlermeldung:
PHP:
 Parse error: syntax error, unexpected T_DOUBLE_CAST in /www/htdocs/v072665/jugend/cms/index.php on line 1907


Folgende Seite ist betroffen:

http://groenjer-jugend.de/cms/

Der Code, welche in dieser Spalte steht ist folgender:
PHP:
//-------------------------------------------------------
// parse system
//-------------------------------------------------------
$parsingtime = explode(' ', microtime());
$time = round(((float)$parsingtime[0]   (float)$parsingtime[1]) - ((float)$starttime[0]   (float)$starttime[1]), 5);
$objTemplate->setVariable('PARSING_TIME', $time);

Die vorletzte Zeite ist die Zeile 1907.



Wenn ich den Adminbereich betreten möchte, erscheint folgende Fehlermeldung:
PHP:
Parse error: syntax error, unexpected T_LNUMBER in /www/htdocs/v072665/jugend/cms/cadmin/index.php on line 476

Die betroffene Seite ist:

http://groenjer-jugend.de/cms/cadmin/


Kann mir da vielleicht jemand weiterhelfen?
Wenn weitere Informatione benötigt werden, stelle ich diese natürlich gern bereit.
 
Danke Freezedevil für deine Antwort!
Kannst Du mir da speziell helfen? bzw. was ich dort noch hinzufügen "müsste". :)
 
Der Befehl microtime() gibt die aktuelle Uhrzeit als Zeichenkette in der Form
"Mikrosekunden Sekunden" zurück. Dabei ist "Sekunden" die Anzahl der vollen
Sekunden seit Beginn der UNIX-Epoche (0:00:00, 1. Januar 1970 GMT) und
"Mikrosekunden" der Bruchteil der laufenden Sekunde, den Sie zu den vollen
Sekunden addieren müssen, um die aktuelle Zeit zu erhalten. Die beiden Werte im
Ergebnisstring sind durch ein Leerzeichen getrennt.

Durch das explode wird der String anhand von Leerzeichen als Trennzeichen in ein Array gespeichert. Du hast anschließend also ein Array welches ungefähr so aussieht:
Code:
["0.39572700", "1387132012"]

Wenn du jetzt wissen willst wie viel Zeit vergangen ist musst du die beiden Werte addieren, also sollte deine besagte Zeile so aussehen:
Code:
$time = round(((float)$parsingtime[0] + (float)$parsingtime[1]) - ((float)$starttime[0] + (float)$starttime[1]), 5);

Schau mal hier rein http://www.php.net/manual/de/function.microtime.php
Ab PHP 5 kann man sich das ganze gecaste und so sparen und einfach entsprechend true übergeben um direkt nen Float zu bekommen.

PS: Das nächste Mal selbst googlen ;). Vorgehen ist immer gleich. Was für Funktionen werden benutzt, was liefern sie zurück. Daraus lässt sich dann schon meist ganz gut ableiten was passieren soll. Wenn dann immernoch was unklar ist fragen.
 
Viel interessanter als die (wirklich triviale) Frage nach "Was ist da falsch im Code?" ist doch: Warum taucht der Fehler jetzt erst auf? Du solltest dringend mit deinen Verantwortlichen sprechen. Wende dich als erstes an den Hoster, ob er in letzter Zeit an der Server-Architektur oder den Einstellungen etwas geändert hat. Danach solltest du prüfen, wann die Datei das letzte Mal geändert wurde und von wem. Habt ihr evtl. eine Laus im Pelz?

Eines ist so sicher wie das Amen in der Kirche: PHP-Fehlermeldungen dürfen auf Produktivsystemen NIE NIE NIE NIE öffentlich sichtbar sein. Diesmal waren es triviale Informationen, beim nächsten Mal ist es evtl. ein Teil eines SQL Queries, der sensible Login-Daten oder ähnliches enthält.
 
Jepp, All-Inkl. scheint irgendwelche Arbeiten am Server vorgenommen zu haben, denn eine andere Seite, welche auch auf dem Server gehostet ist - hat den selben Fehler. Mal gucken was Die mir dazu sagen könne.

Danke schonmal!
 
All-Ink? die sollten eigentlich mehr Verstand haben... Error Reporting sollten Kunden immer aktiv An- nicht Abschalten müssen.
 
Zurück
Oben