PDA

View Full Version : سوال: چگونگی نمایش افراد انلاین که درحال حاضر از برنامه استفاده میکنن



perre-punk
دوشنبه 20 خرداد 1392, 17:27 عصر
سلام من 1 برنامه نوشتم به زبان vb6 که برای استفاده کاربر باید حتما به اینترنت وصل باشه...حالا میخوام بدونم میشه روی فرم قسمتی رو بزاریم که تعداد کاربران در حال استفاده از این برنامه رو بنویشه(منظورم همون افراد انلاین هستش)....اگه میشه کمک کنید و کدشو بگید....مرسیییییییییییییییی ییییی:لبخند::لبخند:

SlowCode
دوشنبه 20 خرداد 1392, 18:47 عصر
سلام
باید یه صفحه با asp.net یا php بسازی که موقع باز شدن برنامه مثلا این کوئری استرینگ رو بهش ارسال میکنی:

www.site.com/onlines.php?action=login
بعد سمت سرور اگه session موجود نباشه یه session ایجاد کنه و یه رکورد جدید تو دیتابیس ایجاد میکنی و زمان ورود(و اطلاعات دیگه ی دلخواه) رو توش ذخیره میکنی.
واسه چاپ افراد آنلاین هم باید یه کوئری رو دیتابیس بزنی و count رکوردها رو از دیتابسی بکشی بیرون و تو صفحه چاپ کنی، بعد با webbrowser اون مقدار رو میخونی و نشون میدی.
موقع خروج از برنامه هم باید یه پارامتری مثل این رو به صفحه بفرستی تا کاربر جاری رو از لیست افراد آنلاین حذف کنه:

www.site.com/onlines.php?action=logout
اینجا باید هم سشن رو حذف کنی و هم رکورد مربوط به اون کاربر رو از دیتابیس حذف کنی.

اگه با php کار نکردی برو سمتش و یکم یاد بگیر. اینم لینک آموزش:
http://www.w3schools.com/php/default.asp
روز چهارشنبه امتحانم تموم میشه، سعی میکنم روز پنجشنبه آمادش کنم و میزارمش اینجا. ولی سعی کن روش کار رو متوجه بشی.

امین مستانی
دوشنبه 20 خرداد 1392, 19:33 عصر
سلام ...

بهترین روش همونه که آقا محسن گفتن ...

ولی یه روش آسونتر هم هست
تو سایت وبگذر یا شبیهش عضو بشو و یه آمارگیر بگیر ... این آمارگیر رو توی یه صفحه خالی وبلاگ یا سایتت بزار ... موقع لود فرم این صفحه رو تو Webbrowser باز کن و بزار باشه تا وقتی فرم بسته بشه .

اینطوری کاربر تا وقتی برنامش باز هست تو لیست افراد آنلاین میمونه ... میتونی از همون هم لیست افراد آنلاین رو در بیاری تو فرم نمایش بدی


موفق باشید

SlowCode
دوشنبه 20 خرداد 1392, 23:16 عصر
خب دیگه منتظر نباش، نوشتم.
این کد php رو داخل یه نوت پد بریز بعد با پسوند php ذخیره کن.


<?php
session_start();
$sid=session_id();
if($_GET['action']=='login')
{

if (!session_is_registered('visitor')){
$_SESSION['visitor']=$sid;
Query("insert into tbl_online (session) values ('$sid')");
}

}elseif($_GET['action']=='logout'){
session_unset();
session_destroy();
Query("delete from tbl_online where session='$sid'");
}
echo '<span id="count">'.mysql_num_rows(Query("select session from tbl_online"))."</span>";

function Query($command)
{
$link=mysql_connect('localhost','root','');
mysql_select_db('online_db');
$resource=mysql_query($command,$link);
return $resource;
}
?>

این هم کد وی بی هست:

Private Sub Form_Load()
WebBrowser1.Visible = False
WebBrowser1.Navigate "localhost/online.php?action=login"
End Sub

Private Sub Form_Unload(Cancel As Integer)
WebBrowser1.Navigate "localhost/online.php?action=logout"
End Sub

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
MsgBox "There are " & WebBrowser1.Document.GetElementById("count").InnerHtml & " online users."
End Sub

تو phpMyAdmin هم یه دیتابیس به اسم online_db و یه جدول به اسم tbl_online و یه فیلد به اسم session از نوع text درست کن.

فقط اگه به هاستت آپلود کردی باید پارامتر های اول، دوم و سوم در خط 21 رو متناسب با username,password و آدرس دیتابیس تنظیم کنی.

perre-punk
سه شنبه 21 خرداد 1392, 14:26 عصر
سلام...دست دوتاتون درد نکنه....ولی من مبتدی هستم و هیچی نفهمیدم....اگه میشه 1 کی درست کنین بزارین من دانلود کنم یاد بگیرم...لطفا یکم ساده توضیح بدین تا منم بفهمم....مرسییییییییییییییی ییییی...

m.4.r.m
سه شنبه 21 خرداد 1392, 14:59 عصر
این سورس رو هم چک کن شاید جواب گرفتی

perre-punk
سه شنبه 21 خرداد 1392, 15:25 عصر
:گیج:ببین جواب نگرفتم....وقتی ران میکنی not responding میده...در ضمن اصلا جواب نمیده

