Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ограничение по ип + ранк, для мониторинга серверов 
:(
    Опции темы
alu666
  Дата 23.7.2009, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2009

Репутация: нет
Всего: нет



здравствуйте - вот почитав ваш форум вывел себе код ранка для мониторинга серверов, но возникла проблема
запрос в бд на айпи не обрабатываеться(возможно я чтото нетак написал)

Код


<?php

 function get_ip()
  {
   if ($ip = getenv("HTTP_CLIENT_IP"))
    {  return $ip;  }

   if ($ip = getenv("HTTP_X_FORWARDED_FOR"))
    {
     if ($ip == '' || $ip == "unknown")
      {  $ip = getenv("REMOTE_ADDR");  }

     return $ip;
    }
   if ( $ip = getenv("REMOTE_ADDR") )
    {  return $ip;  }
  }


error_reporting(0);

@include ('./admin/md5_lib/mysql.php');

$db = new DB;

$db -> conf();

$id = @$_GET['id'];




 function check()
  {
   $result = mysql_query( "SELECT `ip` FROM `count` WHERE `ip` = '$ip' LIMIT 1" );

   if( mysql_num_rows( $result ) == 0 )
    {



$query = "SELECT `rank`
            FROM `md5_cs_servers`
            WHERE `id`='{$id}'
            LIMIT 1";



$sql = $db -> query($query) or die ("Ошибка MySQL");





while ($row = $db -> fetch($sql))

  {

$query = "UPDATE `md5_cs_servers`
                SET `rank`=`rank`+1
                WHERE id = '{$id}'
LIMIT 1";




    $sql2 = $db -> query($query) or die ($db -> Error("Ошибка MySQL"));


  }



    }
else
 {

@include ('./add_no.php');

while ($row = $db -> fetch($sql))

  {
   mysql_query( "INSERT INTO `count`
(`ip`)
value ('$ip') );
    $sql2 = $db -> query($query) or die ($db -> Error("Ошибка MySQL"));

  }

 }
}

?>



сразу извеняюсь, если немнога не так выразился - я прост ваще с пхп третий день ток работаю 0о
PM MAIL   Вверх
MoLeX
Дата 23.7.2009, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



исправь
Код

while ($row = $db -> fetch($sql))
  {
   mysql_query( "INSERT INTO `count`
(`ip`)
value ('$ip')");
    $sql2 = $db -> query($query) or die ($db -> Error("Ошибка MySQL"));
  }


Добавлено через 25 секунд
error_reporting(E_ALL); в самое начало и смотри на ошибки

Добавлено через 1 минуту и 51 секунду
и убери собак (@) перед инклудами


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
alu666
  Дата 23.7.2009, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2009

Репутация: нет
Всего: нет



странно - ошибок никаких не пишет - но не добавил мой ип в бд, и не добавил ранк +1(без условия добавлял)

вот изменёный вариант
Код

<?php

error_reporting(E_ALL);

 function get_ip()
  {
   if ($ip = getenv("HTTP_CLIENT_IP"))
    {  return $ip;  }

   if ($ip = getenv("HTTP_X_FORWARDED_FOR"))
    {
     if ($ip == '' || $ip == "unknown")
      {  $ip = getenv("REMOTE_ADDR");  }

     return $ip;
    }
   if ( $ip = getenv("REMOTE_ADDR") )
    {  return $ip;  }
  }



include ('./admin/md5_lib/mysql.php');

$db = new DB;

$db -> conf();

$id = @$_GET['id'];




 function check()
  {
   $result = mysql_query( "SELECT * FROM `count` WHERE `ip` = '$ip' LIMIT 1" );

   if( mysql_num_rows( $result ) == 0 )
    {



$query = "SELECT `rank`
            FROM `md5_cs_servers`
            WHERE `id`='{$id}'
            LIMIT 1";



$sql = $db -> query($query) or die ("Ошибка MySQL");





while ($row = $db -> fetch($sql))

  {

$query = "UPDATE `md5_cs_servers`
                SET `rank`=`rank`+1
                WHERE id = '{$id}'
LIMIT 1";

   mysql_query( "INSERT INTO `count`
(`ip`)
value ('$ip')");
    $sql2 = $db -> query($query) or die ($db -> Error("Ошибка MySQL"));



echo " work on ";


  }



    }
else
 {

echo " work off ";

 }
}

?>


Это сообщение отредактировал(а) alu666 - 23.7.2009, 09:07
PM MAIL   Вверх
bazzjr
Дата 23.7.2009, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



а каким образом ты передаешь в функцию коннект базы и $ip ?

по идеи должно быть всегда  work off, или все таки пишет  work on?
PM MAIL ICQ   Вверх
alu666
Дата 23.7.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2009

Репутация: нет
Всего: нет



он ваще не пишет ни иф - не елсе, и базы не добавляет

а с передаю так
Код

include ('./admin/md5_lib/mysql.php'); // там коннект идёт

$db = new DB;

$db -> conf();

$id = @$_GET['id'];

потом идёт условие, без которого всё работает норм(ранк), но мне нада чтоб ещё ип забивался

PM MAIL   Вверх
MoLeX
Дата 23.7.2009, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



$_GET['id'] хоть не равен NULL ?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
alu666
Дата 23.7.2009, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2009

Репутация: нет
Всего: нет



разумееться нет =\

Добавлено через 1 минуту и 56 секунд
дак без условия ранк добавлялся на +1 - но мне от накруток нада чтоб по ип записывалось, потом cron на сбрасывание ипов в 00.00

Добавлено через 2 минуты и 43 секунды
крон то я напишу - беда в условии(вроде)
PM MAIL   Вверх
alu666
Дата 23.7.2009, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2009

Репутация: нет
Всего: нет



особое внимание можно уделить нато - что непишеться неодна команда

Добавлено через 28 секунд
не 
echo " work on ";
не
echo " work off ";
PM MAIL   Вверх
MoLeX
Дата 23.7.2009, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



alu666, 

Код

echo $query; //каждый


и попробуй выполнить через phpmyadmin полученые строки


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
alu666
Дата 23.7.2009, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2009

Репутация: нет
Всего: нет



я попробовал ещё изменить
но ет опять ничё не дало

Код

<?php

error_reporting(E_ALL);




 $host = "sql-3.ayola.net";
 $port = "";
 $user = " ...  ";
 $pass = " ...   ";
 $dbnm = " ...   ";

 $h = ( empty( $post ) ) ? $host : $host . ":" . $port;

 $db = mysql_connect( $h , $user , $pass );

 if( !$db )   // Если соединиться не удалось:
  {
   print ("Datebase connection failed.");
   exit();
  }

 if( ! mysql_select_db( $dbnm ) )
  {
   print ("Datebase select failed.");
   exit();
  }

 function get_ip()
  {
   if ($ip = getenv("HTTP_CLIENT_IP"))
    {  return $ip;  }

   if ($ip = getenv("HTTP_X_FORWARDED_FOR"))
    {
     if ($ip == '' || $ip == "unknown")
      {  $ip = getenv("REMOTE_ADDR");  }

     return $ip;
    }
   if ( $ip = getenv("REMOTE_ADDR") )
    {  return $ip;  }
  }



$id = @$_GET['id'];









 function check()
  {
   $result = mysql_query( "SELECT * FROM `count` WHERE `ip` = '$ip' LIMIT 1" );

   if( mysql_num_rows( $result ) == 0 )
    {

$query = "SELECT `rank`
            FROM `md5_cs_servers`
            WHERE `id`='{$id}'
            LIMIT 1";



while ($row = $db -> fetch($sql))

  {

$query = "UPDATE `md5_cs_servers`
                SET `rank`=`rank`+1
                WHERE id = '{$id}'
LIMIT 1" ;

$query = "INSERT INTO `count`
(`ip`)
value ('$ip')";



echo " work on ";


  }



    }
else
 {

echo " work off ";

 }
}

?>


PM MAIL   Вверх
MoLeX
Дата 23.7.2009, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



if ($ip = getenv("HTTP_CLIENT_IP"))

что ты тут пытаешься сделать?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
alu666
Дата 23.7.2009, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2009

Репутация: нет
Всего: нет



echo $query; //каждый

я немнога не понял куда пихать - пихнул в "каждый" вариант условия - ничё не выдало 0о

Добавлено через 1 минуту и 32 секунды
if ($ip = getenv("HTTP_CLIENT_IP"))

ето получение айпи клиента
взял с http://forum.vingrad.ru/topic-71727.html#st_15_view_0

Добавлено через 4 минуты и 30 секунд
я попробовал удалить строки
Код


 function get_ip()
  {
   if ($ip = getenv("HTTP_CLIENT_IP"))
    {  return $ip;  }

   if ($ip = getenv("HTTP_X_FORWARDED_FOR"))
    {
     if ($ip == '' || $ip == "unknown")
      {  $ip = getenv("REMOTE_ADDR");  }

     return $ip;
    }
   if ( $ip = getenv("REMOTE_ADDR") )
    {  return $ip;  }
  }



результат тот же
PM MAIL   Вверх
MoLeX
Дата 23.7.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



у меня дурное предчувствие - ты ф-ции то хоть вызываешь?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
alu666
  Дата 23.7.2009, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2009

Репутация: нет
Всего: нет



как я говорил в первом посте - я 3ий день в пхп :(
как их вызывать 0о
PM MAIL   Вверх
MoLeX
Дата 23.7.2009, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Код

<?php
error_reporting(E_ALL);
$host = "sql-3.ayola.net";
$port = "";
$user = " ...  ";
$pass = " ...   ";
$dbnm = " ...   ";
$h = ( empty( $post ) ) ? $host : $host . ":" . $port;
$db = mysql_connect( $h , $user , $pass );
if( !$db )   // Если соединиться не удалось:
  {
   print ("Datebase connection failed.");
   exit();
  }
 if( ! mysql_select_db( $dbnm ) )
  {
   print ("Datebase select failed.");
   exit();
  }
  
$ip = getenv("REMOTE_ADDR");
  
$id = @$_GET['id'];
   $result = mysql_query( "SELECT * FROM `count` WHERE `ip` = '$ip' LIMIT 1" );
   if( mysql_num_rows( $result ) == 0 )
    {
$query = "SELECT `rank`
            FROM `md5_cs_servers`
            WHERE `id`='{$id}'
            LIMIT 1";
while ($row = $db -> fetch($sql))
  {
$query = "UPDATE `md5_cs_servers`
                SET `rank`=`rank`+1
                WHERE id = '{$id}'
LIMIT 1" ;
$query = "INSERT INTO `count`
(`ip`)
value ('$ip')";
echo " work on ";
  }
    }
else
 {
echo " work off ";
 }
?>



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1104 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.