[BUGREPORT] Immagini e Stili non più visualizzati

Documentazione generica riguardo osCommerce

Moderatore: mod Documentazione

Rispondi
Avatar utente
marcus
membro Master
membro Master
Messaggi: 1619
Iscritto il: 04/12/2003, 1:00
Contatta:

[BUGREPORT] Immagini e Stili non più visualizzati

Messaggio da marcus »

Problema:

1) le immagini e gli stili non vengono più visualizzate/applicati senza motivo apparente
2) le pagine non sono visualizzate correttamente
3) nessun cambiamento è stato apportato al programma


Si tratta di un problema dovuto ad un bug nel file application_top.php lato shop.

La linea incriminata è:

Codice: Seleziona tutto

$request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL';


La causa è la seguente.

Non c'è uno standard per il valore restituito da: getenv('HTTPS').
Alcuni web server possono mantenere tale valore a True / False, altri a 1 / 0, altri ancora a on / off.

In particolare quando il valore ritornato è On, indipendentemente dalla richiesta http o https, la variabile $request_type è inizializzata ad SSL anche per richieste http ordinarie.

Nel tag:

Codice: Seleziona tutto

<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">


si ha conseguentemente un valore errato per le url degli elementi collegati quali immagini, fogli di stile etc.. Ciò spiega la mancata visualizzazione/applicazione di tali elementi nelle pagine con alcuni browser.

Una soluzione abbastanza affidabile è sostituire la linea:

Codice: Seleziona tutto

$request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL';


con:

Codice: Seleziona tutto

$request_type = ($_SERVER['SERVER_PORT'] == '443') ? 'SSL' : 'NONSSL';

In questo caso si fa il check del tipo di connessione sulla porta utilizzata per le connessioni SSL, che è standard, e comunque potrebbe essere configurata.


Marcus
Nuovo pacchetto osCommercePRO (osCPRO) + Modulo Interfacciamento Gestionale Danea.
Visita la demo: http://oscpro.oscommercedev.com/index.php
Rispondi