Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um sich an der Web-Site anzumelden:
 
Thema ohne neue Antworten

PHP Nuke 6.0 Problem


Autor Nachricht
Verfasst am: 18.04.2003 [09:06]
Atze
Themenersteller
Dabei seit: 09.11.2002
Beiträge: 81
Ich nutze seit neustem das php Nuke Portalsystem 6.0 auf meiner seite.

Ohne etwas am script zu ändern lief es 3 Wochen super, und plÖtzlich tauchte häßliche MYSQL Fehler auf.

Kann mal jemand vorbeischauen.
<a href="http://www.schwabenpartys.de" target="_blank">http://www.schwabenpartys.de</a>

Vorallem auf der Statseite und in den Links habe ich probleme.
Verfasst am: 18.04.2003 [10:51]
Robbes
Dabei seit: 02.03.2002
Beiträge: 2657
In der Fehlermeldung steht doch was man machen muss... Einfach in mainfile.php Zeile 565 und in der block-Old_articles.php Zeile 58 ändern, weg ist der Fehler. Da wird wohl die Funktion [tt]<a rel="nofollow" href="outbound.php?url=http://www.php.net/manual/de/function.setlocale.php" target="_blank">setlocale()</a>[/tt] mit einem String im ersten Parameter aufgerufen, da soll man jedoch Konstanten einsetzen.
Verfasst am: 18.04.2003 [12:15]
joe
Dabei seit: 07.04.2002
Beiträge: 1225
Soweit ich das gesehen habe, sind das ja sowieso alles "nur" Warnings bezüglich veralteter Nutzung der Funktion [tt]setlocale()[/tt]. Das wird wohl in einem der nächsten Updates vom Nuke gelößt werden.

Bis dahin kannst Du einfach als Work-Around an zentraler Stelle (z.B. in einer Funktionsbibliothek, die überall eingebunden wird), ein [TT]error_reporting(0);[/TT] reinhängen. Damit unterdrückst Du jegliche Ausgabe von Interpreter-Fehlermeldungen (Warnings, Errors usw.). Wenn Du nicht alle Fehlermeldungen unterdrücken willst, dann schau Dir mal <a rel="nofollow" href="outbound.php?url=http://www.php.net/manual/en/function.error-reporting.php" target="_blank"> diese</a> Seite an. Du kannst mit AND- und OR-Operationen bestimmte Meldungen ein-/ausblenden.

cu
Joe

while(!asleep()) sheep++;
Verfasst am: 18.04.2003 [12:20]
Atze
Themenersteller
Dabei seit: 09.11.2002
Beiträge: 81
????

Ups, erstmal Dankeschön, muß aber gestehen, das sagt mir alles nichts.

[b]Soweit ich das sehe, hat also mein Hoster eine Neue PHP Version aufgespielt, auf denen mein Nuke nicht mehr komplett läuft.[/b:34493cce9c]

Wie muß ich die besagte Zeile abändern, oder wie baue ich in die (index.php?) diese Fehlerunterdrückung ein?
Verfasst am: 18.04.2003 [15:12]
joe
Dabei seit: 07.04.2002
Beiträge: 1225
<!--quoteo--><div class='quotetop'>ZITAT</div><div class='quotemain'><!--quotec-->[i]Original von Atze [/i:3609c6cdff]
[b]Soweit ich das sehe, hat also mein Hoster eine Neue PHP Version aufgespielt, auf denen mein Nuke nicht mehr komplett läuft.[/b:3609c6cdff]

Wie muß ich die besagte Zeile abändern, oder wie baue ich in die (index.php?) diese Fehlerunterdrückung ein?<!--QuoteEnd--></div><!--QuoteEEnd-->

Ja, wahrscheinlich hat Dein Hoster ne neuere PHP-Version installiert oder bei der alten die Grundkonfiguration in Bezug auf das Error-Reporting geändert. Laufen tut Dein Nuke allerdings weiterhin vollkommen normal. Warnings sind - wie's der Name schon sagt - nur Warnungen, daß Du (naja, in diesem Fall nicht Du, sondern die Entwickler von PHPNuke) z.B. veraltete (deprecated) Funktionsaufrufe benutzt, die sehr wahrscheinlich in einer der nächsten Versionen in der Form nicht mehr unterstützt werden. Das ist also mehr als Hinweis zu sehen: "änder Dein Script oder es wird mit kommenden PHP-Versionen nicht mehr funktionieren"

Die Zeile zur Unterdrückung der Fehlermeldungen könntest Du an verschiedenen Stellen einbauen. Möglichst zentral wäre natürlich die beste Stelle. Du hast also im Endeffekt zwei Möglichkeiten:
<ol type='1'>[*]Du durchstöberst Deine Site und schreibst Dir alle Seiten (Dateinamen) auf, die ein User irgendwie erreichen kann. Danach fügst Du in jeder dieser Dateien am Anfang [TT]error_reporting(0);[/TT] ein.
oder
</li>[*]Du schaust nach, ob alle Scripts dieselbe Datei includen und fügst die Zeile in dieser Datei ein. Falls es eine Datei wie config.php o.ä. gibt, ist die Wahrscheinlichkeit recht groß, daß diese von allen Scripts benutzt wird.</li></ol>
Achja: die Zeile mußt Du (logischerweise) jeweils möglichst weit vorne in der Datei einfügen und auf jeden Fall irgendwo zwischen "<?" bzw. "<?php" und "?>".

cu
Joe

while(!asleep()) sheep++;
Verfasst am: 19.04.2003 [08:16]
Atze
Themenersteller
Dabei seit: 09.11.2002
Beiträge: 81
Danke Euch hat geklappt, dann werde ich mich mal auf die Suche nach einem Update für das Nuke machen.