الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن ارسال معلومة الى ال Client

بدأه Anas_x في 5 فبراير 2009 · 15 رد · 1,286 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

كيف يمكن ارسال معلومة الى ال client عن طريق ال session_id الخاص به

#2

يعني و لا واحد عنده ادنى فكرة

#3

سؤالك غير واضح

#4

سأعيد التوضيح أكثر

يعني كما هو معروف ...عندما يطلب مستخدم ما صفحة معينة فان ال server يرسل هذه الصفحة لنفس المستخدم الذي طلبها

السؤال هنا كيف يمكن جعل ال server يرسل الطلب الى مستخدم أخر غير الذي طلب الصفحة و هو محدد ب session خاصة به

#5

ما أفهمه أن المستخدم لو طلب الصفحة التالية مثلا : site.com/index.php?go=admin السيرفر سيقوم بأخذه إلى المجلد admin مثلا أو إلى لوحة التحكم .

أولا عليك تسجيل المستخدم في session عادة تكون بإسمه و هي أفضل أو عن طريق الأيبي الخاص به ثم تعالج الطلب بالتالي :

  1.  
  2. if($_GET['go']=='admin' && !isset($_SESSION['user'])==0)
  3. {
  4. ob_end_clean()
  5. header("Location: $url")
  6. exit
  7. }
  8.  

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#6

لا ليس هذا ما قصدته ...العكس تماما

سأعطيك مثالا أخر...في ال chat مثلا يقوم المرسل بكتابة رسالة ...تم يعيد ال server ارسالها الى الشخص المستهدف اي الى جهاز أخر في منطقة أخرى من العالم هذا ما أعنيه

#7

أظن ما تطلبه مستحيل لأن هذا يعتبر remote command فأنت تريد أن يقوم المستخدم رقم 1 بطلب فتح صفحة yahoo مثلا فتفتح عند المستخدم رقم 2 حيث المستخدم 2 ليس في موقعك هذا في حالة المتصفحات أما إن كنت ستستعمل php command line فذلك شيء آخر .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#8

الإستفسار غير واضح ولكني فهمت التالي :

أنا مستخدم أ أربد صفحة ص1 وعند طلبها سيقوم الخادم بإرسال الطلب إلى مستخدم آخر ب فورا ...

بهذه الحالة سأعتبر أ المدير الخاص بلموقع ليقوم بهذه الحركه

في البداية يجب عرض جميع لمتصفحين للموقع ليختار المدير من سيكون الضحية :)

ثم بالكود نخزن رقم جلسة الضحية في قاعدة بيانات

وفي الصفحة يكون سؤال : إذا كان رقم الجلسه يساوي الرقم الموجود في قاعدة البيانات إذن قم بعمل كذا

أرجوا أن يكون هذا طلبك

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#9

نعم هذا طلبي بالتحديد

#10

ولماذا تريدها؟

#11

هل تستطيع تنفيذها لوحدك؟ أم تريد مساعدة ؟

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#12

بالطبع أريد مساعدة

ما أريد بالظبط أن أقول لل php أرسل قيمة المتغير $txt الى صاحب ال session : fb1119b6c106081e5310d3228aa5d7a8

تم تعديل هذه المشاركة بواسطة Anas_x في 11 فبراير 2009 في 17:07

#13
اقتباس
هل تستطيع تنفيذها لوحدك؟ أم تريد مساعدة ؟

أين جوابك يا bastr3

#14

أنا أعطيك الأفكار فالتنفيذ يحتاج إلى عمل كثير :) وأنا مشغول للأسف

في البداية عليك عمل جدول يقوم بتخزين رقم كل جلسة مع وقتها ومن ثم التأكد كل عملية فتح للصفحة بأن الجلسة لم يمض عليها أكثر من ربع ساعة والتي مر عليها أكثر من ربع ساعه يتم حذفها

ثم تقوم بإستدعاء كل الجلسات من قاعدة البيانات في صفحة المدير

وفي الصفحة الرئيسيه يكون هناك كود جافا سكريبت (أجاكس ) ينفذ كل ثانيه أو خمسة ثوان على حسب الحاجه ,هذا الكود يتأكد من وجود نص خاص لهذه الجلسة حتى يظهره

في حالة قام المدير بإختيار جلسة معينه وأرسل لها نص يتم إظهار النص فورا عن طريق الأجاكس كما ذكرنا

آسف لأني لا أملك الوقت الكافي , أي مشاكل تواجهك سأحاول المساعده :)

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#15

تم العمل في صفحة واحده

<?
session_start();
$host='localhost';
$user='root';
$pass='';
$db='send2c';
$link = mysql_connect($host, $user, $pass)or die ('I cannot connect to the database because: ' . mysql_error());
$db_selected = mysql_select_db($db, $link);
/***********************Add session to db**************************/
$tm = time();
$timeout = $tm - (15*60);
$Session_id=session_id();
mysql_query("Delete from guest WHERE time_out <'".$timeout."'");
$insertornot = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM guest where id_session='$Session_id' "));
if(!$insertornot[0]){ mysql_query("INSERT INTO guest SET  time_out='$tm', id_session='$Session_id'");}


/*********************Check for new msgs************************/
if($my_session_id==$Session_id){
   $result=mysql_fetch_array(mysql_query("SELECT `msg` FROM `guest` WHERE `id_session`='$Session_id' limit 1"));
   //For test
   if(!$counter){session_register('counter');$counter=1;}
   $counter++;
   echo "Counter= $counter <br/>\n $result[0]";exit;

}
/**********************Ajax code**************************/
?>
<script type="text/javascript">
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
function getData(dataSource, divID)
{


var Scu=Math.floor(Math.random()*10000001)
dataSource=dataSource+"&Scu="+Scu;

if(XMLHttpRequestObject) {
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("GET", dataSource);
XMLHttpRequestObject.onreadystatechange = function()
{

if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(null);
}
}
 </script>
<? /***************Page html******************/ ?>
<body>
<script type="text/javascript">
	function timedCount()
	{
		getData('?my_session_id=<?=$Session_id?>', 'msg');
		t=setTimeout("timedCount()",5000);
	}
  timedCount();
</script>
<div id='msg'>here your msg</div>
</body>
<?

?>

قاعدة البيانات

CREATE TABLE `guest` (
  `id_session` varchar(100) collate latin1_general_ci NOT NULL,
  `time_out` varchar(20) collate latin1_general_ci NOT NULL,
  `msg` longtext collate latin1_general_ci NOT NULL
)

عند تنفيذ الصفحة سيتم تخزين الجلسة في قاعدة البيانات قم يدويا بإضافة رساله في حقل الرسائل في قاعدة البيانات وأنتظر ... سترى ظهور الرساله في المتصفح طبعا بتقدر تفتح الصفحة على أكثر من متصفح مثل فايرفكس وآكسبلولر وتشوف كيف كل رساله بتصل للمتصفح المطلوب

ضايل عليك تبني صفحة المدير على أساس تنفذ الرسائل بشكل أكثر سهوله

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#16

شكرا جزيلا لك على هذا المجهود الجبار.... وصلت الفكرة و زال الغموض

مواضيع مشابهة