Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   iFrame-приложение и crossdomain.xml (http://www.flasher.ru/forum/showthread.php?t=145369)

mayakwd 08.10.2010 08:10

Цитата:

afarber,
Спасибо, но мини-прелоадер неподходит - т.к. у меня один и тот же мувик для ВКонтакте, Одноклассников, Мейл.ру и др., и главное - пользователи с разных соц. сетей заходят и друг с другом играют.
не понятно что вам мешает использовать мини-прелоадер который грузит флешку в себя и передает ей управление. все будет точно так же за исключением того, ваша флешка будет уже находиться в домене вк.

afarber 08.10.2010 18:54

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

Т.е. им нужно видеть скалированные аватары других игроков. Мини-прелоадер поможет им видеть только аватары игроков со своей сети.

Я доделал свой прокси скрипт - может кому пригодится, теперь вроде бы и с Контаком и с Одноклассниками работает:

PHP код:

<?php

define
('MAX_SIZE', 1024 * 1024);

$img = $_GET['img'];
if (
strpos($img, '..') !== false ||
    !
preg_match(',^http://[\w.-]*(vkontakte|odnoklassniki)\.ru/[\w./?&=-]+$,i', $img, $matches))
        exit();

$opts = array(
        
'http'=>array(
                
'method' => 'GET',
                
'header' => 'Referer: http://' . $matches[1] . '.ru/'
        
)
);

$ctx = stream_context_create($opts);
stream_context_set_params($ctx, array('notification' => 'callback'));
$fh = fopen($img, 'r', false, $ctx);
fpassthru($fh);
fclose($fh);

function 
callback($code, $severity, $message, $message_code, $bytes_transferred, $bytes_total) {
        if (
$code == STREAM_NOTIFY_PROGRESS && $bytes_transferred > MAX_SIZE)
                exit();

        if (
$code == STREAM_NOTIFY_FILE_SIZE_IS)
                if (
$bytes_total > MAX_SIZE)
                        exit();
                else
                        
header('Content-Length: ' . $bytes_total);

        if (
$code == STREAM_NOTIFY_MIME_TYPE_IS) {
                
$mime = strtolower($message);
                switch(
$message) {
                        case 
'image/gif':
                        case 
'image/png':
                        case 
'image/jpg':
                        case 
'image/jpeg':
                                
header('Content-Type: ' . $mime);
                                break;
                        default:
                                exit();
                }
        }
}

?>



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

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