Jump to content

Image : mauvais lien vers les images après migration d'hébergeur


Recommended Posts

Bonjour,

 

Je viens de transférer mon site d'un hébergement à un autre, suite à ça, les images du logo et des produits ne s'affichent plus. Par contre les autres si... 

 

Savez vous d'où ca peut venir ?

 

Sachant que j'ai vraiment transféré le FTP et la BDD sans changer grand chose... J'ai testé avec et sans URL simplifié... avec ou sans cache, avec ou sans le HTACCESS... Bref... 

 

Site : http://peel-off.net/

 

Par exemple, pour le logo, le lien est "http://img/logo.jpg?1423487607" alors qu'il devrait être "http://peel-off.net/img/logo.jpg?1423487607"

Share this post


Link to post
Share on other sites

un problème avec la constante _PS_IMG_ à priori

Vous avez bien votre repertoire /img en place ? (verifiez qu'il contient la même chose que sur votre ancien hebergement)

 

dans config/defines_uri.inc.php vous trouvez bien cette ligne ?

define('_PS_IMG_', __PS_BASE_URI__.'img/');
  • Like 1

Share this post


Link to post
Share on other sites

Bonjour ChDUP :)

 

Oui le répertoire /img est bien en place, comme sur le précédent serveur et avec les fichiers. 

 

Et oui il y a bien la ligne : define('_PS_IMG_',         __PS_BASE_URI__.'img/'); en ligne 60... 

 

Du coup j'ai remplacé 'img/' par 'peel-off.net/img/' et cela fonctionne... même si cela ne me semble pas très propre... Non ?

 

Merci pour votre aide et bonne fin de journée ! 

Share this post


Link to post
Share on other sites

effectivement, ce n'est pas propre du tout et vous allez surement avoir d'autres problèmes.

donc ce serait __PS_BASE_URI__ qui n'est pas renseignée.

Vous êtes en multiboutique ?

 

dans config.inc.php, vous trouvez cette ligne ?

define('__PS_BASE_URI__', $context->shop->getBaseURI());

Share this post


Link to post
Share on other sites

Oups... oui pardon. Cette ligne est bien en ligne 103... 

<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2013 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

require_once(dirname(__FILE__).'/defines.inc.php');
$start_time = microtime(true);

/* SSL configuration */
define('_PS_SSL_PORT_', 443);

/* Improve PHP configuration to prevent issues */
ini_set('upload_max_filesize', '100M');
ini_set('default_charset', 'utf-8');
ini_set('magic_quotes_runtime', 0);

/* correct Apache charset (except if it's too late */
if (!headers_sent())
	header('Content-Type: text/html; charset=utf-8');

