2014-10-21 5 views
0

Дорогие друзья, я установил prestashop на моем существующем веб-сайте. Мой текущий сайт имеет систему входа, которую я уже создал.Как использовать систему регистрации prestashop с другими веб-страницами (за пределами магазина) на моем сайте?

Из-за установки prestashop для моей системы, я решил изменить свой существующий логин для входа в систему prestashop.

Что касается документации PrestaShop, чтобы получить доступ к PrestaShop печенье вне Prestashop, я сделал тестовую страницу, чтобы получить данные куки следующим образом,

include_once('path_to_prestashop/config/config.inc.php'); 
include_once('path_to_prestashop/config/settings.inc.php'); 
include_once('path_to_prestashop/classes/Cookie.php'); 
$cookie = new Cookie('ps'); 
print_r($cookie); 

Но это не работает, и браузер говорит

Это содержит цикл переадресации.

Я попытался отключить SEO friendly url и cannonical url to no-direct, так как некоторые сообщения были предложены.

Теперь, если я перейду на тестовую страницу, он перенаправляет на индексную страницу prestashop, скорее отображая данные cookie.

Что мне делать, чтобы преодолеть эту проблему?

спасибо.

+0

Никто не имеет никакого ответа? – vinu

ответ

3

Когда вы включаете config/config.inc.php PrestaShop перенаправляет домен магазина.

Следующий код вызывает такое поведение в classes/shop/Shop.php:

$shop = new Shop($id_shop); 
if (!Validate::isLoadedObject($shop) || !$shop->active) 
{ 
    // No shop found ... too bad, let's redirect to default shop 
    $default_shop = new Shop(Configuration::get('PS_SHOP_DEFAULT')); 

    // Hmm there is something really bad in your Prestashop ! 
    if (!Validate::isLoadedObject($default_shop)) 
    throw new PrestaShopException('Shop not found'); 

    $params = $_GET; 
    unset($params['id_shop']); 
    $url = $default_shop->domain; 
    if (!Configuration::get('PS_REWRITING_SETTINGS')) 
    $url .= $default_shop->getBaseURI().'index.php?'.http_build_query($params); 
    else 
    { 
    // Catch url with subdomain "www" 
    if (strpos($url, 'www.') === 0 && 'www.'.$_SERVER['HTTP_HOST'] === $url || $_SERVER['HTTP_HOST'] === 'www.'.$url) 
     $url .= $_SERVER['REQUEST_URI']; 
    else 
     $url .= $default_shop->getBaseURI(); 

    if (count($params)) 
     $url .= '?'.http_build_query($params); 
    } 
    $redirect_type = Configuration::get('PS_CANONICAL_REDIRECT') == 2 ? '301' : '302'; 
    header('HTTP/1.0 '.$redirect_type.' Moved'); 
    header('location: http://'.$url); 
    exit; 
} 

Вы можете переопределить Shop класс, чтобы отключить переадресацию для вашего сценария.

Для этого сначала определит PS_DISABLE_SHOP_REDIRECT константы, прежде чем включать config/config.inc.php:

define('PS_DISABLE_SHOP_REDIRECT', true); 

Затем вставьте следующий до предыдущего кода в перегруженной классе:

if (defined('PS_DISABLE_SHOP_REDIRECT')) { 
    $id_shop = Configuration::get('PS_SHOP_DEFAULT'); 
} 
+0

Спасибо, что это решает мою проблему. Спасибо большое – vinu

 Смежные вопросы

  • Нет связанных вопросов^_^