Autor Gast
Datum 21.09.2014 12:14
Beiträge: Hallo zusammen,

bei meinem Provider wurde ein PHP update durchgefüht. Die aktuelle Version ist jetzt PHP 5.5.
Leider habe ich das Problem, dass ich jetzt Fehlermeldungen auf der Seite bekomme.


Unkown error type: [8192] mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
FOUND IN [class/sql/drivers/driver-mysql.php]
FOUND AT 291


Unkown error type: [8192] preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
FOUND IN [class/class.opn_date.php]
FOUND AT 727

Ich denke mal das es am MySQL Treiben liegt. Nur wie kann ich den ändern?


Gruß
Christoph


Autor lijosa
Datum 22.09.2014 19:14
Beiträge: Hallo Christoph

Unkown error type: [8192] mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
FOUND IN [class/sql/drivers/driver-mysql.php]
FOUND AT 291

diesen Fehler habe ich auch gehabt und dadurch gelöst als daß ich in der mainfile.php in ~Zeile 43 bei
$dbdriver = 'mysqli'; eingetragen habe. Dadurch war dieser Fehler weg weil in der Fehlermeldung
steht, daß man mysqli benutzen soll.

Bei dem anderen Fehler bin ich noch am suchen.

LG Lijosa


Autor Gast
Datum 23.09.2014 09:46
Beiträge: Hallo Lijosa,

die Fehlermeldung mit dem MySQL Treiber habe ich behoben. Dank deiner Hilfe.

Die andere Meldung kommt vom PHP Versionswechsel:


preg_replace

(PHP 4, PHP 5)

preg_replaceSucht und ersetzt mit regulären Ausdrücken



Version Beschreibung 5.5.0 Der Modifikator /e ist veraltet und sollte nicht mehr verwendet werden. Verwenden Sie stattdessen preg_replace_callback(). Für ergänzende Informationen über Sicherheitsrisiken siehe PREG_REPLACE_EVAL.

Hier das Script:

            function subInterval ($interval) {

                $timestamp = $this->_breakTimestamp ($this->timestamp);
                list ($day, $month, $year) = array_values ($this->_breakDate ($timestamp[0]) );
                // these vars hold the temporary values as we calculate
                $this->_day = $day;
                $this->_month = $month;
                $this->_year = $year;
                $this->_interval = 0;
                $this->_days1 = '';
                $this->dateToDays ($this->_days1, $this->date);
                preg_replace ('/([d]+)s*([w]+)/xSe', "$this->_calcSubInterval('\1', '\2');", $interval);
                if ($this->_interval >= 1) {
                    $days = $this->_days1- $this->_interval;
                    $temp = '';
                    $this->daysToDate ($temp, $days);
                    $temp .= ' ' . $timestamp[1];
                    $this->setTimestamp ($temp);
                }


Hier muss auf preg_replace_callback umgebaut werden. Leider stecke ich in PHP nicht so tief drin!!!


Gruß
Christoph


Autor Gast
Datum 23.09.2014 10:28
Beiträge: Hallo zusammen,

ich habe mal die alte class/class.opn_date.php durch diese hier ersetzt und es läuft....

Die Meldung:

Unkown error type: [8192] preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
FOUND IN [class/class.opn_date.php]
FOUND AT 727

ist jetzt weg....


Gruß
Christoph


Autor lijosa
Datum 24.09.2014 09:12
Beiträge: Gast schrieb am 23.09.2014 um 10:28:06 Uhr folgendes:
Hallo zusammen, ich habe mal die alte class/class.opn_date.php durch diese hier ersetzt und es läuft.... Die Meldung: Unkown error type: [8192] preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead FOUND IN [class/class.opn_date.php] FOUND AT 727 ist jetzt weg.... Gruß Christoph


Hallo Christoph

Dank Deiner Information habe ich in der Datei class.opn_date.php bei Zeile 727 nur das E entfernt und es funzt.

vorher : Line 727 preg_replace ('/([d]+)s*([w]+)/xSe', "$this->_calcSubInterval('\1', '\2');", $interval);
nachher: Line 727 preg_replace ('/([d]+)s*([w]+)/xS', "$this->_calcSubInterval('\1', '\2');", $interval);

Trotzdem habe ich noch ne Frage.
Kommt es bei Dir auch vor dass die gleiche Fehlermeldung beim Installieren bzw Deinstallieren von Modulen vorkommt?

gruss Lijosa


Autor Gast
Datum 24.09.2014 16:34
Beiträge: Hallo Lijosa,

nach der Änderung, konnte ich keine Fehlermeldung mehr aus der class.opn_date.php feststellen.
Gestern hatte ich eine andere beim laden des Adminbereiches. Diese konnte ich aber nicht mehr reproduzieren.
Sie wurde nur im Ladevorgang angezeigt.

Gruß
Chistoph




Diese Seite drucken
Diese Seite schließen

Dieser Artikel kommt von: OpenPHPNuke - das Open Source CMS

http://www.openphpnuke.info/