Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   проверка auth key (http://www.flasher.ru/forum/showthread.php?t=166236)

argoniummm 01.09.2011 00:36

проверка auth key
 
PHP код:

<?php
// данные доступа к базе данных
$db_host="localhost";       // обычно не нужно изменять
$db_user="user";        // имя пользователя БД
$db_password="pass";        // пароль БД
$db_name "name";      // имя БД
$table_name "stat";       // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо
 
// данные приложения
$app_id '743131'// id приложения
$api_secret 'qwertyuiopasdfghjklzxcvbnm'// защищенный ключ приложения
 
 
$auth_key  $_POST['auth_key'];
$viewer_id $_POST['viewer_id'];
 
$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`) VALUES ("'.$viewer_id.'","'.time().'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `last_date`="'.time().'";';
    
$sql mysql_query($query);
    echo 
"OK";
}
?>

Собственно есть такой вот пхп код.
Данные о бд я подставил правильно.
По моему проблема в строке:
if ($auth_key == $real_key)
т.к. если поставить else {echo "NO"}
и вызвать его таким образом:
http://mob51.ru/prilo/stat.php?auth_...r_id=133339432
он выводит NO. Т.е. он не проходит проверку аутх кея.

Silicium 01.09.2011 01:39

Цитата:

вызвать его таким образом:
http://mob51.ru/prilo/stat.php?auth_...r_id=133339432
разве это не GET-запрос? что выдаст строчка echo $auth_key?

andrew911 01.09.2011 02:57

Сгенерируйте функцией auth_key и сверьте с тем что приходит

argoniummm 01.09.2011 19:43

Таксь. Если сменить на GET то через строку адреса заработало. Но вот из флеша он принимать данные не хочет. Правильно ли я всё сделал:
Код AS3:

var stat_loader:URLLoader = new URLLoader();
            var stat_request:URLRequest=new URLRequest("http://mob51.ru/prilo/stat.php");
            stat_request.method=URLRequestMethod.POST;
            var stat_vars:URLVariables = new URLVariables();
                        stat_vars['auth_key'] = flashVars['auth_key'];
                        stat_vars['viewer_id'] = flashVars['viewer_id'];
                        stat_request.data=stat_vars;
            stat_loader.load(stat_request);


andrew911 01.09.2011 21:07

Что такое flashVars и как он заполняется?

argoniummm 02.09.2011 00:18

Код AS3:

var flashVars:Object = stage.loaderInfo.parameters as Object;
var VK:APIConnection = new APIConnection(flashVars);


Silicium 02.09.2011 12:13

Цитата:

stat_request.method=URLRequestMethod.POST;
Вот и не работает. Если тут Вы задаете метод POST, то и в пхп вытаскивать переменные должны из $_POST. То же самое касается и GET-запросов.

argoniummm 02.09.2011 18:52

PHP код:

$auth_key  $_POST['auth_key']; 
$viewer_id $_POST['viewer_id']; 

Эм... Я так и делаю....

Silicium 02.09.2011 23:23

Вижу, у тебя получилось?
http://mob51.ru/prilo/stat.php?auth_...r_id=133339432

argoniummm 02.09.2011 23:45

А ты попробуй нажать на ссылку а не копировать её. У тебя часть ссылки "съедается". У меня вот что выводит: ee2d63ca1ca5ec39626bbb1cab046413133339432OK у тебя же NO

Silicium 03.09.2011 00:12

странно, я по ней переходил сегодня, получил как раз что-то похожее на
ee2d63ca1ca5ec39626bbb1cab046413133339432OK

argoniummm 03.09.2011 00:49

В окне браузера работает... А вот из приложения записывать не хочет...


Часовой пояс GMT +4, время: 22:38.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.