ConPresso4 Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
Relaunch Website mit HTML5 PHP7
Gehe zu Seite Zurück  1, 2, 3
 
Neue Antwort erstellen    ConPresso4 Community Foren-Übersicht -> laufender Betrieb ConPresso 4
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
dutch
ConPresso-Experte


Anmeldungsdatum: 04.07.2007
Beiträge: 547

BeitragVerfasst am: 17.07.2018 11:15    Titel: Antworten mit Zitat

Super! Danke!

Funktioniert ebenfalls!

Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7070

BeitragVerfasst am: 07.08.2018 16:28    Titel: Antworten mit Zitat

Da ich meine eigene mySQLi-Anpassung benutze, ist mir bisher nicht aufgefallen, dass balu bei der Funktion next_record_assoc() ein I (großes i) vergessen hat.

Die Zeile
Code:
$this->Record = mysqli_fetch_array($this->Query_ID, MYSQL_ASSOC);

muss so aussehen
Code:
$this->Record = mysqli_fetch_array($this->Query_ID, MYSQLI_ASSOC);


Ohne das I liefert mod_search (also die Suche) keine Ergebnisse.

Anbei auch die Suchfunktion für mod_search für PHP7 zum Austausch.
(ereg() ersetzt durch stripos())





inc_search_function.inc.rar - 4.39 KB
146 mal


_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Gandalf
ConPresso-Checker


Anmeldungsdatum: 01.01.1970
Beiträge: 106

BeitragVerfasst am: 03.10.2018 12:16    Titel: Antworten mit Zitat

Hallo Markus und balu,

dank Eurer Hilfe und den geänderten daten habe ich heute erfolgreich auf PHP 7.1 umgestellt.

Einzig die Suchfunktion mod_search bringt leere Ergebnisse.

Frage an Markus, wo in welcher Datei muss ich diesen Code hier ändern?

Code:
$this->Record = mysqli_fetch_array($this->Query_ID, MYSQL_ASSOC);
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7070

BeitragVerfasst am: 03.10.2018 19:09    Titel: Antworten mit Zitat

_include/db_mysql.inc.php
_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Gandalf
ConPresso-Checker


Anmeldungsdatum: 01.01.1970
Beiträge: 106

BeitragVerfasst am: 04.10.2018 08:13    Titel: Antworten mit Zitat

Vielen Dank Markus, das war's.

conpresso läuft bei mir auch mit PHP 7.2 nun problemlos.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7070

BeitragVerfasst am: 12.12.2018 08:50    Titel: Antworten mit Zitat

Kleines Update:

Es gibt Module, wie mod_inline, die die Methode ->table_exists benutzen.
Da mysqli_list_tables aber nicht existiert, also mysql_list_tables ersatzlos gestrichen wurde, hat Balu dazu ja schon eine Anmerkung geschrieben, es aber nicht umgesetzt. Das habe ich jetzt nachgeholt.

Es muss also
Code:
       function table_exists($table)
       {
            $this->connect();
          $tables=mysqli_list_tables($this->Database); // FIXME SHOW TABLES FROM db
          while (list($temp)=mysqli_fetch_array($tables)) {
             // echo "BALU: $temp<br />";
             if($temp == $table) return 1;
          }
          return 0;
       }

geändert werden zu
Code:
    function table_exists($table)
    {
        $this->connect();
        $tables=mysqli_query($this->Link_ID, "SHOW TABLES");
        while (list($temp)=mysqli_fetch_array($tables)) {
            if($temp == $table) return 1;
        }
        return 0;
    }

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Profi


Anmeldungsdatum: 01.01.1970
Beiträge: 1004
Wohnort: Wuppertal

BeitragVerfasst am: 08.02.2019 02:15    Titel: Antworten mit Zitat

[EDIT: hat sich erledigt]
_________________
Günther Ludwig


Zuletzt bearbeitet von Mr. Magpie am 08.02.2019 08:52, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Mr. Magpie
ConPresso-Profi


Anmeldungsdatum: 01.01.1970
Beiträge: 1004
Wohnort: Wuppertal

BeitragVerfasst am: 08.02.2019 08:18    Titel: Antworten mit Zitat

Sowohl unter PHP 7.1 als auch mit PHP 7.2 erhalte ich noch einen Fehler in der _include/translation.inc.php (CPO 4.0.12):

