PHP Script ändern damit mysqli / PHP 7.2 funktioniert

cliodriver

Mitglied
Hallo

das ist seit langem wieder mal eine Frage / Bitte um Hilfe zu einem PHP-Script.

Ich habe vor einem Jahr eine Homepage für eine Bekannte (Ferienwohnungen) erstellt und ein fertiges Script für einen Belegungskalender eingebaut und dabei nicht bedacht / gewusst das der Server demnächst auf PHP 7.2 umstellt. Ich konnte schon testen und den Rest der Homepage anpassen, doch leider bin ich mit meinem Latein am ende und der Kalender funktioniert natürlich nicht.

Das Problem liegt natürlich an der Datenbankverbindung .... mysqli unter PHP 7.2, welche ich nicht gefixt bekomme

Meine Frage dazu:

Kann sich jemand den Code mal ansehen und sagen er sich anpassen lässt bzw. hätte gleich Tipps für mich? Ich würde gerne verstehen wo der Hund begraben liegt und es selber ändern, doch ohne Hilfe komm ich grad nicht weiter.

Weiters umfasst das ganze ca. 19 Seiten und wenn ich die alle hier poste, wird's wahrscheinlich unübersichtlich. Ich würde das Paket per email versenden wenn ich Hilfe bekomme.

Danke
 
Lösung
So habe mir das mal angeschaut.

Es ist nur die db.class.php anzupassen.

PHP:
<?php
// Class for database connection
class DatabaseConnection {

    public    $error = false;
    public    $version = false;
    private    $link = false;
    private $config = array ();

    /**
     * Wrapper for connect ()
     * @param    $db        Array with vars from config
     * @return            result from connect ()
     */
    public function databaseConnection ($mysql) {
        $this->config = $mysql;
        return $this->connect ();
    }

    /**
     * Tries to connect to db and checks installation.
     * @return            true if no error, else false
     */
    public function connect () {
        // Reset $error
        $this->error...
Hat jemand eine guestcal-Version, die mit PHP 8 funktioniert?
Bei GuestCal-2.1.6 funktioniert die admin-Oberfläche nicht.
Gruß
 
<br />
<b>Fatal error</b>: Uncaught Error: Call to undefined function mysql_real_escape_string() in /www/htdocs/guestcal8/admin/pages/entries.php:71
Stack trace:
#0 /www/htdocs/guestcal8/admin/index.php(24): require_once()
#1 {main}
thrown in <b>/www/htdocs/guestcal8/admin/pages/entries.php</b> on line <b>71</b><br />
 
Call to undefined function mysql_real_escape_string
Tja, die mysql_*-Funktionen sind seit PHP 5.5 als veraltet gekennzeichnet. Und wer es nicht geschafft hat, seit Juni 2013 seine Scripte zu aktualisieren, der hat halt Pech gehabt. Und seit Dezember 2017 mit PHP 7 sind die mysql_*Funktionen entfernt. Man sollte zwischendurch auch mal PHP updaten, selber schuld.
 
Ja, bei der tritt dieser Fehler auf wenn man einen neuen Eintrag anlegen will:

$db -> query ("INSERT INTO `entries_per_language` SET `entry_id`=" . $id . ", `language_id`=" . $lang['id'] . ", `desc`='" . mysql_real_escape_string ($_POST['desc_' . $lang['abbr']]) . "'");
 
Zurück