Merhaba,
osCommerce mimarisinde bağlantılar SSL durumuna göre otomatik belirlenir.
Örneğin catalog/includes/configure.php dosyasını açıp
define('ENABLE_SSL', false); değerini
define('ENABLE_SSL', true); değiştirdiğinizde (false pasif, true aktif demek), sitenizde SSL ile açılacak sayfalarda (üye işlemleri, satınlama gibi) içerik https protokolü üzerinden çağrılır.
osCommerce tüm protokol srounlarını ortadan kaldırmak için aşağıdaki şekilde bağlantıları çağırır.
tep_href_link(login.php, '', 'SSL')
Yukarıda tep_href_link fonksiyonu login.php sayfasını çağırırken SSL eğer aktif ise bu sayfayı https üzerinden ekrana basar.
Bu işlemi sayfanın sonundaki fonksiyon yapar.
Sitenizde güvenli sayfaları çağırıken uyarı mesajı almamak için aşağıdaki yöntemi uygulayabilirsiniz.
Örneğin sayfamıza bir flash dosyası yayınlayalım. Flash dosyamız ana dizinde test.swf olsun.
echo tep_href_link('test.swf');
Eğer sitenize bu şekilde ekleme yaparsanız güvenli sayfalarda güvensiz öğe uayrısı almazsınız. Çünkü güvenli sayfada içerik https protokolünden gelirken sizin siteye http://.... şeklinde eklediğiniz içerik veya dosya bu kuralı bozar ve güvenlik ihlali oluşturur.
| Kod: |
////
// The HTML href link wrapper function
function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
global $request_type, $session_started, $SID;
if (!tep_not_null($page)) {
die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine the page link!<br><br>');
}
if ($connection == 'NONSSL') {
$link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
} elseif ($connection == 'SSL') {
if (ENABLE_SSL == true) {
$link = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG;
} else {
$link = HTTP_SERVER . DIR_WS_HTTP_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>');
}
if (tep_not_null($parameters)) {
$link .= $page . '?' . tep_output_string($parameters);
$separator = '&';
} else {
$link .= $page;
$separator = '?';
}
while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);
// Add the session ID when moving from different HTTP and HTTPS servers, or when SID is defined
if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) {
if (tep_not_null($SID)) {
$_sid = $SID;
} elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) {
if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) {
$_sid = tep_session_name() . '=' . tep_session_id();
}
}
}
if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
while (strstr($link, '&&')) $link = str_replace('&&', '&', $link);
$link = str_replace('?', '/', $link);
$link = str_replace('&', '/', $link);
$link = str_replace('=', '/', $link);
$separator = '?';
}
if (isset($_sid)) {
$link .= $separator . tep_output_string($_sid); // Patch 2.2MS2-051113 added tep_
}
return $link;
}
|
Umarım açıklamalarım anlaşılır olmuştur.
Kolay gelsin.