Avatar billede Slettet bruger
12. april 2010 - 23:28 Der er 8 kommentarer og
1 løsning

session og ajax

Hej

Jeg er i gang med at lave noget ajax, fordi jeg har noget indhold på en side som skal opdateres løbende mens folk er på siden.

Den pågældende side kræver login, og login-systemet er lavet med sessions. Altså man kan ikke komme ind på siden medmindre session("noget") har en eller anden værdi.

Men hvordan lavet man logintjek på den side som ajax-scriptet skal hente fra?

\Dan
Avatar billede softspot Forsker
13. april 2010 - 00:09 #1
Hvis det indhold der skal hentes kræver login, så er brugeren vel også logget ind på den side hvorfra der hentes oplysninger via AJAX, så session indeholder vel allerede autorisationsbevis idet kaldet via AJAX kommer ind...?
Avatar billede Slettet bruger
13. april 2010 - 00:33 #2
jeps...

lad os tage et eksempel.
prøv at se her foreløbig: http://fdfvodskov.dk/ajax
Jeg kan godt udskrive session.sessionid på "window1.asp" og det kan der jo laves en vis sikkerhed omkring. Men en session("test") vil den ikke. Her noget simpelt source:

default.asp:
<%
session("test")="dette er en prøve!"
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<body>
<div id="test">
</div>
<br>
<input type="button" id="stop" value="Stop tid" onclick="stop_tid();" style="display: block;">
<input type="button" id="start" value="Start tid" onclick="start_tid();" style="display: none;">
<script type="text/javascript">
function loadXMLDoc(){
url='window1.asp';
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET",url,false);
xmlhttp.send(null);
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET",url,false);
xmlhttp.send();
}
document.getElementById('test').innerHTML=xmlhttp.responseText;
}
function go_ajax(){
loadXMLDoc();
tid = setTimeout("go_ajax()",4000);
}
function stop_tid(){
document.getElementById('stop').style.display='none';
document.getElementById('start').style.display='block';
clearTimeout(tid);
}
function start_tid(){
document.getElementById('stop').style.display='block';
document.getElementById('start').style.display='none';
go_ajax();
}
start_tid();
</script>
</body>
</html>

window1.asp:
<%
response.expires=-1
%>
<%=now%>
<br>
<%=session("test")%>

Hvorfor kommer den med fejl her?

\Dan
Avatar billede softspot Forsker
13. april 2010 - 08:47 #3
Du mangler at erklære variablen tid globalt. Da du bruger den i to forskellige funktioner, dvs. go_ajax og stop_tid, er det nødvendigt at den eksisterer udenfor funktionernes scope (hvilket den efter min bedste overbevisning) ikke gør pt.
Avatar billede Slettet bruger
13. april 2010 - 18:36 #4
hmm... Jeg forstår ikke helt hvad du mener med at erklære den? Altså at lave dim inden eller hvad?
Egentlig så undrer det mig en del hvorfor java-scriptet fejler her, fordi det er jo en asp-ting det med session.

Eller mener du at der skal laves en java-script variabel (var...) som så indeholder session værdien som så skal sendes med? I så fald så er session værdien jo også synlig for brugeren...

\Dan
Avatar billede Slettet bruger
29. april 2010 - 13:18 #5
nå... Jeg opgiver at vente på hjælp...

eksperten.dk er virkelig ikke hvad den engang har været!

\Dan
Avatar billede softspot Forsker
29. april 2010 - 13:43 #6
Du kunne jo starte med at spørge om du er blevet glemt i stedet for at vente 14 dage og så agere fornærmet over at du ikke lige er centrum i alle andres hverdag...

Nogle gange kan det være en god idé lige at trække vejret et par gange inden man sender den fornærmede besked.
Avatar billede Slettet bruger
29. april 2010 - 14:13 #7
Hej softspot.

Jeg tror vist du har misforstået min kommentar i #5. Eller også har jeg bare ikke udtrykt mig klart nok...
Det beklager jeg! Det må du undskylde! Jeg hverken agerer eller er fornærmet over noget. Jeg var ikke ude på at fornærme hverken dig eller andre - og jeg trækker i øvrigt vejret hele tiden (alt andet ville være ret farligt)...

Det er selvfølgelig ok, hvis denne her tråd var blevet glemt, for jeg har fundet en anden løsning - nemlig at lave min session på siden før siden med ajax.

Men om ikke andet så synes jeg stadig ikke at eksperten.dk er hvad den engang har været hvad aktivitetsniveau angår. Engang var det sådan at man stillede et spørgsmål og så var der et helt dusin andre brugere som prøvede på at hjælpe en - den tid er forbi... øvøv...

Så #5 var mere et forsøg på at kritisere eksperten.dk end at kritisere dig.

\Dan
Avatar billede softspot Forsker
29. april 2010 - 14:21 #8
Fair nok. Jeg har nok fået tingene til at hænge sammen så det blev et negativt budskab jeg modtog.

Jeg vil tro Ekspertens brugerskare, for størstedelen, består af flere spørgere end folk der kan besvare spørgsmålene og at der derfor bliver længere mellem det kvalificerede svar/hjælp...
Avatar billede Slettet bruger
29. april 2010 - 14:32 #9
ok - og tak!

Jeg tror også der nu er mange flere spørgere på Eksperten.dk end der er hjælpere... Men jeg synes bare det er mærkeligt det er blevet sådan. For du må da indrømme det ikke altid har været sådan, med så få hjælpere?

Jeg er også selv ved at køre træt i at hjælpe andre herinde nogle gange... Jeg har masser af åbne spørgsmål jeg deltager i - hvor spørgeren stiller et spørgsmål, og så serverer jeg løsningen på et sølvfad, og intet sker så fra spørgerens side...

Nå. Nu blev denne tråd vist også rigeligt off-topic... Slut herfra.

\Dan
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I går 23:37 Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows