Консультация № 55253
13.09.2006, 09:06
0.00 руб.
0 17 3
Здравствуйте, уважаемые эксперты!
Очень надеюсь на Вашу помощь. На каком-то форуме видел вот такую штуку: http://img.thedelphi.ru/danasoft.com.png. Подскажите, пожалуйста, как можно реализовать показ этой информации на моем сайте?
Я имею ввиду как самому написать эту штуку?
Заранее благодарен!

Обсуждение

Неизвестный
13.09.2006, 09:18
общий
это ответ
Здравствуйте, Н.В.!
Это делается с помощью следующих переменных:

$_SERVER[HTTP_X_FORWARDED_FOR] - определяем IP адрес.
$_SERVER[HTTP_REFERER] - откуда зашел на эту страничку.
$_SERVER[HTTP_USER_AGENT] - броузер, которым пользуется пользователь
Полный список переменных окружения надо смотреть в документации по PHP.
Неизвестный
13.09.2006, 09:23
общий
это ответ
Здравствуйте, Н.В.!

Примерно так (см. приложение). Думаю, всё понятно без комментариев.

Приложение:
echo ‘Your IP is ‘ . $_SERVER[‘REMOTE_ADDR‘] . ‘!‘;echo ‘Your ISP is ‘ . gethostbyaddr($_SERVER[‘REMOTE_ADDR‘]) . ‘!
‘;$browser = get_browser( null, true );echo ‘You are running on ‘ . $browser[‘platworm‘] . ‘ and using ‘ . $browser[‘parent‘] . ‘!
‘;
Неизвестный
13.09.2006, 09:40
общий
‘platworm‘ - это ‘platform‘ ;-)
Неизвестный
13.09.2006, 10:24
общий
это ответ
Здравствуйте, Н.В.!
Почитайте информацию, которую выводит функция phpinfo() - там вы узнаете что в какой переменной лежит, а нарисовать все это на картинке можно с помощью функий библиотеки gd :
$im = ImageCreateFromPNG(‘/путь/к/заготовке.png‘);
$tc = ImageColorAllocate ($im, 0, 0, 0);
ImageString ($im, 1, $x_pos, $y_pos, $info, $tc);
ImagePNG($im);
Неизвестный
13.09.2006, 15:20
общий
To Physicist: не работает функция get_browser!Посмотрите, что она пишет: http://thedelphi.ru/stat.phpДоступа к настройкам у меня нет. Что посоветуете сделать?=====================To PSV: Если можете, приведите конкретный пример для рисованя именно этой информации. С графикой я как-то не дружу :(.
Неизвестный
13.09.2006, 16:13
общий
Нужно скачать файл http://browsers.garykeith.com/stream.asp?PHP_BrowsCapINI и прописать путь к нему в файле php.ini в параметре browscap. В этом фале содержатся сигнатуры практически всех браузеров.Раз доступа к настройка нет, тогда попробуйте так (проверка основных браузеров и ОС, версии ОС не различаются):$oses=array(‘mac‘,‘linux‘,‘win‘);//дописать ОСы$osnames=array(‘mac‘=>‘MacOS‘,‘linux‘=>‘Linux‘,‘win‘=>‘Windows‘);//Дописать названия ОСей$browsers=array(‘msie‘,‘firefox‘,‘opera‘);//дописать браузеры$names=array(‘msie‘=>‘Microsoft Internet Explorer‘,‘firefox‘=>‘Mozilla Firefox‘,‘opera‘=>‘Opera‘);//Их названия$agent=strToLower($_SERVER[‘HTTP_USER_AGENT‘]);$os=‘Unknown‘;foreach($oses as $s) if(strpos($agent,$s)) { $os=$osnames[$s]; break; }$browser=‘Unknown‘;foreach($browsers as $brwsr) if($pos=strpos($agent,$brwsr)) { $browser=$names[$brwsr]; break; }if($browser!==‘Unknown‘) { $ver=‘‘; for(;$pos<=strlen($agent);$pos++) { if((is_numeric($agent[$pos]))||($agent[$pos]==‘.‘)) $ver.=$agent[$pos]; else if ($ver) break; } $browser.=‘ ‘.$ver;}echo ‘You are running on ‘.$os.‘ and using ‘.$browser.‘!
‘;
Неизвестный
13.09.2006, 18:45
общий
Спасибо!А можно как-нибудь определить, какая версия Win?
Неизвестный
13.09.2006, 18:52
общий
Версия - я имею ввиду XP, 9x, 2000, Me...
Неизвестный
13.09.2006, 19:07
общий
Просто нужно знать, как эти версии обозначаются. Для 98, 2000 и XP можно сделать так:$oses=array(‘windows nt 5.1‘, ‘windows nt 5.0‘, ‘windows 98‘, ‘mac‘, ‘linux‘, ‘win‘); // обязательно win после windows$osnames=array(‘windows nt 5.1‘=>‘Windows XP‘,‘windows nt 5.0‘=>‘Windows 2000‘,‘windows 98‘=>‘Windows 98‘,‘mac‘=>‘MacOS‘,‘linux‘=>‘Linux‘,‘win‘=>‘Windows‘);
Неизвестный
13.09.2006, 20:05
общий
Спасибо!!А WinMe и Win95 будут ‘windows me‘,‘windows 95‘?
Неизвестный
13.09.2006, 20:17
общий
Не знаю. Попробуй зайти из этих ОС на страницу, на которой выводится $_SERVER[‘HTTP_USER_AGENT‘] - узнаешь.
Неизвестный
14.09.2006, 08:26
общий
Ладно, обойдусь без них. Во-первых, они не так часто встречаются. Во-вторых, у меня нет их...Спасибо за помощь!!!
Неизвестный
14.09.2006, 09:50
общий
Набросал, анализируя содержимое php_browscap.ini:Windows NT 6.0 - это Windows VistaWindows NT 5.2 - это Windows 2003Windows NT 5.1 - это Windows XPWindows XP - это Windows XPWindows 2000 - это Windows 2000Windows NT 5.0 - это Windows 2000Windows NT 4.0 - это Windows NT 4.0WinNT4.0 - это Windows NT 4.0Win 9x 4.90 - это Windows ME (эта запись должна быть перед Windows 98)Windows ME - это Windows MEWindows 98 - это Windows 98Win98 - это Windows 98Windows 95 - это Windows 95Win95 - это Windows 95Win32 - это Windows NT 3.51Windows 3.1 - это Windows 3.1Win3.11 - это Windows 3.11Windows NT - это Windows NT (без версии, эта запись должна идти после всех остальных Windows NT ?.?)Windows CE - это Windows CEMac OS X - это Mac OS X (должно быть до остальных Mac‘ов)PPC - это Mac PowerPCMac_PowerPC - это Mac PowerPCSunOS - это SunOSLinux - это LinuxFreeBSD - это FreeBSDOpenBSD - это OpenBSDNetBSD - это NetBSDOS/2 - это OS/2UNIX - это UnixА в конце всё-таки оставить (на всякий случай, вдруг что пропустил):‘mac‘=>‘MacOS‘, ‘linux‘=>‘Linux‘, ‘win‘=>‘Windows‘PS. Не забудь, что в $oses все названия нужно заносить в нижнем регистре, т.е. ‘windows nt 6.0‘.
Неизвестный
14.09.2006, 11:30
общий
СПАСИБО ОГРОМНОЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Это всё то, что мне надо!!!!!СПАСИБО!!!!!!
Неизвестный
19.09.2006, 13:04
общий
<img src="http://thedelphi.ru/info.php">
Неизвестный
19.09.2006, 15:00
общий
Только моя Opera почему-то не определилась...
Неизвестный
19.09.2006, 15:10
общий
Еще бы шрифт сделать не моноширинный и добавить сглаживание.Первое можно сделать (кажется), используя imagepstext или imagettftext (если GD откомпилирована с поддержкой этих функций). Второе - нарисовать "большую" картинку и уменьшить ее через imagecopyresampled.
Форма ответа