|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » бага в самом PHP или подругому описать немогу |
|
бага в самом PHP или подругому описать немогу
|
Пользователь Сообщения: 122 |
Профиль | Отправить 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 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать xamelion
а спец функцией сложно воспользоваться? |
------- Отправлено: 11:43, 12-09-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 302
|
Профиль | Сайт | Отправить PM | Цитировать Еще б в рубли перевел
|
Отправлено: 12:10, 12-09-2005 | #3 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать да и в рубли переведем.. +)
а что за спец функция... я же за php 4 день... |
Отправлено: 17:00, 12-09-2005 | #4 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать xamelion
а вы уже установили хелп с ОФФ сайта PHP ? |
|
------- Отправлено: 17:08, 12-09-2005 | #5 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать неа... у меня RPMы с FC3 и я там ничего не менял.
мне просто интересен сам факт того что функция отдельна работает, и притензий нет.. однако когда она работает с большими объемами информаци случается бага.. допустим я щас использую функцию ту, которая уже есть в php(хотя если ее кто нить напишет мне, будет вообще замечательно) однако... мне интересен в чем же ошибка, для того что бы не наступить в те же грабли. Для меня важно в данный момент именно ошибка, без разници моя это или php. я учусь писать, и попадись такая ситуация в другой ситуации можно и незаметить ошибку, т.к. сам сервер об ошибки несообщает но результат будет неверен. Vlad Drakula прошу прощения, но вряд ли я извлеку от этой хелпы какую нитьбудь помощь. я пользуюсь некоторыми сайтами и учебниками.. однако я непредставляю по какому параметру искать эту функцию... по слову функции? по разделу? математика? xamelion у тебя получится! я это знаю! |
Отправлено: 19:37, 12-09-2005 | #6 |
Пользователь Сообщения: 122
|
Профиль | Отправить 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 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
С Монитором или с видеокартой проблемы немогу решит?! | 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 |
|