anpera.net
http://anpera.homeip.net/phpbb3/

PHP 5.1.2 und die nötigen Änderungen...
http://anpera.homeip.net/phpbb3/viewtopic.php?f=25&t=2167
Seite 1 von 2

Autor:  Piercy [ Sa 28 Jan, 2006 12:25 ]
Betreff des Beitrags:  PHP 5.1.2 und die nötigen Änderungen...

Aloha, ich habe mir mal gedacht, nen Thread aufzumachen um die nötigen Änderungen zu Posten, die durch das UPDATE auf PHP 5.1.2 leider notwenig sind.

Sollten Eure Server auch so funktionieren, bitte diese Änderungen nicht machen.

common.php, list.php, about.php, configuration.php, create.php, dag.php, dragon.php, gardens.php, gypsy.php, houses.php, inn.php, login.php, prefs.php, pvp.php, rebirth.php, referers.php, setnewday.php, shrine.php, superuser.php, user.php, viewpetition.php
finde: (mehrmals vorhanden)

$this->bbcode_second_pass_code('', 'strtotime(date("r")')

ersetze mit:

$this->bbcode_second_pass_code('', 'strtotime(date("c")')


Um alles übergreifend und aufeinmal ersetzen zu können, empfehle ich TextPad.

Tut:

Bitte macht ein komplettes Backup von Eurem Server bevor ihr nun weiterliest.

Öffne alle PHP Dateien mit TextPad.

Bild

Danach sollte es ungefähr so aussehen:

Bild

So. Nun sollte man den Reiter "Suche" aufsuchen und auf "Ersetzen" klicken.

Bild

So. In den Textfeld "Suche nach:" schreibt Ihr jetzt "strtotime(date("r")" rein.

Und in dem Textfeld "Ersetzen durch:" gebt ihr jetzt "strtotime(date("c")" ein.

Und wählt bitte auf den Radiobutton "Alle Dokumente".

Bild

Einfach nur noch auf "Alle ersetzen" klicken und fertig ist das Mondgesicht ;)

Bild

Ich hoffe ich konnte allen Helfen.

logde.php
finde:

$this->bbcode_second_pass_code('', 'foreach($titles AS $this) {
if (strtolower($this[0])==$cleartitle || strtolower($this[1])==$cleartitle) {
$falsetitle = true;
break;
}
}')

ersetze mit

$this->bbcode_second_pass_code('', 'while (list($key,$val)=each($titles)){
if (strtolower($key[0])==$cleartitle || strtolower($key[1])==$cleartitle) {
$falsetitle = true;
break;
}
}')

MfG

Piercy

Autor:  Vodi [ Sa 28 Jan, 2006 13:30 ]
Betreff des Beitrags: 

super klappt alles perfekt

so is fein,
so muss das sein :D

thx Piercy^^

Autor:  Kevz [ Sa 28 Jan, 2006 13:35 ]
Betreff des Beitrags: 

Schön und gut nur leider falscher Foren bereich ;)

Autor:  Death Lord [ Sa 28 Jan, 2006 13:59 ]
Betreff des Beitrags: 

Also KEvz des doch nun wirklich mehr als egal xD kann man doch verschieben lassen;) aber danke für die hilfe nett wäre wennu noch nen link posten würdest wo man das eine programm her bekommt....manche können mit goggle nit umgehn ;)

Autor:  Piercy [ Sa 28 Jan, 2006 14:01 ]
Betreff des Beitrags: 

http://www.textpad.com/download/

Autor:  sami [ So 29 Jan, 2006 12:49 ]
Betreff des Beitrags: 

Vielen Dank..

*thumbs up* :)

Autor:  Devilzimti [ So 29 Jan, 2006 14:09 ]
Betreff des Beitrags: 

Hmm nettes Programm :D

Autor:  anpera [ Mo 30 Jan, 2006 14:09 ]
Betreff des Beitrags: 

Jap, laut PHP5 Changes-Log wurde mal wieder an strtotime() rumgefummelt, sodass jetzt strtotime(date('r')); aus welchem Grund auch immer nicht mehr funktioniert.

Wenn ich Zeit hab, werd ich in den nächsten Tagen mal versuchen, PHP 5.1.2 hier aufzuspielen und einen Fix zu finden, der auch PHP 4 kompatibel ist. Der obige Fix ist es nicht, da date('c') erst seit PHP 5 existiert.
Hoffentlich wird der Fix dann in PHP 5.1.3 auch noch funzen bzw. die ganzen Änderungen nicht wieder unnötig machen, wie das schonmal wegen genau der selben Funktion passiert ist :roll:

Autor:  Auric [ Mo 30 Jan, 2006 16:36 ]
Betreff des Beitrags: 

Bez Kompatiblität:
Lönnte man das nicht einfach in eine if-Abfrage stecken, die auf die Version prüft und dann die entsprechende Funktion ausführt?

Autor:  Chaosmaker [ Mo 30 Jan, 2006 18:21 ]
Betreff des Beitrags: 

Der NOW()-Bug bestand ja nur bis PHP5.0.2, also dürfte es damit wieder gehn.
Alternativvorschlag: strtotime(date('Y-m-d H:i:s').' CET')

Autor:  Horus [ Sa 04 Feb, 2006 19:36 ]
Betreff des Beitrags: 

Sorry aber ich nutz diesen in den falschen Themenbereichthread jezz ma mit einer frage aus^^

