mboost-dp1

PHP/Javascript/AJAX - Kick function haløjs


Gå til bund
Gravatar #1 - kasperbjerby
7. okt. 2010 14:53
Jeg har lavet en chat....
Og jeg kan ikke få kick til og virke...
Jeg ved ikke hvordan jeg skal få "hoved" siden til og refreshe/redricte....
Altså jeg har opdelt min chat i div'er også bruger jeg ajax til og opdatere dem....

Ajax kode:
	function AJAX()
{
try
{
xmlHttp=new XMLHttpRequest();
return xmlHttp;
}
catch(e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
return xmlHttp;
}
catch(e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return xmlHttp;
}
catch(e)
{
alert("Du kan desvære ikke bruge chatten med denne browser");
return false;
}
}
}
}
function fetch_unix_timestamp()
{
return parseInt(new Date().getTime().toString().substring(0, 10))
}
function refresh_chatten()
{
var xmlHttp_one = AJAX();
var timestamp = fetch_unix_timestamp();
var nocacheurl = "?o=chatten&t="+timestamp;
xmlHttp_one.onreadystatechange=function()
{
if(xmlHttp_one.readyState == 4)
{
document.getElementById("chatten").innerHTML=xmlHttp_one.responseText;
setTimeout('refresh_chatten()', 500);
}
}
xmlHttp_one.open("GET",nocacheurl,true);
xmlHttp_one.send(null);
}
function refresh_onlinelist()
{
var xmlHttp_one = AJAX();
var timestamp = fetch_unix_timestamp();
var nocacheurl = "?o=onlinelist&t="+timestamp;
xmlHttp_one.onreadystatechange=function()
{
if(xmlHttp_one.readyState == 4)
{
document.getElementById("onlinelist").innerHTML=xmlHttp_one.responseText;
setTimeout('refresh_onlinelist()', 500);
}
}
xmlHttp_one.open("GET",nocacheurl,true);
xmlHttp_one.send(null);
}
function refresh_top()
{
var xmlHttp_one = AJAX();
var timestamp = fetch_unix_timestamp();
var nocacheurl = "?o=top&t="+timestamp;
xmlHttp_one.onreadystatechange=function()
{
if(xmlHttp_one.readyState == 4)
{
document.getElementById("top").innerHTML=xmlHttp_one.responseText;
setTimeout('refresh_top()', 500);
}
}
xmlHttp_one.open("GET",nocacheurl,true);
xmlHttp_one.send(null);
}
function start_refresher()
{
refresh_chatten();
refresh_onlinelist();
refresh_top();
}
window.onload = start_refresher;


Og inde i min onlinelist kode (Som bliver vist i onlinelist div'en) har jeg dette:
if($kicked == true)
{
session_destroy();
// Refreshe/redricte hoved siden
}


Men jeg kan bare ikke få noget til og refreshe/redricte hoved siden?
Den sletter fint mine sessions og den kan også refreshe/redricte selve div'en men det ikke det jeg vil have den til....
Gravatar #2 - thorjak
7. okt. 2010 15:03
Det er fordi det er et ajax kald.
Smid en besked afsted til browseren at den er blevet kicket, og lav et redirekt i javascriptet.

Ellers er det kun dit ajax kald der bliver redirectet
Gravatar #3 - markjensen
7. okt. 2010 15:19
Hvorfor bruger du ikke jQuery? Det ville gøre din kode meget nemmere at læse.
Gravatar #4 - kasperbjerby
7. okt. 2010 15:36
#2
Hvordan?

#3
Hvad er det? :)
Gravatar #5 - markjensen
7. okt. 2010 15:48
#4 Et javascript-bibliotek der gør det nemmere at skrive ajax (der findes også andre end jQuery). Du behøver fx ikke lave alt det der browser-tjek. Det sørger den selv for.
Gravatar #6 - kasperbjerby
7. okt. 2010 15:52
#5 Oka :)
Men det fixer jo stadig ikke helt mit problem...
Gravatar #7 - reefermadness  
7. okt. 2010 16:16
#6 - Læs #2

Noget ala:
if(xmlHTTP.responseText == "BANNED"){
window.location.href = 'ban.html';
}

og

if($kicked == true)
{
session_destroy();
// Refreshe/redricte hoved siden
echo "BANNED";
}
Gravatar #8 - arne_v
7. okt. 2010 16:35
#5

Simplere kode gør det nemmere for både dig og andre at finde fejl.
Gravatar #9 - kasperbjerby
7. okt. 2010 16:40
#6 Hmm... Kunne måske komme til og du...
Tak for hjælpen :)
Gravatar #10 - reefermadness  
7. okt. 2010 18:31
kasperbjerby (9) skrev:
#6 Hmm... Kunne måske komme til og du...
Tak for hjælpen :)


Er du fuld?
Gravatar #11 - arne_v
7. okt. 2010 18:37
#10

Han ramte nok bare 6 i.s.f. 7!
Gravatar #12 - kasperbjerby
8. okt. 2010 14:23
#10 Nej :)

#9 Ja ups :)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login