Plugins php7 tauglich schreiben

Hast du Probleme oder Fragen bei der Einrichtung bestimmter Plugins ? Diese kannst du hier loswerden.
Antworten
tomtom
Beiträge: 19
Registriert: 25. Mai 2016, 19:39

Plugins php7 tauglich schreiben

Beitrag von tomtom »

Hallo,
dass ständig ich Probleme beim Coden bekomme, liegt wohl daran, dass ich ein Noob bin :oops:
Das müsst ihr mir verzeihen.

Dennoch vielleicht nicht ganz unwichtig für andere.

Admidio läuft ja unter php7 problemlos. Bemerkenswert, doch unsere Plugins zeigen diverse Schwachstellen, oder gar erhebliche Einschränkungen.
Das fängt bei simplen Datenbankabfragen an, und hört beim Updaten auf :roll:

bspw. funktioniert folgender Code noch in php 5.6, aber nicht mehr in php 7

Code: Alles auswählen

$kunden_id=$_GET['kunden_id'];
$sql = 'SELECT
            usd_value , usd_usf_id
        FROM
            HuKo_user_data
        WHERE
            usd_usr_id = '.$kunden_id.' ';
$ergebnis = $gDb->query($sql);

$feld_name[1]= 'nachname';
...
$feld_name[112] = 'frist';

while($row = $gDb->fetch_object($ergebnis)){
    $$feld_name[$row->usd_usf_id] = $row->usd_value;
}
Die Variablen sind aber ab php7 alle leer.
Wo finde ich die Ändererungen? Was muss ich beachten und gibt es darüber etwas in der Doku zu finden?

Ich würde das gerne verstehen.
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Plugins php7 tauglich schreiben

Beitrag von XimeX »

Hallo,

zuerst würde ich dir empfehlen nicht mehr "fetch_object" zu verwenden. Siehe: https://github.com/Admidio/admidio/blob ... #L748-L772

$$feld_name[$row->usd_usf_id]
Die 2 $$ am anfang sehen mir nicht richtig aus

Welche Fehlermeldung wird den in PHP7 ausgegeben?
tomtom
Beiträge: 19
Registriert: 25. Mai 2016, 19:39

Re: Plugins php7 tauglich schreiben

Beitrag von tomtom »

Hallo XimeX,
vielen Dank für Deine Antwort.
XimeX hat geschrieben: Welche Fehlermeldung wird den in PHP7 ausgegeben?
leider keine Fehlermeldung. Es sind nur die Variablen leer. Es wird also kein Wert ausgegeben.


XimeX hat geschrieben: $$feld_name[$row->usd_usf_id]
Die 2 $$ am anfang sehen mir nicht richtig aus
Warum soll das nicht richtig sein? Was PHP 7 betrifft, lässt sich für mich nicht rausfinden, ob das noch so funktioniert, aber bis PHP 5.6 sind variable Variablen kein Problem.
http://php.net/manual/en/language.varia ... riable.php

http://www.phptpoint.com/php-dolor-and- ... variables/
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Plugins php7 tauglich schreiben

Beitrag von XimeX »

Ich würde dir von variable Variablen abraten. Verwende lieber ein normales array.

Vll liegts daran das du "$feld_name" nie richtig initialisiert hast. Also "$feld_name = array();"
Und wie gesagt änder das fetch_object das wird sonst aber der Admidio v4.0 nicht mehr funktionieren.
Antworten