Auf emienm Webserver war bis vor kurzem noch MySQL 3.x installiert, nix sonderlich hohes aber alles lief perfekt. Es war schnell und so weiter. Dann hat mein Hoster die DB geupdatet und auf 4.x gebracht, naja, erst gab se probleme, dass er die accounts net gefunden hat und dann hat er keine Ä's mehr akzeptiert. Alles nicht sonderlich schlimm, nach na zeit hats dann geklappt. Aber seit diesem Zeitpunkt ist mein Server letzter zeit ziemlich lahm, und ich kanns mir net erklären, wisst ihr vlt woran das liegen könnte oder das vlt was eignestellt sein kann, was die geschwindigkeit etwas abbremst?^^


Und nochma sry, dass ichs hier reinposte^^ nur mein i-net frekkt die ganze ezit auch ab und ich bin froh, dass es überhaupt vlt jezz ma abgeschcikt wird und rein kommt^^

Autor:  Piercy [ So 05 Feb, 2006 11:25 ]
Betreff des Beitrags: 

So ich mach mich jetzt mal an die logs.php dran. Da die foreach-funktion ja bei 5.1.2. nicht mehr jeden schlüssel eines arrays durchläuft. Wenn einer schon eine funktioniernde logs.php hat, dann schreibt das bitte hier rein^^

Autor:  Eliwood [ So 05 Feb, 2006 11:39 ]
Betreff des Beitrags: 

Piercy hat geschrieben:
So ich mach mich jetzt mal an die logs.php dran. Da die foreach-funktion ja bei 5.1.2. nicht mehr jeden schlüssel eines arrays durchläuft. Wenn einer schon eine funktioniernde logs.php hat, dann schreibt das bitte hier rein^^


[php]foreach ($vals AS $this) {[/php]

Ersetzen mit

[php]while(list($key,$val) = each($vals)) {[/php]


Und im folgenden jedes $this mit $val ersetzen ;)

Autor:  Chaosmaker [ So 05 Feb, 2006 11:47 ]
Betreff des Beitrags: 

Besser:
[php]foreach ($vals AS $val) { [/php]
Spart eine Variable und ist performanter. :P

Autor:  azraeldemon [ Do 31 Aug, 2006 22:14 ]
Betreff des Beitrags: 

Chaosmaker hat geschrieben:
Besser:
[php]foreach ($vals AS $val) { [/php]
Spart eine Variable und ist performanter. :P


und wirft bei meinem server ne fehlermeldung aus wenn ich multis nach schaun will!

Warning: Variable passed to each() is not an array or object in /is/htdocs/wp1054914_R0CVX3A1A2/www/mystara/logs.php on line 331

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1054914_R0CVX3A1A2/www/mystara/logs.php:331) in /is/htdocs/wp1054914_R0CVX3A1A2/www/mystara/common.php on line 62

logs.php Eliwood ausführung das gleiche kommt aber auch mit chaosmakers variante!
ab line 330 bis line 332

while(list($key,$val) = each($vals)) {
$tmpstr .= ('<tr><td><input type="checkbox" name="userid[]" value="'.$val['acctid'].'"></td>

common.php

line 61 bis line 63

if (isset($encode)){
header("Content-Encoding: $encode");
$encode_size = strlen($input);

Autor:  Taikun14 [ Fr 01 Sep, 2006 14:28 ]
Betreff des Beitrags: 

Ich würde sagen du hast vor <?php oder nach ?> ein Leerzeichen. Sonst is ja eigentlich alles richtig^^

Autor:  Eliwood [ Fr 01 Sep, 2006 14:43 ]
Betreff des Beitrags: 

Taikun14 hat geschrieben:
Ich würde sagen du hast vor <?php oder nach ?> ein Leerzeichen. Sonst is ja eigentlich alles richtig^^


Nicht alles liegt an Leerzeichen. Diesmal ist der Fehler sogar offensichtlich: Eine Warnung, von PHP ausgegeben, verursacht diesmal die weiteren Fehler anstelle eines Leerzeichens. =P

Zitat:
Warning: Variable passed to each() is not an array or object in /is/htdocs/wp1054914_R0CVX3A1A2/www/mystara/logs.php on line 331


Sogar sehr eindeutig. Übersetzt: "Die Variable, die als Argument von each() angegeben wurde, ist weder ein Array noch ein Objekt".

Naja. Da hilft ein Workaround:

[php]if(is_array($vals)) {
foreach($vals as $val) {
#...
}
}[/php]

Autor:  azraeldemon [ Fr 01 Sep, 2006 23:06 ]
Betreff des Beitrags: 

danke jetzt funzt es wunderbar!

Autor:  Feena [ Sa 12 Mai, 2007 17:15 ]
Betreff des Beitrags: 

Hi ich hab mir heute PHP Version 5.1.6 raufgemacht mit .htaccess, und nun habe ich auch daselbige Problem das wenn man sich einloggen will das es nicht geht weil dann immer kommt das die Session abgelaufen war. Habe gedacht das diese änderungen hier helfen könnten und hab sie gemacht, aber nix hat sich geändert immernoch kommt das die session abgelaufen sei. Ich hoffe ihr könnt mir helfen da ja jetzt nun niemand auf mein Server spielen kann.

Gruss
Feena

Autor:  azraeldemon [ Sa 12 Mai, 2007 20:09 ]
Betreff des Beitrags: 

salve,

du musst in sämtlichen dateien das date("r") durch ein date("c") ersetzen

so war es bei uns zumindest!

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/