1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Как привязать скрипт к домену

Тема в разделе "Web Coding", создана пользователем Aragorn, 14 окт 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Aragorn

    Aragorn Постоялец

    Регистр.:
    2 окт 2006
    Сообщения:
    117
    Симпатии:
    75
    Есть скрипт и его надо жестко привязать к домену, как это сделать. Находил кучу примеров но ни один не работает. Гуру в PHP подскажите пожалуйста
     
  2. ewg777

    ewg777

    Регистр.:
    6 авг 2007
    Сообщения:
    763
    Симпатии:
    321
    Создавать уникальный ключ относительно доменного имени, проверять этот ключ и все это зашифровать ioncube или zend.
     
  3. Aragorn

    Aragorn Постоялец

    Регистр.:
    2 окт 2006
    Сообщения:
    117
    Симпатии:
    75
    Ну а можно как для совсем тупого :) привести пример кода на PHP я вот такое нарыл но что то ничего не работает:

    PHP:
    $domain="domain.ru";
    if (
    $domain==$HTTP_HOST) {
    Здесь можно вписать сам кода можно вставить файл include();
    }
    else {
    Сообщение об ошибкеможно так жечерез include() или
    print ('Ошибка');
    }

    и вот

    PHP:
    <? 
    $host ='site.ru';

    if (
    $host != $_SERVER['HTTP_HOST']&&'www.'.$host != $_SERVER['HTTP_HOST'])  

    {echo 
    "Ошибка)))"; exit;}  

    ....
    //Ваш код дальше 

    ?>
    и даже вот:

    PHP:
    Скрипт на Вашем сервере:
    Допустим на Вашем хостинге используется MySQL и на хосты вот такая табличка:
    первое поле ID 
    второе HOST 
    имя таблички Good_Host


    CODE
    <?php
    // Секция базы данных
    $site['db']['user']   = "Пользователь";
    $site['db']['pass']   = "Пароль";
    $site['db']['base']   = "Имя базы";
    $site['db']['host']   = "Ваш хост";
    $site['coding']    = "cp1251";
    $site['loc']       = "cp1251_general_ci";
    // Соединямся
           
    $connect = @mysql_connect($site['db']['host'], $site['db']['user'], $site['db']['pass'])or
           die(
    "Ошибки при попытке соедениться с сервером баз данных.");
           
    $select = @mysql_select_db($site['db']['base'])
           or die(
    "Ошибки при попытке соедениться с базой данных.");
           
    // попытка решить проблему кодировок
           
    @mysql_query("SET NAMES '".$site['coding']."'");
           @
    mysql_query("SET CHARACTER SET '".$site['coding']."'");
           @
    mysql_query("SET @@collation_connection = ".$site['loc']."");

    // Выберим данные 
    $res = @mysql_query("SELECT `HOST` FROM `Good_Host`;");
    $array = @mysql_fetch_assoc($res);        

    // Проверим есть ли хост переданный нам для проверки в списке
    foreach ($array as $val) {
       if (
    trim($val) == $_GET['host']){
           
    // Если есть выведим такой статус
           
    header('Status: 202 Accepted');
       }
    }
    ?>


    Тут же можно организовать занесения в черный лист и тд...

    Скрипт который будет в Вашем приложении отвечать за проверку выглядит примерно так


    CODE
    <?php
    $fp 
    fsockopen("Ваш хост"80);

    fputs($fp"GET /имя_скрипта.php?host=".$_SERVER['HTTP_HOST']." HTTP/1.1\r\n");

    fputs($fp"Host: localhost\r\n");

    fputs($fp"Connection: close\r\n");

    fputs($fp"\r\n");

    // Если нелегальное использование, выведим сообщение...
    if(!check_header($fp)) exit("Ну и какого хрена???");

    fclose($fp);

    //
    // Ну а тут уже Ваши данные и тд..
    //
    //


    function check_header($fp){
       while (!
    feof($fp)){
        if (
    substr_count(fgets($fp1000), "Status: 202 Accepted") == 1){return true; }
       }
        return 
    false;
    }

    ?>

    помогите :)
     
  4. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    Более того сделать в каждом файле эту проверку. Чтобы при дезенде пришлось дезендить все. А это мало кому понравится.
     
  5. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
Статус темы:
Закрыта.