Versionsumstellung php5.7 ---> php 8.5

Hallo auch,

ich habe ein Open-Source-Gästebuch aus dem Jahre 2010,
das mit php 5.7 gut und stabil funktioniert. Leider soll ja
das alte php 5.7 demnächst ganz abgeschaltet werden.

Ich habe heute die PHP-Version umgestellt: Von 5.7 auf
das aktuelle 8.5.

Leider funktionieren die Gästebücher jetzt nicht mehr. Diese
werden ja gerade mit PHP betrieben.

Fehlermeldung:

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in
/users/andy-enroe/www/21_info/33_guest/21_gb/functions.inc.php:26
Stack trace: #0 /users/andy-enroe/www/21_info/33_guest/21_gb/index_e.php(11):
connect() #1 {main} thrown in /users/andy-enroe/www/21_info/33_guest/21_gb/functions.inc.php on line 26

-------------------------------------------------------------------------------------

Also, die neue PHP-Version kann die Funktion „mysql_connect()“
nicht mehr korrekt aufrufen oder erkennen bzw. überhaupt finden.

Im alten Source code (für php 5.7) steht einfach nur:

connect();

Muss man diesen Befehl durch

→ mysqli_connect();

ersetzen, um auf php 8.5 zu kommen? Oder durch:

→ PDO::_construct();

Also mmmh … da es wohl nicht so einfach ist, werde ich das
Gästebuch wohl ganz abschalten müssen. Es sei denn, jemand
weiß, wie man den Befehlt „connect();“ leicht ersetzen kann.
Ich habe jetzt erstmal wieder php-Version 5.7 aktiviert.

Das kann an der Stelle eventuell nachgerüstet werden, sollte es für das Gästebuch schlichtweg keine neue Version geben?

Schreibe uns dazu bitte unter https://my.bplaced.net/support - ich lasse das dann erledigen, sofern möglich. Sonst ist natürlich eine Aktualisierung wünschenswert, falls das Gästebuch noch weiterentwickelt wurde.

Übrigens 5.6 wird abgedreht, 5.7 gab es so nie :bunny:

Haja, genau, es handelt sich natürlich um php 5.6!

Also — was ich bisher herausgefunden habe:

Der alte Befehl „mysql_connect()“ war in php 5.5.0 schon
„deprecated“ und wurde in der Version php 7.0.0 vollständig
entfernt. An seine Stelle tritt der Befehl „mysqli_connect()“,
der sowohl prozedural als auch objektorientiert genutzt
werden kann.

Eine neue Version des Guestbooks gibt es nicht, die
Entwicklung wurde 2010 eingestellt. Es funktioniert aber
nach wie vor gut - allerdings mit php 5.6.

Das Guestbook greift via php auf die Datenbank zu.
Der neue Zugriff mit php 8.5 auf die Datenbank kann nur
gelingen, wenn auch die gesamte Umgebung berücksich-
tigt wird. Das bedeut für mich: Entwicklungsumgebung php
neu installieren und neu ausprobieren, und php neu
erstellen + programmieren.

Ich weiß noch nicht, ob ich das bis Mai 2026 schaffe,
mal sehen. Ich werde mich dann wieder melden, mal
sehn’, wie das wird!

Vielen Dank für bplaced und euren Support!

Ja, das ist so richtig, wobei schreibe uns da am besten wir erwähnt - das lässt sich womöglich noch relativ einfach lösen und eben rückwärts-kompatibel auslegen.

Ein Gästebuch ist meist nicht so kompliziert, es dürften daher nur Anpassungen an einer Handvoll Stellen erforderlich sein, das ist wahrscheinlich schnell erledigt bei :bps:

Hallo,
habe da auch ein Problem mit der Neuen Version.

Ich Nutze für meine Sammlerseite http://kupfer-medaillen.bplaced.net/Gl%C3%BCcksbringer/AT%20Schwertner%20Extra.php für mehr als 1000 Bilder „lightbox“ für die Bilder Vergrößerung.

Nun wird das Bild auf der Seite Angezeigt, aber ich kann nicht die Bilderserien Durchklicken…
Ich bin absoluter Anfänger, auch wenn ich das seit Jahren mache, ich bin froh, wenn ich Probleme selbst
Lösen kann, aber alle Bilderdatein Umzuschreiben oder was im css zu änderen… wäre der Untergang!

Die Bilder werden nicht mehr Vergrößert Angezeigt, sondern auf einer Seperaten Seite…

Siehe Lightbox Probleme mit Versionsumstellung php5.7 —> php 8.5 - #2 von miro

Also - ich habe das Guestbook, ein „myPHP_Guestbook_
2.0.5“ von networkarea.ch von 2011 - das gibt es schon lange
nicht mehr - von php 5.6 auf → php 8.2 upgedated.

Die Anpassung der php-files ist eine lange Kette aufeinander-
folgender Fehlermeldungen, deren Bearbeitung jeweils eine Art
kriminalistischer Untersuchung ist - und die ein zähes
„Dranbleiben“ erfordert.

Die Liste der Anpassungen ist wie folgt (falls jemand Ähnliches
vorhat):

  1. mysql_connect() —> mysqli_connect($host, $username,
    $password, $database) – mit neuem Argument $database.

  2. mysql_select_db($database, $db) —> mysqli_select_db
    ($db, $database)

  3. mysql_errno() → mysqli_connect_errno()

  4. mysql_error() → mysqli_connect_error()

  5. mysql_query() → mysqli_query($db,_ …)

  6. global $db; - in jeder Funktion zusätzlich: new global variable
    $db (=DBobj.)

  7. mysql_fetch() → mysqli_fetch()

  8. mysql_fetch_assoc() → mysqli_fetch_assoc()

  9. mysql_fetch_row() → mysqli_fetch_row()

  10. mysql_escape_string() → mysqli_real_escape_string($db,_ …)

  11. mysql_num_rows() → mysqli_num_rows()

  12. eregi_replace( $badwords_function[‚badword‘], $censorship,
    $text_badwords); → preg_replace( „/“.$badwords_function
    [‚badword‘].„/“ , $censorship , $text_badwords);

  13. eregi(“string”, $homepage); → preg_match(“/string/”, $homepage);

  14. @mysql_query("DROP TABLE …) →
    @mysqli_query($db, "DROP TABLE IF EXISTS …)

  15. split(“\ .”, …) → explode(“.”, …)

===============================================

Dieser Korrektur-Marathon ist wahrscheinlich für Software-
Entwickler, die ständig mit php arbeiten, leicht durchzuführen.

Für Leute, die zwar Software-Entwicklung kennen, aber meistens
ganz woanders engagiert sind, ist so eine Anpassung kaum
möglich. Sie müssen dazu nämlich schon zuerst die Basics von
php lernen, und sie müssen sich dann durch eine lange Liste
Fehlermeldungen kämpfen.

Das Grundproblem aber ist: php ist nicht update-kompatibel!
Das darf bei einer oft eingesetzten, wichtigen Programmier-
sprache nicht oder nur in Ausnahmen passieren.

Professionelle Sprachen, z.B. SAP ABAP, C++, aber
auch HTML+CSS usw. sind update-kompatibel: Alte ABAP-
Codes, C+±Codes oder HTML-Seiten von vor 30 Jahren laufen
auch heute noch!

Nicht so bei php: Alte php-Programme verunglücken und
schlagen hart auf. Sie erzeugen zahlreiche kryptische Fehler
und stoßen Anwender vor den Kopf. Sie sind i.d.R. gar nicht
mehr verwendbar.

Hmm, ich hoffe wirklich, dass das aktuelle php nun länger durchhält.