Parse error: syntax error, unexpected 'new' (T_NEW) in /homepages/12/d123456789/htdocs/Test/_include/translation.inc.php on line 143

Das ist im folgenden Code:

Code:

if (!empty($_SESSION['SID_user']['language']) && $_SESSION['SID_user']['language']!=$cpoSystem['language']) {
    $translator = &new translate($_SESSION['SID_user']['language']);
} else {
    $translator = &new translate($cpoSystem['language']);
}


UPDATE:

Offenbar kann man die &-Zeichen einfach entfernen

_________________
Günther Ludwig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7070

BeitragVerfasst am: 18.05.2019 05:50    Titel: Antworten mit Zitat

Bei Auftritten, die unter PHP 7.2 und 7.3 laufen, ist mir zuerst durch einige Module, nun aber auch durch CPO alleine aufgefallen, dass bei der Ausgabe von Meldungen immer wieder eine Fehlermeldung auftritt.
Und zwar immer dann, wenn mehrere Meldungen nicht zusammen sondern nacheinander ausgegeben werden, d.h. _include/message.php mehrfach aufgerufen wird (passiert zum Beispiel, wenn man das letzte Bild aus der Dateiliste löscht).

Ursache ist, dass das bisherige automatische Casten von Variablen nicht mehr von PHP unterstützt wird, d.h. man nicht einfach eine Variable als String definieren und dann als Array benutzen kann.
Aber genau das tut das Meldungssystem von CPO schon immer.

Um dies zumindest nicht unnötig zu provozieren, habe ich nun am Ende von message.php die Zeile
Code:
$message = '';

ersetzt durch
Code:
$message = array();

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7

 
Für dieses Posting bedanken sich die folgenden User: dutch, Mr. Magpie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7070

BeitragVerfasst am: 27.11.2019 14:20    Titel: Antworten mit Zitat

Nach der Umstellung zweier produktiver Auftritte auf mySQLi tauchten trotz vorheriger Tests Probleme mit den Datenbankverbindungen auf, die sich durch vereinzelte "Database connect fail"-Einträge im Log äußerten.
Witzigerweise steht das Log ja IN der Datenbank, also ein merkwürdiger Fehler.

Auffällig war, dass beides Shared-Hosting-Accounts bei 1&1/IONOS sind.
Etwas Recherche brachte zutage, dass dort die gleichzeitigen Datenbankverbindungen auf 18 begrenzt sind, bei jeder PHP-Version. Zu Fehlern führte dies nur unter mySQLi, nicht unter mySQL.

Tatsächlich handelt es sich um viel mehr Verbindungsabbrüche, die ich zur Probe in eine Datei statt in die Datenbank habe schreiben lassen.

Ich habe mich nun länger damit beschäftigt und nun nach mehreren Fehlversuchen eine einfache und logische Lösung gefunden, mit der das Problem schlagartig beseitigt wurde.

In _include/db_mysql.inc.php ändert sich die Funktion connect() von
Code:

        function connect()
        {
            if (0 == $this->Link_ID) {
                $this->Link_ID = @mysqli_connect($this->Host, $this->User, $this->Password);
               
                if (!$this->Link_ID) {
                    $this->halt('Database connect failed');
                }

                if (!mysqli_select_db($this->Link_ID, $this->Database)) {
                    $this->halt('cannot use database ' . $this->Database);
                }
            }
        }

zu
Code:

        function connect()
        {
            if (isset($GLOBALS['DB_LINK_ID'])) $this->Link_ID = $GLOBALS['DB_LINK_ID'];
            if (0 == $this->Link_ID) {
                $this->Link_ID = @mysqli_connect($this->Host, $this->User, $this->Password);
               
                if (!$this->Link_ID) {
                    $this->halt('Database connect failed');
                }

                if (!mysqli_select_db($this->Link_ID, $this->Database)) {
                    $this->halt('cannot use database ' . $this->Database);
                }
                $GLOBALS['DB_LINK_ID'] = $this->Link_ID;
            }
        }


Damit wird die Verbindung nicht für jedes DB-Objekt neu aufgebaut sondern die bestehende benutzt.

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7

 
Für dieses Posting bedanken sich die folgenden User: dutch, Mr. Magpie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso4 Community Foren-Übersicht -> laufender Betrieb ConPresso 4 Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite Zurück  1, 2, 3
Seite 3 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen