2013-07-03 93 views
0

我運行下面的JavaScript與服務器端(keep.php)檢查 如果用戶的會話。 腳本運行的每個頁面的onload事件:handler.js一個腳本來檢查,如果會話處於活動狀態的所有其它腳本阻止運行

var server = location.host; 
var url = "http://" + server + "/MyHome2/php/"; 
var page = "keep.php"; 


document.onload = checkAuth(); 


function checkAuth() 
{ 
var xmlhttp; 

if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 

xmlhttp.onreadystatechange=function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     var response = xmlhttp.responseText; 
     if (response != "") 
     { 
      document.getElementById("linkSign").innerHTML = response + "|" ; 

     } 
     else 
      document.getElementById("linkSign").innerHTML = "Sign-in|" ; 

    } 
} 

xmlhttp.open("POST",url + page,true); 
xmlhttp.send();} 

我的服務器端keep.php這回顯會話:

<?php 


    session_start(); 

    if (isset($_SESSION['name'])) 
    { 
     echo $_SESSION['name']; 
    } 

?> 

這個腳本是在每個乞討運行HTML頁面來檢查用戶是否有一個會話,如果它確實讓它感到沮喪。 這個腳本與我的其他腳本混淆的問題!過去可以正常工作,並沒有這個正在handler.js

例如我的登錄腳本登錄用戶不工作時,用戶試圖提交國書,指出發生!

var server = location.host; 
var url = "http://" + server + "/MyHome2/php/"; 
var urlmain = "http://" + server + "/MyHome2/index.html"; 
var page = "authentication.php"; 


function loginUser(){ 
var str = "usr=" + encodeURIComponent(document.getElementById("user").value) + "&pwd=" + encodeURIComponent(document.getElementById("password").value); 
checkUserExistance(str,str.length);} 



function checkUserExistance(data,size){ 

var xmlhttp; 

if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 

xmlhttp.onreadystatechange=function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     var response = xmlhttp.responseText; 
     responseHandler(response); 
    } 
} 

xmlhttp.open("POST",url + page,true); 
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xmlhttp.setRequestHeader("Content-length",size); 
xmlhttp.setRequestHeader("Connection", "close"); 
xmlhttp.send(data);} 

爲什麼每個頁面的簡單會話確認的onload阻止噸其他腳本執行?

回答

0

好吧,我發現我的錯誤:) 顯然腳本被視爲一個相同的範圍內,雖然他們在不同的文件。

我有全局變量具有相同的名稱,這是不,不,如果我來自同一個HTML頁面引用這些腳本。

相關問題