Ответы пользователя по тегу WordPress
  • Как передать get-запрос другому моему сайту?

    @Forman Автор вопроса
    Есть еще один рабочий способ (на php):
    file_get_contents('https://site2.com/?g='.$_GET['g']);

    Но в отличие от xhr-запроса, он относится к "прямому трафику", что дает некорректную статистику в скриптах.
    XHR-запросы, напротив, в статистике будут отражать ссылку, с которой был запрос (что намного удобнее). Хотя, может быть, это проблема самих скриптов.
    Ответ написан
    1 комментарий
  • Как назначить или прочитать cookies с другого моего сайта?

    @Forman Автор вопроса
    Из соображений безопасности нельзя читать/писать куки из другого домена (вопрос о поддоменах одного домена и свойстве domain оставляю на самостоятельное изучение). Но, как и в любом правиле здесь есть исключение. Cross-domain cookies можно сделать если оба домена твои. Под "твои" я подразумеваю что ты сам можешь на них разместить нужные тебе скрипты. Организовать это можно следующим образом. Пишем скрипт, который читает имя куки из реквеста и выдает значение в респонс, еще скрипт, который ставит куку. Теперь на другом домене мы спокойно можем расположить html где при помощи элементов script можем дергать скрипты с другого домена, которые будут читать/писать куки. Html будет лежать в одном домене, а куки дергать мы будем для другого домена.

    Вот простейший пример:

    setcookie.php:
    <?php
        setcookie($_REQUEST["name"], $_REQUEST["value"], time() + 36000);
    ?>


    getcookie.php
    <?php
        $cookiename = $_REQUEST["name"];
        echo "alert('" . $cookiename . " = " . $_COOKIE[$cookiename] . "');";
    ?>


    listcookies.php:
    <?php
        foreach ($_COOKIE as $name => $value) {
            echo "alert('" . $name . " = " . $value . "');";
        }
    ?>


    testcookies.html
    <html>
    <head>
    <script type="text/javascript">
    function listCookies() {
        exec(document.getElementById('scriptsLocation').value + 'listcookies.php?rnd=' + 
            Math.random());
    }
    function setCookie() {
        exec(document.getElementById('scriptsLocation').value + 'setcookie.php?name=' + 
            document.getElementById('cookieName').value + '&value=' + 
            document.getElementById('cookieValue').value + '&rnd=' + Math.random());
    }
    function getCookie() {
        exec(document.getElementById('scriptsLocation').value + 'getcookie.php?name=' + 
            document.getElementById('cookieName').value + '&rnd=' + Math.random());
    }
    function exec(sUrl) {
        var head = document.getElementsByTagName('head').item(0);
        var script = document.createElement('script');
        script.src = sUrl;
        script.type = 'text/javascript';
        script.defer = true;
        void(head.appendChild(script));
    }
    </script>
    </head>
    <body>
    scripts location on other domain: <input type="text" id="scriptsLocation" value="http://your.other.domain/scripts/location/" /><br />
    cookie name: <input type="text" id="cookieName" /><br />
    cookie value: <input type="text" id="cookieValue" /><br />
    <input type="button" value="Set cookie" onclick="setCookie()" />
    <input type="button" value="Get cookie" onclick="getCookie()" />
    <input type="button" value="List cookies" onclick="listCookies()" />
    </body>
    </html>


    P.S. Проверять работоспособность конкретного примера в Firefox. IE не хочет динамически грузить скрипты у которых в урле есть параметры. Но если это даже и ограничение IE, то это легко обходится через mod_rewrite.

    Источник: rsdn.org/forum/web/1903262.1
    Ответ написан
    Комментировать