Может кто то сказать что выполняют функции в этом скрипте

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение bobot » 2008-12-23 13:02:30

Вот скрипт

Код: Выделить всё

<?

// function send request to proxy server: which user is on $ip?
// Requere global variables $ip_checkHost and $ip_checkPort
// return:
// -1 - error; Error description is in global variable $errstr;
//  0 - none user on $ip
// >0 - user_id

function ip_check($ip)
{
 $ip_checkHost="proxy.mydomain";
 $ip_checkPort=4098;

 global $errstr;

  $fs=fsockopen($ip_checkHost,$ip_checkPort,$sockerrno,$sockerrstr);
  if(!$fs){
    $errstr="Socket error _ $sockerrno: $sockerrstr";
    return -1;
  }
  fwrite($fs,"$ip\n");
  if(feof($fs)){
    $errstr="Conection problem: host closed conection";
    return -1;
  }
  $res=fgets($fs,255);
  if (! strlen($res) ){
    $errstr = 'Server not returned result';
    return -1;
  }
  if(($res+0)>=0){
    fclose($fs);
    return $res+0;
  }
  $errstr='Server return: ';
  while(!feof($fs)){
    $errstr .=fgets($fs,255)."\n";
  }
  fclose($fs);
  return -1;
}

 function auth($ip, $conn)
 {
    $id = ip_check($ip);
    if (ip_check($ip) < 0)
        return -1;

    $result = mysql_query ("SELECT authproxy_id FROM staff WHERE authproxy_id=$id");
    if (! $result) {
         err (mysql_error());
         return -1;
    }

    if (mysql_num_rows ($result) == 0)
        return 0;

    return $id;
 }

?>
как говориться вроде понятно всё а с другой и не понятно

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение Volodymyr » 2008-12-23 13:11:21

Первая проверка соединения с хостом.
Вторая сверяет или есть в базе authproxy_id, если есть возвращает его, если нету 0, если ошибка -1.

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение bobot » 2008-12-23 14:29:59

Volodymyr писал(а):Первая проверка соединения с хостом.
Вторая сверяет или есть в базе authproxy_id, если есть возвращает его, если нету 0, если ошибка -1.
Это я понимаю!тоесть я вот этого не могу понять----- я получаю authproxy_id а потом оно свиряет есть ли такой айдишник или нету в базе!!! а как мне вывести этот authproxy_id ?

Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение Volodymyr » 2008-12-23 14:41:07

bobot писал(а):Это я понимаю!тоесть я вот этого не могу понять----- я получаю authproxy_id а потом оно свиряет есть ли такой айдишник или нету в базе!!! а как мне вывести этот authproxy_id ?

Код: Выделить всё

echo(auth($ip, $conn));

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение bobot » 2008-12-23 15:03:42

Volodymyr писал(а):Первая проверка соединения с хостом.
Вторая сверяет или есть в базе authproxy_id, если есть возвращает его, если нету 0, если ошибка -1.
грубо говоря можно сказать так вот эта половина скрипта

Код: Выделить всё

<?

// function send request to proxy server: which user is on $ip?
// Requere global variables $ip_checkHost and $ip_checkPort
// return:
// -1 - error; Error description is in global variable $errstr;
//  0 - none user on $ip
// >0 - user_id

function ip_check($ip)
{
 $ip_checkHost="proxy.mydomain";
 $ip_checkPort=4098;

 global $errstr;

  $fs=fsockopen($ip_checkHost,$ip_checkPort,$sockerrno,$sockerrstr);
  if(!$fs){
    $errstr="Socket error _ $sockerrno: $sockerrstr";
    return -1;
  }
  fwrite($fs,"$ip\n");
  if(feof($fs)){
    $errstr="Conection problem: host closed conection";
    return -1;
  }
  $res=fgets($fs,255);
  if (! strlen($res) ){
    $errstr = 'Server not returned result';
    return -1;
  }
  if(($res+0)>=0){
    fclose($fs);
    return $res+0;
  }
  $errstr='Server return: ';
  while(!feof($fs)){
    $errstr .=fgets($fs,255)."\n";
  }
  fclose($fs);
  return -1;
}
выполняет проверку соединиение с проксёй и отсылает данные (ну тут и будет этот айдишник)

вторая половина кода

Код: Выделить всё

 function auth($ip, $conn)
 {
    $id = ip_check($ip);
    if (ip_check($ip) < 0)
        return -1;

    $result = mysql_query ("SELECT authproxy_id FROM staff WHERE authproxy_id=$id");
    if (! $result) {
         err (mysql_error());
         return -1;
    }

    if (mysql_num_rows ($result) == 0)
        return 0;

    return $id;
 }
сверяет данные в моём случае это authproxy_id c базой данных(ну там где и находится этот айдишник)
Правильно я понимаю?


Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение bobot » 2008-12-23 16:29:18

Volodymyr писал(а):Да.
да как мне вывести значение

Код: Выделить всё

$errstr .=fgets($fs,255)."\n";
так не действует

Код: Выделить всё

echo $errstr;

Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение Volodymyr » 2008-12-23 16:41:22

bobot писал(а):да как мне вывести значение

Код: Выделить всё

$errstr .=fgets($fs,255)."\n";
так не действует

Код: Выделить всё

echo $errstr;
В каком месте вы хотите вывод сделать?

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение bobot » 2008-12-23 16:48:23

Volodymyr писал(а):
bobot писал(а):да как мне вывести значение

Код: Выделить всё

$errstr .=fgets($fs,255)."\n";
так не действует

Код: Выделить всё

echo $errstr;
В каком месте вы хотите вывод сделать?
значит вот скриптик

Код: Выделить всё

<?

