Avatar billede obhat Nybegynder
02. januar 2005 - 00:13 Der er 21 kommentarer og
1 løsning

Login med ASP

Nogen der kan se problemet her?

For at undgå "dobbelt login" tjekker jeg således...

<%
if request.form ("brugernavn") = session ("brugernavn") then
response.write ("Du er allerede logget ind")
else
server.transfer ("login.asp")
end if
%>

Men det virker simpelthen ikke, jeg kan logge ind 100 gange om jeg vil.
Skal man tjekke på en anden måde?
Avatar billede softspot Forsker
02. januar 2005 - 00:35 #1
Virker dine session-variable (tillader din browser cookies)? Test det evt. ved at udskrive værdien af session("brugernavn") på siden.

Kan du fjerne muligheden for at logge på igen, når først man er logget på? Eller skal man have mulighed for at logge på som en anden bruger selvom man er logget på...
Avatar billede kalp Novice
02. januar 2005 - 00:39 #2
if session("brugernavn") = "" then response.write ("Du er allerede logget ind")
Avatar billede kalp Novice
02. januar 2005 - 00:40 #3
if session("brugernavn") = "" then response.write ("Du er allerede logget ind") end if

manglede lige lidt hehe
Avatar billede obhat Nybegynder
02. januar 2005 - 00:42 #4
Der skal være mulighed for at logge ind som anden bruger.

Kalp >> den forstår jeg ikke - if session("brugernavn") = "" (ingenting)??
Avatar billede kalp Novice
02. januar 2005 - 00:42 #5
<% if session("brugernavn") = "" then response.write ("Du er allerede logget ind")
else
server.transfer ("login.asp") end if %>

sorry... mailspam ved det:)
Avatar billede mortvader Nybegynder
02. januar 2005 - 00:42 #6
Hvad med:

if session("brugernavn")<>"" then
  response.write "Du er allerede logget ind"
else
  server.transfer "login.asp"
end if
Avatar billede kalp Novice
02. januar 2005 - 00:44 #7
hov ja jeg er helt galt på den... mit kode vil gøre at hvis ens session er ovre så vil den sige du er allerede logget ind igen.. det giver jo ikke mening.. sorry:)
Avatar billede obhat Nybegynder
02. januar 2005 - 00:47 #8
Jeg har også prøvet som du skriver >> mortvader
virker heller ikke, scriptet bliver fuldstændig ignoreret, den logger bare på igen og igen..
Avatar billede mortvader Nybegynder
02. januar 2005 - 00:47 #9
En god ide er at fjerne loginboksen, når brugeren er logget ind..

if session("brugernavn")<>"" then
  response.write "Velkommen "&session("brugernavn")
else
  response.write loginform
end if
Avatar billede obhat Nybegynder
02. januar 2005 - 00:51 #10
Jeg ved ikke hvad der er galt.
På forsiden, hvor login boksen er, skriver jeg i toppen.

<% if session("brugernavn") <> "" then
response.redirect ("loggetind.asp")
end if
%>

Netop for at undgå at støde på formularen igen..
Avatar billede mortvader Nybegynder
02. januar 2005 - 00:56 #11
Jeg synes det ser ud som om du ikke har noget i din sessionvariabel.
SOm kalp foreslog, synes jeg du skulle tjekke indholdet ved at skrive det ud på skærmen, så du kan se om den overhovedet er sat.

Hvis ikke, kan det selvf. være fejl i koden under login.
Ellers kan det være (igen som kalp foreslog) dine cookie settings i browseren. I det tilfælde, skru lige lidt ned for paranoiaen ;)
Avatar billede obhat Nybegynder
02. januar 2005 - 01:13 #12
Tja...
Jeg har udskrevet:
response.write session ("brugernavn")
Den er god nok
Avatar billede softspot Forsker
02. januar 2005 - 01:17 #13
Hvad med request.form("brugernavn"), er indholdet i den også god nok?
Avatar billede mortvader Nybegynder
02. januar 2005 - 01:19 #14
Hvis session variablen indeholder navnet, når du er logget ind, men det sidste jeg pastede ind ikke virker, så er der et problem et andet sted i dit kode.
Prøv at paste det ind, så vi kan kigge på det.
Avatar billede softspot Forsker
02. januar 2005 - 01:25 #15
Jeg har oplevet problemer med at aflæse feltindhold i forms, hvis man kun benyttter id på form-felter. Hvis du ikke allerede har gjort det, kan være du også skal angive name-attribut på brugernavn-feltet på din login-form (dvs. <input id="brugernavn" name="brugernavn" value="">)...
Avatar billede mortvader Nybegynder
02. januar 2005 - 01:30 #16
Softspot, når nu hans session indeholder loginnavnet, kan vi vist roligt antage at formen får navnet sendt videre korrekt, ikke? ;)
Avatar billede softspot Forsker
02. januar 2005 - 01:36 #17
ikke nødvendigvis... formularens indhold har ikke noget med cookies at gøre... har den?
Avatar billede mortvader Nybegynder
02. januar 2005 - 01:41 #18
Nej, men session("brugernavn") bliver forhåbentlig ikke sat andre steder end når loginformen postes (og tjek med password i db er foretaget). Obhat skriver jo at den er logget ind. Derfor burde det jo ikke være formen den er gal med.
Avatar billede softspot Forsker
02. januar 2005 - 01:44 #19
Point taken! Sorry! :)

Så må vi håbe der kommer noget kode vi kan smæske os i og få lidt syn for sagerne...
Avatar billede obhat Nybegynder
02. januar 2005 - 11:49 #20
Har netop prøvet at tjekke formularen.

<%
response.write request.form ("brugernavn")
%>

Det er ok
Avatar billede obhat Nybegynder
02. januar 2005 - 12:19 #21
Troede jeg kunne løse problemet, ved at skrive:

<%
session.abandon
%>

I default.asp som loader alle sider, men det virker åbenbart kun i den browser og ikke i de andre som evt. allerede er åbnet.
Avatar billede obhat Nybegynder
02. januar 2005 - 12:42 #22
Okay, nu prøver jeg at gå en helt anden vej, nemlig via onlinelisten.
Men jeg tror ikke det er helt rigtigt det jeg har lavet her:

<%
    Dim arrUsers
    Dim n
    arrUsers = Split(Application("Onlineusers"), ",")
    For n = 1 To UBound(arrUsers) -1
        Response.Write (arrUsers(n) & "<br>")
    Next
End Sub

Call WriteOnlineUsers()


if request.form ("brugernavn") <> Sub WriteOnLineUsers() then
server.transfer ("login.asp")
else
response.write ("Du er allerede logget ind")
end if

%>
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