Перейти к содержимому

Фотография

Нужна помощь


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 burnout

burnout

    Ученик

  • Пользователи
  • PipPip
  • 10 сообщений
0
Обычный

Отправлено 06 Февраль 2015 - 22:19

Помогите исправить запилил привязку по уроку и берёт данные в базе только с верхней строки, чуть ниже оставил код
c29c6e424474c412b696663386b6d25f.png

 

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

<?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');
    }
}
?>

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



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

<?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($fp, 1000), "Status: 202 Accepted") == 1){return true; }
    }
     return false;
}

?>

  • 0

На правах рекламы

#2 burnout

burnout

    Ученик

  • Пользователи
  • PipPip
  • 10 сообщений
0
Обычный

Отправлено 07 Февраль 2015 - 08:43

up....


  • 0

#3 support

support

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений
0
Обычный

Отправлено 07 Февраль 2015 - 15:05

Исправляется в течение 10 секунд :D если так по секрету :) 


  • 0

#4 Николай Буров

Николай Буров

    Свой человек

  • Киберсанты
  • PipPipPipPipPip
  • 928 сообщений
614
Очень хороший
  • Пол:Мужчина

Отправлено 07 Февраль 2015 - 17:28

Уберите точку с запятой в самом запросе

$res = @mysql_query("SELECT `HOST` FROM `Good_Host`;");

То есть вот так

$res = @mysql_query("SELECT `HOST` FROM `Good_Host`");

  • 0

#5 FORS

FORS

    Никогда не сдавайся!

  • Киберсанты
  • PipPipPipPipPip
  • 1 112 сообщений
302
Очень хороший
  • Пол:Мужчина

Отправлено 07 Февраль 2015 - 18:08

три раза перечитал, так и не понял что вы хотите. Сформулируйте конкретную задачу. Есть, то то то и то. Надо так, так и так и в результате вот так.


  • 0

Все будет Хорошо!=)


#6 Николай Буров

Николай Буров

    Свой человек

  • Киберсанты
  • PipPipPipPipPip
  • 928 сообщений
614
Очень хороший
  • Пол:Мужчина

Отправлено 07 Февраль 2015 - 18:31

так и не понял что вы хотите

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

burnout, вот этот кусок кода

$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');
    }
}

Лучше заменить на вот такой

$res = @mysql_query("SELECT `HOST` FROM `Good_Host`;");
        

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

и точку с запятой уберите, вот такой код оставьте

$res = @mysql_query("SELECT host FROM Good_Host");
        

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

  • 1

#7 burnout

burnout

    Ученик

  • Пользователи
  • PipPip
  • 10 сообщений
0
Обычный

Отправлено 07 Февраль 2015 - 20:18

спс


  • 0




Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 скрытых пользователей