Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » бага в самом PHP или подругому описать немогу

Ответить
Настройки темы
бага в самом PHP или подругому описать немогу

Аватара для xamelion

Пользователь


Сообщения: 122
Благодарности: 1

Профиль | Отправить PM | Цитировать


задача стоит так:
из БД mysql вытащить айпи адреса которые хранятся вот в таком виде "209861637" перевести их в hex и по 2 первым символам вывести dec

пример на вин калькулятере
вводим цифру 209861637
переводим в hex
получаем C823C05
затем каждые 2 символа переводим обратно в dec
C8 = 200
23 = 35
С0 = 192
5 = 5

для облегчения задачи пишу функцию

<?
/////////////////////////////////////////////
function dec_hex_ip($dec_ip)
{
$ip_hex = dechex($dec_ip);
$var_while = 3;
$i_while = 0;
$a_while = 0;
do
{
$ip_done_hex[$i_while] = substr($ip_hex, $a_while, 2);
$ip_done_dec[$i_while] = hexdec($ip_done_hex[$i_while]);

$a_while = $a_while + 2;
}
while(++$i_while <= $var_while);
$ip_done = implode(".", $ip_done_dec);


return $ip_done;
};
////////////////////////////////////////////////
?>

затем функцию крепим в коду, который вытаскивает из БД все уникальные значения. (т.е. которые не могут быть одинаковые)
function show_ip()
{
include "connect_db.php";
$result = mysql_query("SELECT DISTINCT ip_saddr FROM ulog", $linkdb)
or die ("Invalid query");
while ($row = mysql_fetch_array($result /*MYSQL_NUM*/)) {
echo dec_hex_ip($row[0])."<BR>";
echo $row[0]."<BR>";
}
}

запускаем все это дело и видим что после 114 строки видим вот такие значения
1412799023
84.204.14.14
1422659086
84.252.146.10
1425838602
127.0.0.1
2130706433
127.255.255.255 <-------- 114 строка.
2204857116
127.255.255.255
2362681035
127.255.255.255
2560872505
127.255.255.255


для проверки работоспособность функции копируем только всю функцию в другой файл и запускаем только его со значениями которые выше

<?
/////////////////////////////////////////////
function dec_hex_ip($dec_ip)
{
$ip_hex = dechex($dec_ip);
$var_while = 3;
$i_while = 0;
$a_while = 0;
do
{
$ip_done_hex[$i_while] = substr($ip_hex, $a_while, 2);
$ip_done_dec[$i_while] = hexdec($ip_done_hex[$i_while]);

$a_while = $a_while + 2;
}
while(++$i_while <= $var_while);
$ip_done = implode(".", $ip_done_dec);


return $ip_done;
};
////////////////////////////////////////////////

echo "<br>".dec_hex_ip(1412799023);
echo "<br>".dec_hex_ip(1422659086);
echo "<br>".dec_hex_ip(1425838602);
echo "<br>".dec_hex_ip(2130706433);
echo "<br>".dec_hex_ip(2204857116);
echo "<br>".dec_hex_ip(2362681035);
echo "<br>".dec_hex_ip(2560872505);

?>

и видим вот такой результат
84.53.154.47
84.204.14.14
84.252.146.10
127.0.0.1
131.107.115.28
140.211.166.203
152.163.208.57

для точной проверки проверяем на тип и количество строк данные поступающие из БД, и ненаходим ошибок...
так в чем ошибка? неправильная интерпритация движка php ?

Отправлено: 22:53, 11-09-2005

 

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


xamelion
а спец функцией сложно воспользоваться?

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 11:43, 12-09-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Еще б в рубли перевел

Отправлено: 12:10, 12-09-2005 | #3


Аватара для xamelion

Пользователь


Сообщения: 122
Благодарности: 1

Профиль | Отправить PM | Цитировать


да и в рубли переведем.. +)
а что за спец функция... я же за php 4 день...

Отправлено: 17:00, 12-09-2005 | #4


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


xamelion
а вы уже установили хелп с ОФФ сайта PHP ?

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 17:08, 12-09-2005 | #5


Аватара для xamelion

Пользователь


Сообщения: 122
Благодарности: 1

Профиль | Отправить PM | Цитировать


неа... у меня RPMы с FC3 и я там ничего не менял.
мне просто интересен сам факт того что функция отдельна работает, и притензий нет.. однако когда она работает с большими объемами информаци случается бага.. допустим я щас использую функцию ту, которая уже есть в php(хотя если ее кто нить напишет мне, будет вообще замечательно) однако... мне интересен в чем же ошибка, для того что бы не наступить в те же грабли. Для меня важно в данный момент именно ошибка, без разници моя это или php. я учусь писать, и попадись такая ситуация в другой ситуации можно и незаметить ошибку, т.к. сам сервер об ошибки несообщает но результат будет неверен.

Vlad Drakula
прошу прощения, но вряд ли я извлеку от этой хелпы какую нитьбудь помощь. я пользуюсь некоторыми сайтами и учебниками.. однако я непредставляю по какому параметру искать эту функцию...
по слову функции?
по разделу?
математика?

xamelion
у тебя получится! я это знаю!

Отправлено: 19:37, 12-09-2005 | #6


Аватара для xamelion

Пользователь


Сообщения: 122
Благодарности: 1

Профиль | Отправить PM | Цитировать


long2ip
(PHP 4)

long2ip - конвертирует (IPv4) Internet сетевой адрес в строку стандартного Internet-формата с точкой.

Описание
string long2ip (int proper_address)

Функция long2ip() генерирует Internet-адрес в формате с точкой (т.е.: aaa.bbb.ccc.ddd) из соответствующего представления адреса.

См. также ip2long().

Господа... Я поставил эту функцию и все заработало.. но почему ?

(звонок в тех помощь майкрософта:
у меня неглючит виндовс вообще, я что неправильно что то делаю?)

Последний раз редактировалось xamelion, 12-09-2005 в 19:57.


Отправлено: 19:50, 12-09-2005 | #7



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » бага в самом PHP или подругому описать немогу

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
С Монитором или с видеокартой проблемы немогу решит?! VillyVaskof Видеокарты 14 26-11-2011 23:56
немогу открыть в просмотре изображений и факсов картинки или фото korech Хочу все знать 5 16-04-2011 15:12
[решено] MySql, PHP | Что на самом деле хранится в базе? hasherfrog Вебмастеру 2 09-04-2009 15:29
Прочее - Как описать сеть в офисе...??? ZRRSZR Сетевые технологии 10 05-02-2009 12:30
Исправлена бага BigMac О сайте и форуме 7 18-06-2002 17:05




 
Переход