meys34
سه شنبه 21 خرداد 1392, 16:18 عصر
سلام

با اجازه از محسن 15 جواب رو تکمیل کردم براتون...



1- ابتدا یه ایمیل مجازی به آدرس perrepunk@teleworm.us براتون ایجاد کردم...

2- با این ایمیل یه سایت رایگان به آدرس http://perrepunk.bitaa.ir ایجاد کردم...

3- دستور عمل های محسن خان رو تو سایت اجرا کردم...
منتها چون سایت رایگان هست اسم دیتا بیس bitaa_13343309_online_db شد

4- کد های محسن + مشخصات هاست رو ضمیمه کردم...


++ کد های محسن رو کمی تغییر دادم تا هنگام Form_Unload نهایتا در عرض 5 ثانیه دستور logout رو به سرور بفرسته...


Private Sub Form_Load()
WebBrowser1.Visible = False
WebBrowser1.Navigate "http://perrepunk.bitaa.ir/online.php?action=login"
End Sub

Private Sub Form_Unload(Cancel As Integer)
If WebBrowser1.Tag = "Exit" Then Exit Sub
WebBrowser1.Tag = "Exit"
WebBrowser1.Navigate "http://perrepunk.bitaa.ir/online.php?action=logout"
Cancel = True
Timer1.Interval = 5000
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Unload Me
End Sub

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
Label1.Caption = "تعداد افراد آنلاین: " & WebBrowser1.Document.GetElementById("count").InnerHtml
If WebBrowser1.Tag = "Exit" Then Unload Me
End Sub

niksalehi
چهارشنبه 22 خرداد 1392, 01:16 صبح
فکر کنم فقط عدد 1 رو برمیگردونه!

SlowCode
چهارشنبه 22 خرداد 1392, 02:11 صبح
فکر کنم فقط عدد 1 رو برمیگردونه!
نه من خودم الان امتحان کردم به 3 رسوندمش، معیار session آی پی بازدید کننده هست، شما اگه با برنامه وصل بشی بعد از برنامه ای مثل گیت استفاده کنی بعد چندتا مرورگر رو باز کنی میبینی که اعداد همینطوری زیاد میشه.
فقط این کد یه مشکلی داره، که اگه صفحه مستقیما با مرورگر باز بشه دیگه اون عدد صفر نمیشه و رو عدد مثلا 3 باقی میمونه.
سعی میکنم کد اصلاح شده رو فردا بزارم.

2 تاش رو حذف کردم ولی چون آی پی فایرفاکسم متغیره دیگه نتونستم عدد اون رو حذف کنم، الان 1 ثابته و با باز شدن صفحه جدید میشه 2:لبخندساده:

perre-punk
چهارشنبه 22 خرداد 1392, 11:18 صبح
:افسرده:اقای meys34 من نفهمیدم این چطوری کار میکنه....من تازه کارم....باید مثل اینو تویه فرم برنامه ای که نوشتم بزارم؟در ضمن وقتی run میکنم برنامه رو نمینویسه تعداد افراد آنلاینو :متفکر:

SlowCode
چهارشنبه 22 خرداد 1392, 11:38 صبح
:افسرده:اقای meys34 من نفهمیدم این چطوری کار میکنه....من تازه کارم....باید مثل اینو تویه فرم برنامه ای که نوشتم بزارم؟در ضمن وقتی run میکنم برنامه رو نمینویسه تعداد افراد آنلاینو :متفکر:
کدهایی که تو قسمت اول پست 4 نوشتم کد php هستن، یعنی تو یه هاستی آپلود میکنیم و اجرا میشه که دوستمون زحمتش رو برای شما کشیدن.

وقتی اجراش میکنی یکم باید منتظر باشی تا سایت رو باز کنه و مقدار رو بخونه.

باید مثل اینو تویه فرم برنامه ای که نوشتم بزارم؟احساس میکنم این مباحث برای شما سخته، نمیدونم چقدر وی بی بلدین ولی بهتره اول مباحث پایه رو یاد بگیری بعد کار با کنترل Webbrowser و کمی هم با وب آشنایی پیدا کن.
تو یه تاپیک دیگه دیدم که گفتین میخوایین برنامه ای مثل نیمباز رو بنویسین، اتفاقا واسه اون هم باید کار با وب بروزر رو خوب یاد بگیرین و همینطور با وب هم آشنایی داشته باشین.

perre-punk
چهارشنبه 22 خرداد 1392, 15:53 عصر
برای یاد گرفتن اینایی که گفتی باید چکار کنم؟میشه 1 منبعی بهم معرفی کنی که در حد سطح IQ من باشه؟خودم چندتا فیلم نگاه کردم ولی خیلی کلی توضیح میده و من هیچی نمیفهمم....1 چیزی معرفی کن که همه چیه vb6 رو کامل و ساده توضیح داده باشه....مرسی اقا محسن 15

m.4.r.m
چهارشنبه 22 خرداد 1392, 23:02 عصر
بابا کد رو بهت دادن سورس رو دادن آموزش دادن بازم iq شما نمی کشه بشینی اینو بخونی ببینی چی می گه ؟ لقمه رو دوستان گرفتن شما فقط زحمت بلعیدنشو باید بکشی