// function send request to proxy server: which user is on $ip?
// Requere global variables $ip_checkHost and $ip_checkPort
// return:
// -1 - error; Error description is in global variable $errstr;
//  0 - none user on $ip
// >0 - user_id

function ip_check($ip)
{
$ip_checkHost="proxy.mydomain";
$ip_checkPort=4098;

global $errstr;

  $fs=fsockopen($ip_checkHost,$ip_checkPort,$sockerrno,$sockerrstr);
  if(!$fs){
    $errstr="Socket error _ $sockerrno: $sockerrstr";
    return -1;
  }
  fwrite($fs,"$ip\n");
  if(feof($fs)){
    $errstr="Conection problem: host closed conection";
    return -1;
  }
  $res=fgets($fs,255);
  if (! strlen($res) ){
    $errstr = 'Server not returned result';
    return -1;
  }
  if(($res+0)>=0){
    fclose($fs);
    return $res+0;
  }
  $errstr='Server return: ';
  while(!feof($fs)){
    $errstr .=fgets($fs,255)."\n";
  }
  fclose($fs);
  return -1;
}
и я хочу сделать в конце(после 5-й строчки в конце)
вот после этой строки

Код: Выделить всё

$errstr .=fgets($fs,255)."\n";

Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение Volodymyr » 2008-12-23 16:59:00

bobot писал(а):вот после этой строки

Код: Выделить всё

$errstr .=fgets($fs,255)."\n";
А уверены что вы туда попадаете? Сделайте там

Код: Выделить всё

var_dump($errstr);
если хоть что-то покажет то вы там.

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение bobot » 2008-12-23 17:41:06

Volodymyr писал(а):
bobot писал(а):вот после этой строки

Код: Выделить всё

$errstr .=fgets($fs,255)."\n";
А уверены что вы туда попадаете? Сделайте там

Код: Выделить всё

var_dump($errstr);
если хоть что-то покажет то вы там.
да я не попадаю туда!! не пашет после этого? а где надо?

Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение Volodymyr » 2008-12-23 17:55:46

bobot писал(а):А уверены что вы туда попадаете? Сделайте там

Код: Выделить всё

var_dump($errstr);
если хоть что-то покажет то вы там.
да я не попадаю туда!! не пашет после этого? а где надо?[/quote]

Ну по трейси по коду.
Вставляй вардамп с верху в низ после каждого ифа с ретурном и увидеш где вылетаеш.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение zg » 2008-12-23 19:47:07

как бы код предполагает такую схему запуска

Код: Выделить всё

$errstr = null;
$user_id = ip_check($ip);
echo $errstr ? $errstr : "User id is $user_id";

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение bobot » 2008-12-25 11:47:50

zg писал(а):как бы код предполагает такую схему запуска

Код: Выделить всё

$errstr = null;
$user_id = ip_check($ip);
echo $errstr ? $errstr : "User id is $user_id";
вот я сделал так

Код: Выделить всё

<?php
#$ip = $_SERVER["REMOTE_ADDR"];
#echo "Your IP is: ".$ip;
#$string = "Hello, world!!!";
#$string_len = strlen($string);
#echo ($string_len);
// function send request to proxy server: which user is on $ip?
// Requere global variables $ip_checkHost and $ip_checkPort
// return:
// -1 - error; Error description is in global variable $errstr;
//  0 - none user on $ip
// >0 - user_id

function ip_check($ip)
{
 $ip_checkHost="proxy.univ.kiev.ua";
 $ip_checkPort=4098;

 global $errstr;

  $fs=fsockopen($ip_checkHost,$ip_checkPort,$sockerrno,$sockerrstr);
  if(!$fs){
    $errstr="Socket error _ $sockerrno: $sockerrstr";
    return -1;
  }
  fwrite($fs,"$ip\n");
  if(feof($fs)){
    $errstr="Conection problem: host closed conection";
    return -1;
  }
  $res=fgets($fs,255);
  if (! strlen($res) ){
    $errstr = 'Server not returned result';
    return -1;
  }
  if(($res+0)>=0){
    fclose($fs);
    return $res+0;
  }
  $errstr='Server return: ';
  while(!feof($fs)){
    $errstr .=fgets($fs,255)."\n";
 }
  fclose($fs);
  return -1;
}
$errstr = null;
$user_id = ip_check($ip);
echo $errstr ? $errstr : "User id is $user_id";
?>
оно пишет всегда что

Код: Выделить всё

User id is 0
а должно

Код: Выделить всё

telnet mydomen 4098
Trying 91.202.128.88...
Connected to proxy.mydomen
Escape character is '^]'.
ввожу ip свой, и получаю
31538 (вот это и должно быть$user_id 
Connection closed by foreign host.
А тут мне пишет что ваш id постоянно нуль

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение bobot » 2008-12-25 11:58:25

zg писал(а):как бы код предполагает такую схему запуска

Код: Выделить всё

$errstr = null;
$user_id = ip_check($ip);
echo $errstr ? $errstr : "User id is $user_id";
Впринципи и так наверное можно вывести

Код: Выделить всё

$user_id = ip_check($ip);
echo $user_id;
И всёравно айди нуль :Search:

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Может кто то сказать что выполняют функции в этом скрипте

Непрочитанное сообщение bobot » 2008-12-25 12:29:39

Volodymyr писал(а):
bobot писал(а):А уверены что вы туда попадаете? Сделайте там

Код: Выделить всё

var_dump($errstr);
если хоть что-то покажет то вы там.
да я не попадаю туда!! не пашет после этого? а где надо?
Ну по трейси по коду.
Вставляй вардамп с верху в низ после каждого ифа с ретурном и увидеш где вылетаеш.[/quote]

вставлял так как вы сказали ноничего!! пустая страница!!!!

Но этот код на все 100 процентов рабочий.(а я вот разгрёбываюсь )
До меня кем-то написан.