PDA

View Full Version : نمایش برخی از اطلاعات



yasgig
دوشنبه 04 آبان 1388, 10:47 صبح
با سلام
چطوری میتونم برخی از اطلاعات کاربر رو با php به نمایش بزارم؟
مثلا آی پی رو به این شکل میشه نشون داد

$ip= getenv("REMOTE_ADDR");
حالا می خواستم بپرسم سایر موارد مثل
نوع ویندوز
نوع مرورگر
ورژن مرورگر
رزولیشن
و...
رو نشون داد؟
با تشکر

yasgig
دوشنبه 04 آبان 1388, 11:57 صبح
توی این صفحه کد زیر رو پیدا کردم که میشه اطلاعات مرور گر رو نشون داد ولی به این صورت نشون میده
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5

$_SERVER['HTTP_USER_AGENT'];
من می خوام چیزی درست کنم که به این صورت بشه نشون داد:
آی پی:127.0.0.1
نوع مرورگر:firefox
ویندوز:vista
رزولیشن:600x800
ورژن مرورگر:3.0.5
توی اون صفحه نتونستم چنین اطلاعاتی رو پیدا کنم.آیا میشه جاوا رو با php ترکیب کرد و نشون داد؟بطوری که نشه محتوای فایل جاوا رو دید.

امیـرحسین
دوشنبه 04 آبان 1388, 12:32 عصر
همه اطلاعات رو میشه از همون HTTP_USER_AGENT گرفت غیر از رزولوشن. برای نمایش روزلوشن، باید توسط جاوااسکریپت به PHP بفرستید. می تونید توسط جاوااسکریپت، یه کوئری اضافی به لینکها اضافه کنید. اگر این کار رو برای همه لینکها در زمان کلیک انجام بدید، ریخت لینکها هم بهم نمیریزه.
اما گرفتن اطلاعات از HTTP_USER_AGENT خودش پروسه ایه چون مرورگرها، شیوه های نمایش اطلاعاتشون متفاوته. سرچ کنید. اینا دو تا نمونه:

