<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>аркен</title><link type="text/css" rel="StyleSheet" href="/css/style.css"><script src="js/jquery-1.4.2.min.js" type="text/javascript"></script><script src="js/script.js" type="text/javascript"></script><script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script> <script type="text/javascript" charset="cp1251" >window.onload = (function() { // когда загрузится вся страница VK.init(function() { // инициализируем Vk API // узнаём flashVars, переданные приложению GET запросом. Сохраняем их в переменную flashVars var parts=document.location.search.substr(1).split("&"); var flashVars={}, curr; for (i=0; i<parts.length; i++) { curr = parts[i].split('='); // записываем в массив flashVars значения. Например: flashVars['viewer_id'] = 1; flashVars[curr[0]] = curr[1]; } // вытаскиваем viewer_id и auth_key из полученных переменных var viewer_id = flashVars['viewer_id']; var auth_key = flashVars['auth_key']; // отправляем post запрос, передаём viewer_id и auth_key $.post('/conf.php', // заменяем на адерс своего скрипта { "viewer_id": viewer_id, "auth_key": auth_key }, // передаваемые значения function(data){ // функция после выполнения передачи данных $('result').html(data); }); });});</script>
в котором я получаю uid и autkey с занесением в базу. Но как только я добавляю код получения данных пользователя все перестает работать. Подскажите как правильно добавить в код чтоб получить псевдоним юзера с занесением его в базу.
<html><head><!-- подключаем xd_connection.js --><script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script><!-- подключаем фреймворк для отправки запроса --><script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script><script type="text/javascript" charset="cp1251" >window.onload = (function() { // когда загрузится вся страница VK.init(function() { // инициализируем Vk API // узнаём flashVars, переданные приложению GET запросом. Сохраняем их в переменную flashVars var parts=document.location.search.substr(1).split("&"); //переменная для никнейма var nick; var flashVars={}, curr; for (i=0; i<parts.length; i++) { curr = parts[i].split('='); // записываем в массив flashVars значения. Например: flashVars['viewer_id'] = 1; flashVars[curr[0]] = curr[1]; } // получаем viewer_id и auth_key из полученных переменных var viewer_id = flashVars['viewer_id']; var auth_key = flashVars['auth_key']; // выполняем запрос получения профиля, не забудь перечислить поля.возможно здесь ошибаешься VK.api("getProfiles", {uids:viewer_id,fields:"nickname,first_name,last_name"}, function(data) { // обрабатываем полученные данные nick = data.response[0].nickname; //выполняем запрос к пхп файлу //http://host.ru/file.php - поменяй на полный адрес к своему пхп файлу //name и fame в ковычках после data: - это и есть параметры пост запроса к файлу,т.е. //в файле будешь получать $_POST['name'] и $_POST['fame'] - первое имя,второе - фамилия $.ajax({ type: "POST", url: "http://host.ru/file.php", data: "name=" + nick, success: function(msg){ //сюда напиши код для удачной отправки например: alert('Все сработало отлично'); }, error: function(a,b,err){ //сюда напиши код для неудачной отправки, например: alert('Какойто косяк'); } }) });});});</script></head><body></body></html>
<?php// данные доступа к базе данных$db_host="localhost"; // обычно не нужно изменять$db_user="база"; // имя пользователя БД$db_password="пасс"; // пароль БД$db_name = "имя"; // имя БД$table_name = "stat"; // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо // данные приложения$app_id = 'ид'; // id приложения$api_secret = 'тут ключ'; // защищенный ключ приложения $auth_key = $_POST['auth_key'];$viewer_id = $_POST['viewer_id'];$name = $_POST['name'];$fame = $_POST['fame']; $pic = $_POST['photo']; $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'"); // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, прибавляя одно посещение (`visits` = (`visits`+1)) $query = 'INSERT INTO `'.$table_name.'` (`uid`, `last_date`, `login`, `password`) VALUES ("'.$viewer_id.'","'.time().'","'.$first_name.'","'.$auth_key.'") ON DUPLICATE KEY UPDATE `visits` = (`visits`+1), `last_date`="'.time().'", `login`="'.$first_name.'", `password`="'.$auth_key.'";'; $sql = @mysql_query($query); echo "OK";}?>
<?php// данные доступа к базе данных$db_host="localhost"; // обычно не нужно изменять$db_user="база"; // имя пользователя БД$db_password="пасс"; // пароль БД$db_name = "имя"; // имя БД$table_name = "stat"; // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо // данные приложения$app_id = 'ид'; // id приложения$api_secret = 'тут ключ'; // защищенный ключ приложения $auth_key = $_POST['auth_key'];$viewer_id = $_POST['viewer_id'];$name = $_POST['name'];$fame = $_POST['fame']; $pic = $_POST['photo']; $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'"); */ // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, прибавляя одно посещение (`visits` = (`visits`+1)) $query = 'INSERT INTO `'.$table_name.'` (`uid`, `last_date`, `login`, `password`) VALUES ("'.$viewer_id.'","'.time().'","'.$first_name.'","'.$auth_key.'") ON DUPLICATE KEY UPDATE `visits` = (`visits`+1), `last_date`="'.time().'", `login`="'.$first_name.'", `password`="'.$auth_key.'";'; $sql = @mysql_query($query); echo "OK";/*}*/?>
не думаю. Так как в моем первом коде "index.php" uid, auth key передаются и в базу заносятся с добавлением визитов.
А если в добавляю в index.php получение VK.api("getProfiles") то сразу ничего не работает и в базу не пишется
Вообще немогу понять что не так...
VK.api("getProfiles") - это в файле в iframe который? должно быть там, а не в скрипте который в базу пишет.т.е. не в conf.php
ну и опять же убери проверку как я показал на время. я сам проверял - все работает.
acpid писал(а):VK.api("getProfiles") - это в файле в iframe который?
да. главная страница index.php
acpid писал(а):ну и опять же убери проверку как я показал на время. я сам проверял - все работает.
ничего не изменило.....
Ничего если я тестирую на тестовом приложении которое я не посылал на одобрение? Хотя бредово все остальное получает а как get api profiles ставлю вообще ничего не обновляет. В настройках приложения стоит получение вики разметок.....