• Как определить, что клиент зашел на сайт через браузер iPhone?

    searching on the net there are two common ways of achieving this. My favorite though is in PHP its just so clean? wow. :D

    In PHP you can write

    <?php function isIphone($user_agent=NULL) { if(!isset($user_agent)) { $user_agent = isset($_SERVER[′HTTP_USER_AGENT′]) ? $_SERVER[′HTTP_USER_AGENT′] : ′′; } return (strpos($user_agent, ′iPhone′) !== FALSE); } if(isIphone()) { header(′Location: http://www.yourwebsite.com/phone′); exit(); } // ...THE REST OF YOUR CODE HERE ?>

    and in javascript you can write

    var agent = navigator.userAgent; var isIphone = ((agent.indexOf(′iPhone′) != -1) || (agent.indexOf(′iPod′) != -1)) ; if (isIphone) { window.location.href = ′http://www.yourwebsite.com/phone′; }



  • PHP + cURL. Парсинг сайта с формой авторизации. Шаг 2

    Итак, нам удалось подключиться к сайту, получать от него COOKIE и отдавать их обратно вместе с другими заголовками, создавая видимость работы обычного браузера. Но как мы узнаем, прошла ли авторизация? Самым простым способом мне показалось найти в полученном коде код кнопки "Logout", которая присутствует на странице, если пользователь успешно авторизовался.

    function isAuth( $data ) {
      $flag = false;
      preg_match_all( ′/<button[^>]+?[^>]+>(.*?)</button>/i′, $data, $m );
      foreach( $m[ 1 ] as $a ) {
        if ( $a == ′Logout′ ) {
          $flag = true;
        }
      }
      return $flag;
    }
    if ( isAuth( $data ) ) {
      echo ′Авторизованы!′;
    } else {
      echo ′Не авторизованы!′;
    }



  • PHP + cURL. Парсинг сайта с формой авторизации. Шаг 1

    Бывают ситуации, когда надо получить контент множества страниц сайта-каталога. Но, как назло, каталог виден только тем пользователям, которые прошли процедуру авторизации. Как же быть?  Использовать PHP+cURL.

    Сначала смотрим код формы авторизации и ищем названия переменных, которые передаются скрипку авторизации, и url самого скрипта:

    <form id="loginForm" action="/SignonMain.aspx" method="post">
      <div>
        <div class="login-module-label float-left">LOGIN</div>
        <div class="float-left login-label-margintop">Username *</div>
        <div class="float-left"><input class="login-module-inputs" type="text" id="menuUserName" name="menuUserName"></div>
        <div class="float-left login-label-margintop">Password *</div>
        <div class="float-left"><input class="login-module-inputs" type="password" id="menuPassword" name="menuPassword"></div>
        <button type="button" class="button ladda-button npa-btn" id="bMainMenuLogin" data-style="expand-right">
          <span class="ladda-label">LOGIN</span>
        </button>
      </div>
    </form>

    Ага, имена переменных - "menuUserName" и "menuPassword", путь к скрипту - "/SignonMain.aspx". 

     function connect() {
      $ch = curl_init();
      curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" );
      curl_setopt( $ch, CURLOPT_URL, $site_url . ′/SignonMain.aspx′ ); // отправляем на
      curl_setopt( $ch, CURLOPT_HEADER, 0 ); // пустые заголовки
      curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); // возвратить то что вернул сервер
      curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 ); // следовать за редиректами
      curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 30 );// таймаут
      curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );// просто отключаем проверку сертификата
      curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 ); // Не проверять Host SSL сертификата
      curl_setopt( $ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . ′/cookie.txt′ ); // сохранять куки в файл
      curl_setopt( $ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . ′/cookie.txt′ );
      curl_setopt( $ch, CURLOPT_POST, 1 ); // использовать данные в post
      curl_setopt( $ch, CURLOPT_POSTFIELDS, array(
        ′menuUserName′ => $username,
        ′menuPassword′ => $password
      ) );
      $data = curl_exec( $ch );
      return $ch;
    }



  • Редизайн сайта

    Наконец-то у меня дошли руки и до своего собственного сайта. А то, как говорится, "сапожник без сапог". Смешно, конечно, но так оно и было. Переделал всю структуру, сделал сайт в форме блога. Портфолио вынес отдельным разделом, а новостная лента теперь - непосредственно блог.

    Удачной идеей мне показалось сделать привязку каждой записи к одной или нескольким подкатегориям, чтобы в дальнейшем можно было фильтровать результаты отображения записей по нужной теме, например, "Программирование".

    Добавил также систему комментариев к записям. Пока простенькую, но на этапе тестирования сойдет.

    Осталось сделать регистрацию и авторизацию, а также раздел "Всякоразности", в котором буду собирать информацию о промежуточных проектах, выполненных мною.



  • Фриланс для программистов: подборка лучших сайтов

    Взято с сайта https://proglib.io - https://proglib.io/p/freelance/

    Многие ищут фриланс для программистов, но далеко не все знают, где искать. Мы составили список ресурсов, которые вас заинтересуют.

    Разберемся, что представляет из себя фриланс для программистов, и как быстро освоиться на приведенных ниже сайтах.

    1. FL

    Говорят, что фрилансеры здесь варятся в собственном соку. И это отчасти правда, ведь те, кто успел запрыгнуть в ТОП с самого начала работы сайта, прочно там засели. У вас, естественно, не будет столько заказов, сколько у «избранных», что, тем не менее, не означает отсутствие работы у «простых смертных».

    Для фрилансеров существует множество категорий, так что каждый найдет свою специализацию. Другое дело, что FL с давних пор платный. Если изначально лишь некоторые заказчики делали заказы доступными для исполнителей с PRO-аккаунтами, то теперь, чтобы оставить комментарий под любым заказом, нужно этот самый аккаунт иметь. А это ни много ни мало почти 1700 руб./мес. И ведь не факт, что отобьются…

    Куда комфортнее себя чувствуют работодатели: можно брать PRO, а можно и не брать. Ответов по проекту в любом случае будет море. Да и дешевле обходятся вебмастерам все эти PRO-плюшки.

    Несправедливо, да. Но привыкайте: золотое правило фриланса – заказчик всегда прав.

    Остальное - под катом )



  • PHP - как определить браузер пользователя?

    Нашел хорошее решение. Наряду с $_SERVER[ "USER_AGENT" ] можно использовать функцию get_browser().
    Чтобы она заработала, понадобится файл browscap.ini. Скачать его можно здесь - http://browscap.org/.

    PHP.ini:

    [browscap]
    browscap = "usr/local/php5/ext/browscap.ini" ; тут ваш путь

    Код PHP:

    echo $_SERVER[ "HTTP_USER_AGENT" ] . " ";
    $browser = get_browser( null, true );
    print_r( $browser );

    Вот, что получим в итоге:

    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.22 Safari/537.36
    Array
    (
     [browser_name_regex] =>^mozilla/5.0 (.*windows nt 6.1.*) applewebkit/.* (khtml, like gecko) chrome/48..*safari/.*$
     [browser_name_pattern] => Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko) Chrome/48.*Safari/*
     [parent] => Chrome 48.0
     [platform] => Win7
     [comment] => Chrome 48.0
     [browser] => Chrome
     [browser_maker] => Google Inc
     [version] => 48.0
     [majorver] => 48
     [device_type] => Desktop
     [device_pointing_method] => mouse
     [minorver] => 0
     [ismobiledevice] =>
     [istablet] =>
     [crawler] =>
    )
    

    Вот и все. Удачи!



Загрузка...

Войти на сайт

Регистрация