Antwort #1 am: 30. April 2016, 08:37:50
Hallo webald,
versuch die hinter deinen Zweifeln steckende Problematik ein bisschen zu erläutern und zu vertiefen.
Beispiele für die korrekte Verwendung der Funktion 'xtc_href_link()':
xtc_href_link
(FILENAME_LOGIN
, 'info_message='.urlencode(TEXT_PASSWORD_SENT
), 'SSL', true, false);xtc_href_link
(FILENAME_LOGIN
, 'info_message='.urlencode(TEXT_PASSWORD_SENT
), 'NONSSL', true, false);xtc_redirect
(xtc_href_link
(FILENAME_DEFAULT
, '', 'NONSSL'));xtc_href_link
(FILENAME_DEFAULT
, $cPath_new);xtc_href_link
(FILENAME_DEFAULT
); Beispiele für inkorrekte (falsche) Verwendung der Funktion 'xtc_href_link()':
xtc_href_link
(FILENAME_LOGIN
, 'info_message='.urlencode(TEXT_PASSWORD_SENT
), '', true, false);xtc_href_link
(FILENAME_LOGIN
, 'info_message='.urlencode(TEXT_PASSWORD_SENT
), 'XXX', true, false);xtc_href_link
(FILENAME_LOGIN
, 'info_message='.urlencode(TEXT_PASSWORD_SENT
), ''); Nun ist es so, die Funktion 'xtc_href_link()' baut bei seiner
inkorrekten Verwendung einen Link unter dem Protokoll 'http' zusammen, du aber möchtest das in diesem Fall ein Link unter dem 'https' Protokoll erstellt wird. Dies kann man durchaus als den richtigeren Weg ansehen, vor allem im Hinblick auf die Zukunft, in der wohl die verschlüsselte Übertragung von Internetseiten zum Standard wird.
Jetzt zu deinem Code-Vorschlag hier
$link = (($connection == 'NONSSL') ? HTTP_SERVER : HTTPS_SERVER);
der müsste dann aber so aussehen
$link = (($connection == 'NONSSL') ? HTTP_SERVER : (ENABLE_SSL ? HTTPS_SERVER : HTTP_SERVER));
denn die Vorgabe aus der Configure.php 'ENABLE_SSL' darf man auf keinen Fall übergehen, hat der Shop nämlich kein Zertifikat, also weder ein gültiges noch ein ungültiges, wird im Browser ein Fehler in der Art "Diese Seite kann nicht angezeigt werden" ausgegeben.
Übrigens in den Vorgängern von modified also im osc und auch im xtc sieht die entsprechende Codestelle so aus
if ($connection == 'NONSSL') { $link = HTTP_SERVER
. DIR_WS_CATALOG
; } elseif ($connection == 'SSL') { if (ENABLE_SSL
== true) { $link = HTTPS_SERVER
. DIR_WS_CATALOG
; } else { $link = HTTP_SERVER
. DIR_WS_CATALOG
; } } else { die('</td></tr></table></td></tr></table><br /><br /><font color="#ff0000"><b>Error!</b></font><br /><br /><b>Unable to determine connection method on a link!<br /><br />Known methods: NONSSL SSL</b><br /><br />'); } PS:
Möchte man aber im Shopsystem die verschlüsselte Übertragung generell als Standard einführen müsste man korrekterweise überall im Code 'NONSSL' in 'SSL' abändern bzw. 'NONSSL' weg lassen und in der Funktion Funktion 'xtc_href_link()' den dritten Parameter von '$connection = 'NONSSL'' zu '$connection = 'SSL'' ändern.
Gruss
Hanspeter