Programmierfehler/Bug, Hinweis für Coder

Begonnen von Andi, 08 Februar 2003, 02:01:16

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Andi

Mal als kleinen Tip, für die Coder unter uns....
 
function xyz() {
global $admin;
if(!is_array($admin)){
$admin = base64_decode($admin);
$admin = explode(":", $admin);
$aid = "$admin[0]";
}
else{
$aid = "$admin[0]";
}}
 
Dieser Codeschnipsel findet sich in einigen phpNuke Modulen (z.B. links und downloads). Funktioniert in dieser Funktion auch noch einwandfrei. Die Variable $admin (das ist der admin-cookie base64 codiert) wird decodiert und dann die $aid (adminnickname) ausgelesen. Soweit alles klar....

Aber dann:
Die String-Variable $admin ist danach ein Array und bringt jegliche weitere Anfrage nach der Variablen $admin durcheinander. Das sieht man schön, wenn error_reporting aktiviert ist ;)

Besser wäre z.B. folgendes:
if(!is_array($admin)){
$xadmin = base64_decode($admin);
$yadmin = explode(":", $xadmin);
$aid = $yadmin[0];
}
else{
$aid = $admin[0];
}}

Wird die Namensgleichheit der Variablen konsequent vermieden, kann die Variable $admin nie zum Array werden und die Abfragerei danach ist völlig überflüssig.

Tja, das sind die "Altlasten" von phpNuke, die jetzt mal wieder gefixt werden und in das SP2 einfliessen. Jeden Tag entdeckt man neuen Müll im Code....

(Und in Nuke6.0 ist es wieder drin)
schön´s Grüssle, Andi