User-Agent definition (http://www.texsoft.it/index.php?c=software&m=sw.php.useragent&l=it)
Getting and working with HTTP_USER_AGENT (http://renegademinds.com/TipsTricks/DevelopersCorner/HTTP_USER_AGENT/tabid/84/Default.aspx)

رضا قربانی
سه شنبه 18 خرداد 1389, 12:07 عصر
سلام خدمت شما دوست گرامی .
منم مثل yasgig (http://barnamenevis.org/forum/member.php?u=109401) این مشکل رو دارم و ممنون می شم کمکمون کنید.
=======
توی این صفحه کد زیر رو پیدا کردم که میشه اطلاعات مرور گر رو نشون داد ولی به این صورت نشون میده
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5
======

در جواب yasgig (http://barnamenevis.org/forum/member.php?u=109401) برای رزولیشن تصویر می تونی از این کد استفاده کنی :

<script type="text/javascript">

document.write(screen.width+'x'+screen.height);
</script>

رضا قربانی
سه شنبه 18 خرداد 1389, 12:17 عصر
من از این کد استفاده می کنم و فکر کنم در آخر رو echo کردن مشکل دارم:ناراحت:

کدوم رو باید echo کنم ؟

آیا باید حتما به اینترنت متصل باشه ؟

کدی هست که نگذاشته باشم؟


function chenge_http_user_agent()
{
$user_agent = "/".$_SERVER['HTTP_USER_AGENT'];
$browser = array ("Mozilla", "Opera","IE", "FireFox" ,"Netscape", "Safari","Seamonkey","Dillo","Navigator","Camino","Epiphany","Galeon","Minefield","K-Meleon","Iceape","konqueror","flock","Chrome");
$os = array ("Windows","Mac","Linux","FreeBSD");
$_SERVER['HTTP_USER_AGENT'] = array( BROWSER=>"Unknown", OS=>"Unknown", BROWSER_VERSION=>"Unknown" , TEXT=> $_SERVER['HTTP_USER_AGENT']);

foreach ($browser as $parent)
{
$browser = strpos(strtoupper( $user_agent ),strtoupper($parent));
$version_str= $browser+ strlen($parent)+1;
$version = substr( $user_agent, $version_str, 1);

if ($browser)
{
$_SERVER['HTTP_USER_AGENT']['BROWSER'] = $parent;
$_SERVER['HTTP_USER_AGENT']['BROWSER_VERSION'] = $version;
}
}
foreach ($os as $val)
{
if ($os_strpos = strpos( strtoupper( $user_agent ), strtoupper( $val ) ) )
{
$_SERVER['HTTP_USER_AGENT']['OS'] = $val;
}

}

اینجا باید مشکل داشته باشم echo "$user_agent";
} و خروجی باید بشه این که نمی شه :



Array
(
[HTTP_USER_AGENT] => Array
(
[TEXT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0 FirePHP/0.1.2
[BROWSER] => FireFox
[OS] => Windows
[BROWSER_VERSION] => 3
)
)خروجی من میشه:عصبانی++: :
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5

رضا قربانی
سه شنبه 18 خرداد 1389, 12:22 عصر
به من گفتن که باید این کد رو بهش اضافه کنی ولی من نمی دونم جریانش چی هست و هنوز جوابم رو نگرفتم ؟

این کد رو باید به اولش اضافه کنیم

chenge_http_user_agent();
print_r( $_SERVER );

به جای echo هم return true; بود که من بر داشتمش و echo گذاشتم !


با این اطلاعاتی که دادم ممنون می شم کمکم کنید

رضا قربانی
سه شنبه 18 خرداد 1389, 12:37 عصر
من امروز تا غروب توی این تاپیک on می مونم تا با کمک هم مشکل رو حل کنیم.

ممنون می شم نظرات و راهنماییاتون رو بکنید

yasgig
سه شنبه 18 خرداد 1389, 13:30 عصر
لازم نیست این کارا رو انجام بدی.می تونی با اکسپلود ساده هرچی رو که می خوای بدست بیاری.مثلا از کد زیر استفاده کن:

<?php
$string = "$_SERVER[HTTP_USER_AGENT]";
$explode_strings = array();
$explode_strings = explode(" ", $string);
echo "<br>";
echo $explode_strings[0];
echo "<br>";
echo $explode_strings[1];
echo "<br>";
echo $explode_strings[2];
echo "<br>";
echo $explode_strings[3];
echo "<br>";
echo $explode_strings[4];
echo "<br>";
echo $explode_strings[5];
echo "<br>";
echo $explode_strings[6];
echo "<br>";
echo $explode_strings[7];
echo "<br>";
echo $explode_strings[8];
echo "<br>";
echo $explode_strings[9];
?>
اگه خواستی می تونی پارانتز و سایر کارکترهای اضافی که نشون داده میشه رو با str_replace جایگزین کنی.در مورد سایز اسکرین هم که گفتین من خودم قبلا اینو درستش کردم اینم نمونه:
http://yasgig.ir/?page=user_info

رضا قربانی
سه شنبه 18 خرداد 1389, 14:07 عصر
این که خیلی به هم ریخته هست . توی کد قبلی که من گذاشتم توی تمام مرورگر ها یه شکل میاد و نوشته هاش تغییر می کنه

من منظورتون رو در مورد جایگزینی str_replace نفهمیدم !!

منظورتون اینه که من بخوام پرانتز رو حذف کنم به جای ( یا [ بذارم str_replace ؟؟؟؟؟؟
اگه بخوام یکی از اطلاعات رو نمایش ندم چی ؟

می شه یه نمونه اش رو برام خوبش کنی تا بفهمم جریان چیه ؟ ممنون می شم
مثلا اینجوری :

نوع مرورگر:firefox
ویندوز:vista
ورژن مرورگر:3.0.5

yasgig
سه شنبه 18 خرداد 1389, 14:24 عصر
منظورم این بود که وقتی $explode_strings[1]; رو echo میکنی مثلا اگه سیستم عاملت ویندوز باشه اینو (Windows; نشون میده.حالا اگه خواستی فقط Windows رو نشون بدی میتونی به این صورت عمل کنی:

$new = str_replace(';', '', $explode_strings[1]);
$new1 = str_replace('(', '', $new);
حالا باید به جای $explode_strings[1]; متغییر $new1 رو چاپ کنی.به طور مثال:

<?php
$string = "$_SERVER[HTTP_USER_AGENT]";
$explode_strings = array();
$explode_strings = explode(" ", $string);
$new = str_replace(';', '', $explode_strings[1]);
$new1 = str_replace('(', '', $new);
echo "<br>";
echo $explode_strings[0];
echo "<br>";
echo $new1;
echo "<br>";
echo $explode_strings[2];
echo "<br>";
echo $explode_strings[3];
echo "<br>";
echo $explode_strings[4];
echo "<br>";
echo $explode_strings[5];
echo "<br>";
echo $explode_strings[6];
echo "<br>";
echo $explode_strings[7];
echo "<br>";
echo $explode_strings[8];
echo "<br>";
echo $explode_strings[9];
?>

رضا قربانی
سه شنبه 18 خرداد 1389, 14:56 عصر
ممنون گلم

خیلی آقایی .

اون کدی که من داده بودم خیلی دسترسی بیشتری بهش داشتیم و دست و بال خودمون رو نمی بستیم و از هر نظر آزاد بودیم تا دستکاریش کنیم. ولی این خیلی محدود هست .

می دونی مشکل اون کدی که دادم از کجا بوده ؟ من باید $_server رو اکو می کردم که aryy خالی رو نشون می دادا و مانند اون خروجی نمی شد .

می تونی کمکم کنی تا من اون کد رو بیارم بالا ؟
توی این سایت و این صفحه ها اعلام کردم که کسی جوابم رو نداده!
http://forum.p30world.com/showthread.php?t=271192&page=3

داداش الانم امروز غروب باید تحویل بدم و ممنون می شم کمکم کنید . خیلی وقته که آن هستم

yasgig
سه شنبه 18 خرداد 1389, 16:10 عصر
این که خیلی به هم ریخته هستهر جوری که می خوای بگو تا واست درستش کنم.

می شه یه نمونه اش رو برام خوبش کنی تا بفهمم جریان چیه ؟ ممنون می شم
مثلا اینجوری :

نوع مرورگر:firefox
ویندوز:vista
ورژن مرورگر:3.0.5اگه کد زیر رو اجرا کنی میشه همین مثالی که تو گفتی.

<?php
$string = "$_SERVER[HTTP_USER_AGENT]";
$explode_strings = array();
$explode_strings = explode(" ", $string);
$string1 = "$explode_strings[9]";
$explode_strings1 = array();
$explode_strings1 = explode("/", $string1);
$new = str_replace(';', '', $explode_strings[1]);
$new1 = str_replace('(', '', $new);
echo "نوع مرورگر: $explode_strings1[0]";
echo "<br>";
echo "سیستم عامل: $new1";
echo "<br>";
echo "ورژن مرورگر: $explode_strings1[1]";
?>
در مورد کد خودت هم اینو بگم که هرچی می خوای همون جا که خودت گفتی چاپ کن ولی در آخر و قبل از ?> اینو هم قرار بده:
return chenge_http_user_agent();

mohmadd
سه شنبه 18 خرداد 1389, 16:40 عصر
من میخوام اطلاعاتی مثل نام کارت شبکه و مودم نام فونت ها و ترتیب نصب اونها(یا ترتیب اونها) نوع و ورژن مرورگر و ویندوز و غیره رو بگیرم .
شنیدم که چنین چیزی امکان پذیره .
اگه من اشتباه کرده باشم یعنی اگر چنین امکانی مرورگرها به ما نده. ما می تونیم از جاوااسکریپت استفاده کنیم.