/* No settings file? goto installer... */
if (!file_exists(dirname(__FILE__).'/settings.inc.php'))
{
	$dir = ((substr($_SERVER['REQUEST_URI'], -1) == '/' || is_dir($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : dirname($_SERVER['REQUEST_URI']).'/');
	if (!file_exists(dirname(__FILE__).'/../install'))
		die('Error: "install" directory is missing');
	header('Location: install/');
	exit;
}

require_once(dirname(__FILE__).'/settings.inc.php');

require_once(dirname(__FILE__).'/autoload.php');

if (_PS_DEBUG_PROFILING_)
{
	include_once(_PS_TOOL_DIR_.'profiling/Controller.php');
	include_once(_PS_TOOL_DIR_.'profiling/ObjectModel.php');
	include_once(_PS_TOOL_DIR_.'profiling/Hook.php');
	include_once(_PS_TOOL_DIR_.'profiling/Db.php');
	include_once(_PS_TOOL_DIR_.'profiling/Tools.php');
}

if (Tools::isPHPCLI())
	Tools::argvToGET($argc, $argv);

/* Redefine REQUEST_URI if empty (on some webservers...) */
if (!isset($_SERVER['REQUEST_URI']) || empty($_SERVER['REQUEST_URI']))
{
	if (!isset($_SERVER['SCRIPT_NAME']) && isset($_SERVER['SCRIPT_FILENAME']))
		$_SERVER['SCRIPT_NAME'] = $_SERVER['SCRIPT_FILENAME'];
	if (isset($_SERVER['SCRIPT_NAME']))
	{
		if (basename($_SERVER['SCRIPT_NAME']) == 'index.php' && empty($_SERVER['QUERY_STRING']))
			$_SERVER['REQUEST_URI'] = dirname($_SERVER['SCRIPT_NAME']).'/';
		else
		{
			$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
			if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']))
				$_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
		}
	}
}

/* Trying to redefine HTTP_HOST if empty (on some webservers...) */
if (!isset($_SERVER['HTTP_HOST']) || empty($_SERVER['HTTP_HOST']))
	$_SERVER['HTTP_HOST'] = @getenv('HTTP_HOST');
	
$context = Context::getContext();

/* Initialize the current Shop */
try 
{
	$context->shop = Shop::initialize();
}
catch (PrestaShopException $e)
{
	$e->displayMessage();
}

define('_THEME_NAME_', $context->shop->getTheme());
define('__PS_BASE_URI__', $context->shop->getBaseURI());

/* Include all defines related to base uri and theme name */
require_once(dirname(__FILE__).'/defines_uri.inc.php');

global $_MODULES;
$_MODULES = array();

/* Load configuration */
Configuration::loadConfiguration();

/* Load all languages */
Language::loadLanguages();

/* Loading default country */
$defaultCountry = new Country(Configuration::get('PS_COUNTRY_DEFAULT'), Configuration::get('PS_LANG_DEFAULT'));
$context->country = $defaultCountry;

/* It is not safe to rely on the system's timezone settings, and this would generate a PHP Strict Standards notice. */
@date_default_timezone_set(Configuration::get('PS_TIMEZONE'));

/* Set locales */
$locale = strtolower(Configuration::get('PS_LOCALE_LANGUAGE')).'_'.strtoupper(Configuration::get('PS_LOCALE_COUNTRY').'.UTF-8');
setlocale(LC_COLLATE, $locale);
setlocale(LC_CTYPE, $locale);
setlocale(LC_TIME, $locale);
setlocale(LC_NUMERIC, 'en_US.UTF-8');

/* Instantiate cookie */


$cookie_lifetime = (int)(defined('_PS_ADMIN_DIR_') ? Configuration::get('PS_COOKIE_LIFETIME_BO') : Configuration::get('PS_COOKIE_LIFETIME_FO'));
$cookie_lifetime = time() + (max($cookie_lifetime, 1) * 3600);

if (defined('_PS_ADMIN_DIR_'))
	$cookie = new Cookie('psAdmin', '', $cookie_lifetime);
else
{
	if ($context->shop->getGroup()->share_order)
		$cookie = new Cookie('ps-sg'.$context->shop->getGroup()->id, '', $cookie_lifetime, $context->shop->getUrlsSharedCart());
	else
	{
		$domains = null;
		if ($context->shop->domain != $context->shop->domain_ssl)
		  $domains = array($context->shop->domain_ssl, $context->shop->domain);
		
		$cookie = new Cookie('ps-s'.$context->shop->id, '', $cookie_lifetime, $domains);
	}
}

$context->cookie = $cookie;

/* Create employee if in BO, customer else */
if (defined('_PS_ADMIN_DIR_'))
{
	$employee = new Employee($cookie->id_employee);
	$context->employee = $employee;

	/* Auth on shops are recached after employee assignation */
	if ($employee->id_profile != _PS_ADMIN_PROFILE_)
		Shop::cacheShops(true);

	$cookie->id_lang = (int)$employee->id_lang;
}

/* if the language stored in the cookie is not available language, use default language */
if (isset($cookie->id_lang) && $cookie->id_lang)
	$language = new Language($cookie->id_lang);
if (!isset($language) || !Validate::isLoadedObject($language))
	$language = new Language(Configuration::get('PS_LANG_DEFAULT'));
$context->language = $language;

if (!defined('_PS_ADMIN_DIR_'))
{
	if (isset($cookie->id_customer) && (int)$cookie->id_customer)
	{
		$customer = new Customer($cookie->id_customer);
		if(!Validate::isLoadedObject($customer))
			$customer->logout();
		else
		{
			$customer->logged = $cookie->logged;

			if ($customer->id_lang != $context->language->id)
			{
				$customer->id_lang = $context->language->id;
				$customer->update();
			}
		}
	}

	if (!isset($customer) || !Validate::isLoadedObject($customer))
	{
		$customer = new Customer();
		
		// Change the default group
		if (Group::isFeatureActive())
			$customer->id_default_group = Configuration::get('PS_UNIDENTIFIED_GROUP');
	}
	$customer->id_guest = $cookie->id_guest;
	$context->customer = $customer;
}

/* Link should also be initialized in the context here for retrocompatibility */
$https_link = (Tools::usingSecureMode() && Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://';
$context->link = new Link($https_link, $https_link);

/**
 * @deprecated : these defines are going to be deleted on 1.6 version of Prestashop
 * USE : Configuration::get() method in order to getting the id of order state
 */
define('_PS_OS_CHEQUE_',      Configuration::get('PS_OS_CHEQUE'));
define('_PS_OS_PAYMENT_',     Configuration::get('PS_OS_PAYMENT'));
define('_PS_OS_PREPARATION_', Configuration::get('PS_OS_PREPARATION'));
define('_PS_OS_SHIPPING_',    Configuration::get('PS_OS_SHIPPING'));
define('_PS_OS_DELIVERED_',   Configuration::get('PS_OS_DELIVERED'));
define('_PS_OS_CANCELED_',    Configuration::get('PS_OS_CANCELED'));
define('_PS_OS_REFUND_',      Configuration::get('PS_OS_REFUND'));
define('_PS_OS_ERROR_',       Configuration::get('PS_OS_ERROR'));
define('_PS_OS_OUTOFSTOCK_',  Configuration::get('PS_OS_OUTOFSTOCK'));
define('_PS_OS_BANKWIRE_',    Configuration::get('PS_OS_BANKWIRE'));
define('_PS_OS_PAYPAL_',      Configuration::get('PS_OS_PAYPAL'));
define('_PS_OS_WS_PAYMENT_', Configuration::get('PS_OS_WS_PAYMENT'));

/* Get smarty */
require_once(dirname(__FILE__).'/smarty.config.inc.php');
$context->smarty = $smarty;

Share this post


Link to post
Share on other sites

Le problème était bien plus profond que ce que vous avez présenté.

Vous aviez un mélange de versions de Prestashop entre une 1.6.0.11 et une 1.5.6.2

Qu'est-ce qui s'est passé exactement ? Qu'avez-vous fait ou essayé de faire ?

 

Vos fichiers de config ont été remplacés par les fichiers d'une install vierge de 1.5.6.2

Votre ancien dossier config a été conservé et renommé, au cas où

Et le problème des images venait du fait que vous aviez des medias servers renseignés alors que vous n'en utilisez pas (surement une consequence de cette confusion de versions)

 

Bref, vous pouvez remercier doekia qui a isolé et solutionné le problème.

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More