Редирект после выполнения скрипта

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

Редирект после выполнения скрипта

Сообщение Fedya »

Есть код без редиректа

Код: Выделить всё

 <script type="text/javascript" charset="utf8" >    $(document).ready(function() {        VK.init(function() {             var viewer_id = 0;            var auth_key = 0;            var image ='';                        viewer_id = '<?php echo $_SESSION['viewer_id'];?>';            auth_key =  '<?php echo $_SESSION['auth_key'];?>';             VK.api("getProfiles", {uids:viewer_id,fields:"photo_big"}, function(data) {                image = data.response[0].photo_big;                                $.post('http://***.ru/valentin/main.php',                { "image": image},                function(data){ });            });        });            });</script>
Мне надо после исполнения данного скрипта перекинуть пользователя на другую страницу, делаю так

Код: Выделить всё

 <script type="text/javascript" charset="utf8" >    $(document).ready(function() {        VK.init(function() {             var viewer_id = 0;            var auth_key = 0;            var image ='';                        viewer_id = '<?php echo $_SESSION['viewer_id'];?>';            auth_key =  '<?php echo $_SESSION['auth_key'];?>';             VK.api("getProfiles", {uids:viewer_id,fields:"photo_big"}, function(data) {                image = data.response[0].photo_big;                                $.post('http://***.ru/valentin/main.php',                { "image": image},                function(data){ });            });        });                 window.location.href = "content.php"           });</script>
Но так получается, что сам скрипт не срабатывает, в базу ничего не отправляет.

Как сделать редирект после выполнения скрипта?
Пробовал через php, в конец добавлял :

Код: Выделить всё

<?phpheader("Location: content.php");?>
Все равно ничего не срабатывало.
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Редирект

Сообщение Alazaur »

Код: Выделить всё

                $.post('http://***.ru/valentin/main.php',                { "image": image},                function(data){ window.location.href = "content.php" });
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

Re: Редирект

Сообщение Fedya »

Странно, но почему-то все равно поле image в базе пустое, а если без редиректа, то все нормально заполняется
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

Re: Редирект

Сообщение Fedya »

В main.php
Вывожу $_POST['image'],
проверяю через чарлез - все нормально, ссылку на картинку выводит, но в базу не заполняет
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Редирект

Сообщение Alazaur »

Fedya, серверный скрипт в студию :D
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

Re: Редирект

Сообщение Fedya »

Напоминаю, что без редиректа работает)

Код: Выделить всё

 <?phpsession_start();       // данные приложения    $app_id = '1111111111'; // id приложения    $api_secret = '22222ddddd22222ddd'; // защищенный ключ приложения      $auth_key  = $_SESSION['auth_key'];    $viewer_id = $_SESSION['viewer_id'];    $image = $_POST['image'];    echo $image;    $real_key = md5($app_id."_".$viewer_id."_".$api_secret);    if ($auth_key == $real_key){        // соединение с БД        mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());        mysql_select_db($db_name) or die (mysql_error());        mysql_query("SET NAMES 'utf8'");                        $query = 'INSERT INTO `'.$table_name.'` (`uid`,`time`,`image`) VALUES ("'.$viewer_id.'","'.time().'","'.$image.'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `time`="'.time().'",`image` = "'.$image.'";';        $sql = mysql_query($query);                    }?> 
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Редирект

Сообщение Alazaur »

хм... и чего без редиректа работает, а с редиректом нет?
Если вы сделали так как я вам сказал:

Код: Выделить всё

<script type="text/javascript" charset="utf8" >    $(document).ready(function() {        VK.init(function() {            var viewer_id = 0;            var auth_key = 0;            var image ='';                       viewer_id = '<?php echo $_SESSION['viewer_id'];?>';            auth_key =  '<?php echo $_SESSION['auth_key'];?>';             VK.api("getProfiles", {uids:viewer_id,fields:"photo_big"}, function(data) {                image = data.response[0].photo_big;                               $.post('http://***.ru/valentin/main.php',                { "image": image},                function(data){ window.location.href = "content.php" });            });        });    });</script>
То такого не должно быть, ибо скрипт редиректит только после ответа сервера. Может вы забыли свою строчку с редиректом из конца js скрипта убрать?
PS вместо

Код: Выделить всё

<?php echo $_SESSION['viewer_id'];?>
можно писать

Код: Выделить всё

<?=$_SESSION['viewer_id']?>
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

Re: Редирект

Сообщение Fedya »

Неа, не забыл
А как
После

Код: Выделить всё

 image = data.response[0].photo_big;
image записать в сессию?
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

Re: Редирект

Сообщение Fedya »

Блин, понял, там дальше на второй странице идет еще один запрос, он обнуляет значение в базе, спасибо за помощь
Ответить