Как перенаправить пользователя на нужную страницу?

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

Re: Как перенаправить пользователя на нужную страницу?

Сообщение Casperovskii »

Dimaz
Наши поздравления!
Dimaz
Сообщения: 76
Зарегистрирован: 15 ноя 2012, 18:37

Re: Как перенаправить пользователя на нужную страницу?

Сообщение Dimaz »

Спасибо.) Можно еще вопрос? Что сначала писать

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

$(document).ready(function(){(function(){...})();});
Или наоборот

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

(function(){$(document).ready(function(){...});})();
Функцию обертку первую или document ready?
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Как перенаправить пользователя на нужную страницу?

Сообщение Alazaur »

Dimaz, по умолчанию JavaScript начинает выполняться, как только его код будет загружен, он не ждет пока загрузится весь документ. Поэтому весь HTML, который написан после него, он во время выполнения не видит, то есть если вы захотите чтобы ваш JS поменял какие-то элементы страницы, находящиеся в исходном коде после него, то он отвалится с ошибкой, что таких элементов не существует. А написав document ready вы указываете, что код внутри этого блока должен быть выполнен только после того, когда загрузится вся структура документа. Или можно сказать и в другом контексте - функция в $(document).ready() выполнится сразу же, как только будет построена структура документа. Вследствие чего логично, что document ready обычно пишут сначала, а уже внутри него остальной код.
Dimaz
Сообщения: 76
Зарегистрирован: 15 ноя 2012, 18:37

Re: Как перенаправить пользователя на нужную страницу?

Сообщение Dimaz »

Alazaur Спасибо. Еще вопрос. Когда я поменял в настройках приложения адрес iframe с auth.php на index.php, get-параметры запроса стали передаваться в приложение. Но когда я сегодня зашел в свое приложение, оно мне выдало auth_key error. Вот начало кода index.php:

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

<? include("user_auth.php"); ?><!DOCTYPE HTML><html> <head>  ...
Я подключил в index.php еще include("auth.php") перед include("user_auth.php"). Теперь выдает: "Неизвестная ошибка", но страница с приложением грузится. auth.php у меня получает параметры, переданные get-запросом, потом подключается config.php, функция md5 вычисляет хэш из всего этого и затем полученный хэш сверяется с переданным auth_key и устанавливаются куки. Вот сам код auth.php:

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

<?php$user_id = $_GET['viewer_id'];$auth_key = $_GET['auth_key'];if($user_id && $auth_key) {    include("config.php");    $real_auth_key = md5($api_id."_".$user_id."_".$api_key);    if($real_auth_key == $auth_key) {        setcookie("viewer_id", $user_id);        setcookie("auth_key", $auth_key);        header("Location: index.php");    }    else {        echo("Ошибка auth_key");    }}else {    echo("Неизвестная ошибка!");}?>
Этот скрипт не может принять параметры и установить куки, так как я поменял настройки приложения и параметры теперь передаются в скрипт index.php. Вот на всякий случай код user_auth.php:

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

<?phpinclude_once("config.php");$real_auth_key = md5($api_id."_".$_COOKIE['viewer_id']."_".$api_key);if($real_auth_key != $_COOKIE['auth_key']) {    echo("auth_key error");    exit;}?>
Как мне лучше сделать? Совсем удалить скрипт auth.php и перенести его содержимое в index.php? Или есть другой вариант?
Dimaz
Сообщения: 76
Зарегистрирован: 15 ноя 2012, 18:37

Re: Как перенаправить пользователя на нужную страницу?

Сообщение Dimaz »

Только что проверил, в Куки редакторе, куки он все таки устанавливает, почему же тогда auth.php выдает "Неизвестная ошибка"?
Dimaz
Сообщения: 76
Зарегистрирован: 15 ноя 2012, 18:37

Re: Как перенаправить пользователя на нужную страницу?

Сообщение Dimaz »

Кстати get-параметры он теперь снова не передает в index.php. Убираю include("auth.php");, тогда передает. Чищу куки, обновляю страницу, выдает auth_key error. Подключаю include("auth.php");, выдает "Неизвестная ошибка", куки устанавливаются, но параметры опять не принимает. :(
Ответить