...
Anders ist es meiner Ansicht nach aber in inc/xtc_php_mail.inc.php
$path_to_attachments[$i] = ((strpos($path_to_attachments[$i], DIR_FS_DOCUMENT_ROOT
)===false) ? DIR_FS_DOCUMENT_ROOT
:'') . trim($path_to_attachments[$i]); Wenn hier ein Mailanhang beginnend mit dem absoluten Shoppfad ankommt, wird im nochmal der absolute Pfad vorangestellt - hier müsste man eher auf "=== 0" prüfen.
...
Veto.
Dieser Code ist vollkommen in Ordnung.
Zwar wird das Ergebnis 0 als false gewertet, jedoch nicht als === false.
Drei Gleichheitszeichen prüfen hier auch auf den Typ der Rückgabe und das müsste bei === false ein Boolean sein.
0 oder '0' wäre jedoch ein Interger oder ein String.
Würde man schreiben == false würde bei Rückgabe 0 das Ergebnis zu true ausgewertet und die Kondition würde zutreffen.
Bei === false trifft sie nur zu wenn die Rückgabe ein Boolean ist, nämlich dann, wenn die Needle, also der String-Abschnitt welcher gesucht wird, nicht im String gefunden wird.
Gruß,
noRiddle
*NACHTRAG zu den Template-Dateien*...
Schwierigkeiten beim Durchsehen habe ich mit solchen Codestellen, wie z.B.
if (!strpos($sOrdersComment, 'ExtendedOrderID')) { oder
if (strpos($key, 'customers_') === false Man kann an vielen Stellen nicht genau nachvollziehen, ob es dem Programmierer klar war, dass der Rückgabewert "0" auch als "false" gewertet wird (im 2. Beispiel wird der Rückgabewert "0" bewusst als "false" verwendet).
...
Der erste Fall ist nur dann in Ordnung wenn
ExtendedOrderID nicht am Anfang von
$sOrdersComment vorkommen kann, sollte jedoch sicherheitshalber auch geändert werden auf
if (strpos($sOrdersComment, 'ExtendedOrderID') === false) { während der zweite Fall völlig in Ordnung ist weil man etwas nur dann ausführen oder ausgeben möchte wenn
customers_ nicht in
$key vorkommt (was nämlich dann Boolean
false ergäbe).
*
NACHTRAG 2, zur weiteren Erklärung*
Diese Korrektur in
/shop_content.php if (strpos($shop_content_data['content_file'], '.txt')) zu
if (strpos($shop_content_data['content_file'], '.txt') !== false) hätte man z.B. nicht zwingend machen müssen, da
.txt niemals an erster Position vorkommen kann (und somit an Position 0), da es eine File-Endung ist. Sicherer ist trotzdem die typen-sichere Abfrage.