2017-01-18 3 views
0

На моем веб-сайте есть вариант страны, как для разных стран, расположение веб-сайта отличается. он работает на основе сеансов, если сеанс не установлен, пользователь будет перенаправлен на индекс, чтобы выбрать страну, а затем будет перенаправлен со страницы, откуда он изначально пришел. вот кодjavascript отсутствует параметр url во время перенаправления

мой session_check_client.php файл, который включен в каждый файл, кроме индекса

<?php 
session_start(); 
if(!isset($_SESSION['country'])) 
{ 
    $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
    header("location:index.php?return_uri=$actual_link"); 
} 
?> 

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

function canada(){ 
    $.ajax({ 
     type: 'post', 
     url: 'ajax_country.php?country=canada', 
     success: function (data) { 
      var $_GET = <?php echo json_encode($_GET);?>; 
      if($_GET){ 
      //window.location.href=$_GET['return_uri']; 
      alert($_GET['return_uri']); 
      } 
      else { 
       window.location.href = "home.php"; 
      } 
     } 
    }); 
} 
function us(){ 
    $.ajax({ 
     type: 'post', 
     url: 'ajax_country.php?country=us', 
     success: function (data) { 
      var $_GET = <?php echo json_encode($_GET);?>; 
      if($_GET){ 
       //window.location.href=$_GET['return_uri']; 
       alert($_GET['return_uri']); 
      } 
      else { 
       window.location.href = "home.php"; 
      } 
     } 
    }); 
} 

теперь проблема, когда я предупреждая значение из $_GET['return_uri'] это дает мне ложное значение

например, моя return_uri значение http://localhost/interfold/products2.php?category=Aprons&id=57725599688 это на самом деле показывает все значения в return_uri в индексной страницы, как http://localhost/interfold/products2.php?category=Aprons&id=57725599688 но когда получается значение url с помощью javascript, он дает мне только значение http://localhost/interfold/products2.php?category=Aprons, он не имеет частей $ и after !!! любые рекомендации?

+1

Замечание, что вы должны реально предотвратить дублирование кода путем объединения Канады() и us() в одну функцию с одним возможным параметром для страны –

+0

полностью согласен !!! я изменю его после того, как проблема будет решена. –

+0

Вам действительно нужно, чтобы $ actual_link была параметром $ _GET? Может ли это быть еще одним решением? –

ответ

0

Так как вы только используя супер глобальные переменные, вы можете напрямую печатать переменную JS выше функции, которую вы описываете:

var actual_link = "<?php echo "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; ?>"; 

function postCountry(country){ 
    $.ajax({ 
     type: 'post', 
     url: 'ajax_country.php?country=' + country, 
     success: function (data) { 
      if(actual_link){ 
       //window.location.href=actual_link; 
       alert(actual_link); 
      } 
      else { 
       window.location.href = "home.php"; 
      } 
     } 
    }); 
} 

postCountry('us'); 
postCountry('canada'); 
+0

nops !! ! есть два файла, позволяющие предположить, что я отправляюсь из FileA.php в index.php. Я устанавливаю свой супер-глобальный файл в FileA.php, а затем возвращаю url для индексации, php, что вы делаете, - это получить url в index.php, который неверен –

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