• Странность с session в php

    Zerstoren
    @Zerstoren
    Загляните в /var/log/apache2/error или близкое по смыслу. Туда скидываются php ошибки.
    Ответ написан
    Комментировать
  • Freeswitch: SSL/TLS работает только из-под рута. Как починить?

    Zerstoren
    @Zerstoren
    Посмотрите какой порт используется.
    Если порт до 1024, то рут обязателен.

    Найдите в настройках, как поменять порт и установите на любой порт выше 1025.
    Ответ написан
  • Создание LiveCD на базе сервера с Ubuntu 12.04

    Zerstoren
    @Zerstoren
    Отвечу не совсем, так как вы хотите.
    Может быстрее и менее затратно будет написать хороший шелловский скрипт, который сам все проинсталлит, соберет, скомпилит, устранит зависимости и многое другое.

    Потому что собирать дистрибутив, не очень здравая идея, а учитывая что часть софта всё равно комплится, то команды компиляции всё равно нужно будет писать.

    Если вы хотите собрать дистрибутив с софтом, который будет работать из коробки, то мой совет выше будет очень не уместен.
    Ответ написан
    Комментировать
  • SEO - имеет ли значение url?

    Zerstoren
    @Zerstoren
    Да, имеет.
    Параметры в ЧПУ следуют друг-за-другом и изменение порядка привлечет к вызову 404 страницы или другого контента.
    Без ЧПУ, параметры могут меняться и добавляться вызывая одну и ту-же страницу, что само собой пораждает дубли страницы.

    Не заморачивайтесь над структурированием URL, главное чтоб был ЧПУ и не было возможности вызвать одну и туже страницу с разных адресов.
    Ответ написан
    1 комментарий
  • Кто тестировал Оператор IN в MySQL? Насколько он быстр и есть ли альтернативы?

    Zerstoren
    @Zerstoren
    В случае потребности IN, добавляю LIMIT с DISTINCT. В добавок если IN приходит как список, то можно сразу-же и узнать длину списка для LIMIT.

    Но выбирать строки будет долго, лучше цифры и то с индексами.

    Собственно сравнение двух вариантов, при холодном запуске.
    В базе храниться 4 миллиона записей.

    SELECT DISTINCT * FROM `map` WHERE id IN ( 4, 5291, 12356, 256783, 1234, 1654, 57572 ) LIMIT 7
    ~0.0008 — сек

    SELECT * FROM `map` WHERE id IN(4,5291,12356,256783,1234,1654,57572)
    ~0.0012 — сек
    Ответ написан
    Комментировать
  • Создание страниц в Facebook. С чего начать?

    Zerstoren
    @Zerstoren
    Табы — это вкладки на странице групп
    А iframe — это просто страница вашего сайта.
    Лучше по экспериментируйте с тестовыми страницами, много чего станет ясно.
    Ответ написан
  • Создание страниц в Facebook. С чего начать?

    Zerstoren
    @Zerstoren
    Никаких инструментов нету. Только ваши познания в веб технологиях и серверных языках.
    Единое что facebook Вам даст — это информацию о текущем пользователе. Ее вы можете посмотреть.

    function parse_signed_request($signed_request = false, $secret) {
      if( $signed_request === false )
            $signed_request = $_REQUEST['signed_request'];
    
      list($encoded_sig, $payload) = explode('.', $signed_request, 2);
    
      // decode the data
      $sig = base64_url_decode($encoded_sig);
      $data = json_decode(base64_url_decode($payload), true);
    
      if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
        error_log('Unknown algorithm. Expected HMAC-SHA256');
        return null;
      }
    
      // check sig
      $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
      if ($sig !== $expected_sig) {
        error_log('Bad Signed JSON signature!');
        return null;
      }
    
      return $data;
    }
    
    function base64_url_decode($input) {
      return base64_decode(strtr($input, '-_', '+/'));
    }
    $page = parse_signed_request(false , 'bd84f7d726a40620df9781d72ca67994' );
    
    Пример на PHP
    <source lang="php">
    function parse_signed_request($signed_request = false, $secret) {
      if( $signed_request === false )
            $signed_request = $_REQUEST['signed_request'];
    
      list($encoded_sig, $payload) = explode('.', $signed_request, 2);
    
      // decode the data
      $sig = base64_url_decode($encoded_sig);
      $data = json_decode(base64_url_decode($payload), true);
    
      if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
        error_log('Unknown algorithm. Expected HMAC-SHA256');
        return null;
      }
    
      // check sig
      $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
      if ($sig !== $expected_sig) {
        error_log('Bad Signed JSON signature!');
        return null;
      }
    
      return $data;
    }
    
    function base64_url_decode($input) {
      return base64_decode(strtr($input, '-_', '+/'));
    }
    $page = parse_signed_request(false , 'Your_secret_code_application' );
    var_dump($page);
    


    И при создании страниц используется iframe с ограниченной шириной в 520 пикселей.

    В добавок, сейчас Facebook сделал идиотскую систему добавления табов на страницу. По этому очень много манов становятся не актуальны по этому вопросу. Вот мой вчерашний вопрос. habrahabr.ru/qa/14612/

    Там Вы найдете ответ на вопрос, как добавить к группе свое iframe приложение.

    Сори за длинную мессагу)
    Ответ написан