۱۳۸۸ مهر ۰۷, ۱۱:۳۶ ق.ظ
جديدا براي بخش login سايتم از اي جكس استفاده كرده ام . كه توسط يه فرم شناسه و پسورد رو مي گيره و در صورت درست بودن اون ها كنترل پنل رو مثلا داخل جدولي به نام control panel به كاربر نشون ميده .
قبلا هم براي چك كردن كاربران آنلاين از اي جكس استفاه مي كردم . در اين قسمت تابعي به نام check_online هر 10 ثانيه فراخواني مي شد كه وظيفه داشت مثلا با صفحه check_online.php از طريق اجكس ارتباط برقرار كنه و حاصل داخل جدولي به نام user_online نشون بده . اين از اين . اما مشكلي كه جديدا باهاش مواجه شدم اينه كه گاهي اوقات وقتي كاربر لاگين مي كنه و در صورت درستي شناسه و پسورد به جاي نمايش كنترل پنل كاربري در جدول control panel محتواي چيزي كه تابع check_online گرفته نمايش داده مي شه . البته گاهي اوقات اين اتفاق مي افته . من كد رو مي ذارم شايد بهتر متوجه بشين
اين از سازنده XmlHttp:
اين از تابع login :
اين هم از تابع check_login :
قبلا هم براي چك كردن كاربران آنلاين از اي جكس استفاه مي كردم . در اين قسمت تابعي به نام check_online هر 10 ثانيه فراخواني مي شد كه وظيفه داشت مثلا با صفحه check_online.php از طريق اجكس ارتباط برقرار كنه و حاصل داخل جدولي به نام user_online نشون بده . اين از اين . اما مشكلي كه جديدا باهاش مواجه شدم اينه كه گاهي اوقات وقتي كاربر لاگين مي كنه و در صورت درستي شناسه و پسورد به جاي نمايش كنترل پنل كاربري در جدول control panel محتواي چيزي كه تابع check_online گرفته نمايش داده مي شه . البته گاهي اوقات اين اتفاق مي افته . من كد رو مي ذارم شايد بهتر متوجه بشين
اين از سازنده XmlHttp:
کد پیاچپی:
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
اين از تابع login :
کد پیاچپی:
function login(){
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
news_id=document.getElementById('news_id').value;
url='php_ajax/login.php';
username=document.getElementById('username').value;
password=document.getElementById('password').value;
url=url+'?username='+username+'&password='+password+'&news_id='+news_id+'&q='+Math.random();
xmlHttp.onreadystatechange=insert_login;
xmlHttp.open('GET',url,true);
xmlHttp.send(null);
function insert_login(){
switch(xmlHttp.readyState){
case 1:
document.getElementById('login_divider').innerHTML="<center><img src='images/wait_ax.gif' style='vertical-align:middle'/> <font color='#666666' style='font-size:12px;font-weight:bold' dir='rtl'>لطفا منتظر بمانید !!!</font></center>" ;
break;
case 4:
case 'complete':
if (xmlHttp.responseText){
document.getElementById('controlpanel').innerHTML=xmlHttp.responseText;
}else{
if (confirm('شناسه کاربری یا کلمه عبور نادرست است \n آیا مایل به ایجاد یک حساب کاربری هستید ؟')){
document.location.href='register.php?action=accept';
}
}
break;
}//switch(xmlHttp.readyState){
}// function insert_related(){
}//function login(){
اين هم از تابع check_login :
کد پیاچپی:
function check_online(){
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
url='php_ajax/check_online.php';
url=url+'?rand='+Math.random();
//alert(url);
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
function stateChanged(){
switch(xmlHttp.readyState){
case 4:
case 'complete':
if (xmlHttp.responseText){
document.getElementById("user_online").innerHTML=xmlHttp.responseText;
}
break;
}//switch(xmlHttp.readyState){
}//function stateChanged(){
}//function check_online()