Avatar billede forcedesigner Nybegynder
16. april 2002 - 20:52 Der er 38 kommentarer og
1 løsning

Efter login..

Jeg har lavet en login system, hvor man kan log sig ind fra forsiden af (index.asp).
Efter man har logget sig ind kommer man i (logget.asp), men hvis man så gå tilbage til (index.asp) uden at log af, kommer der stadig login fælderne med username og password. Det skal der helst ikke komme, der skal fx. bare stå (Du er logget ind som "martin"). Hvis man så logger af skal fælderne kommer tilbage igen.

Ligsom denne system her i eksperten.dk

Håber i forståd og kan hjælpe.
Avatar billede kimiwan Nybegynder
16. april 2002 - 20:56 #1
øverst på logindsiden skal du lave et tjek for om brugeren er logget ind allerede - og hvis han er, sender du ham bare videre til den side, du så vil ha' ham til at se (i stedet for den med login formen)
Avatar billede sungdk Nybegynder
16. april 2002 - 20:57 #2
<% if session("login") = "1" then %>
Din tekst når folk er logget ind!
<% end if %>
        <% else %>     
Dine såkaldte fælder :) (felter)
<% end if %>
Avatar billede sungdk Nybegynder
16. april 2002 - 20:57 #3
session("login") skal rettes til det din egen session bliver kaldt!
Avatar billede forcedesigner Nybegynder
16. april 2002 - 20:58 #4
Jeg fik den ikke hel labisama
Avatar billede sungdk Nybegynder
16. april 2002 - 21:01 #5
Kan godt være jeg misforstår hvad du er igang med.

Men så vidt jeg kan læse mig til, så skal der være en login-form.
Også kan folk logge sig ind. Derefter når de prøver at gå tilbage til login-formen, så er den fjernet og i stedet står der fx. "Velkommen tilbage"
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:03 #6
JA du forståd det!
Avatar billede kimiwan Nybegynder
16. april 2002 - 21:04 #7
forcedesigner:

du skal bruge det samme check på loginsiden som du bruger på de beskyttede sider for at se at din bruger vittelig er logget ind.

den eneste forskel er bare at på loginsiden vil du redirecte brugeren, hvis han *er* logget ind allerede.
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:08 #8
OK kan du komme med et eksempel?
Avatar billede sungdk Nybegynder
16. april 2002 - 21:08 #9
Her er en bedre uddybning, og husk at dette stykke script skal være på login-siden:

<% if session("login") = "1" then %>
Du ER logget ind...
<% end if %>
<% else %>     
Din login-form skal være her!
<% end if %>
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:13 #10
Jeg forstå men der kommer fejl, ved ik' hvorfor.
Avatar billede sungdk Nybegynder
16. april 2002 - 21:13 #11
hvad siger fejlen?
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:18 #12
Fejltype:
Active Server Pages, ASP 0140 (0x80004005)
Kommandoen @ skal være den første kommando i en Active Server Page.
/ForceDesign/default.asp, line 154
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:20 #13
Hvis jeg logger ind kommer fejlen ikke, men logger jeg så ud kommer fejlen.
Avatar billede wittnezz Nybegynder
16. april 2002 - 21:24 #14
Muligheden ovenfor er god (ville selv have foreslået den) Men der er også en anden mulighed, der gør at du kan lukke browseren, åbne den igen, og stadig være logged ind. (I et antal minutter, timer, dage eller whatever...! Du bestemmer selv)

Måden dette gøres, er at bruge cookies. Når der er logget ind, sætter du en cookie på brugerens maskine, med en specifik udløbstid (eller ingen hvis brugeren aldrig skal se login-siden igen) Ulempen ved denne løsning er at det ikke er alle brugere af internettet der har slået muligheden for cookies til. Ulempen ved session-variable er at de slettes når browseren lukkes, hvilket ikke altid er hensigtsmæssigt.! :)
Avatar billede wittnezz Nybegynder
16. april 2002 - 21:27 #15
_labisama_  > Dette burde efter min mening ikke virke :

<% if session("login") = "1" then %>
Du ER logget ind...
<% end if %>
<% else %>     
Din login-form skal være her!
<% end if %> '*


Da du har en "end if"-erklæring inden du "else"-sætningen. Det skal man ikke, kun en "end if" efter hele blokken, dvs. kun den jeg har markeret med en *
Avatar billede wittnezz Nybegynder
16. april 2002 - 21:27 #16
Kan se jeg ikke kan stave, håber det er forståeligt alligevel...! :)
Avatar billede sungdk Nybegynder
16. april 2002 - 21:32 #17
wittnezz >> Du har ret i det med scriptet - kopierede den hurtigt fra noget jeg tidligere har brugt og kom lige til at slette for lidt :)

Også en mere alvorlig del af sagen! Det er altså ikke helt rigtigt hvad du skriver omkring cookies og session.

Din holdning lyder mest som om du holder dig til cookies, men jeg kan finde hav af dårlige ting om den. Bl.a. er man nødtil at kryptere dit password, før det er 100% sikkert.

Det med at du lukker browseren ned og session ryger er heller ikke helt korrekt. Det er faktisk serveren som styrer hvor langtid en session-værdi skal være aktiv.

Men det er vel lidt op til folk hvad der er nemmest i de forskellige situationer - Bl.a. vil jeg klart anbefale session her!
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:36 #18
stadig fejl. kan I lave en hurtig og forståelig eksempel.
Avatar billede kimiwan Nybegynder
16. april 2002 - 21:37 #19
forcedesigner:

det er måske lettest, hvis du viser os den kode, du bruger til at tjekke om men bruger er logget ind... inde på hver enkelt af de beskyttede sider.
Avatar billede sungdk Nybegynder
16. april 2002 - 21:38 #20
Send dine scripts (uden alt for meget HTML som body) og sæt point til 60.

Så skal jeg nok lave det for dig!
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:40 #21
<%
if session("brugernavn") = "" then Response.Redirect("index.asp?error=Husk at logge dig ind!") end if
%>
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:40 #22
det er tjek.asp
Avatar billede kimiwan Nybegynder
16. april 2002 - 21:41 #23
if len(session("brugernavn"))>0 then
response.write "du er logget ind"
else
response.write "log venligst ind her..."
end if
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:42 #24
hvordan kan jeg sætte det til 60 point (jeg er ny på eksperten.)
Avatar billede wittnezz Nybegynder
16. april 2002 - 21:43 #25
_labisama_  > Nope, bruger selv session-variable. (Men forstod ikk' helt spm. tror jeg, så jeg ville bare sikre mig, at denne mulighed også blev præsenteret)

Hvad kan jeg sige, du har ret mht. sessions, men det sker at de ryger før session-timeout nåes, dette sker ikke med cookies. (Men som du siger, skal man sikre sig at tingene bliver krypteret ordentligt inden det sendes til klienten. Især hvis det er f.eks. pwd og lign.)

C's

WittnezZ
Avatar billede kimiwan Nybegynder
16. april 2002 - 21:44 #26
jeg tror, du kan gøre det ved at oprette et nyt spørgsmål og skrive som overskrift at det er for noget bestemt..

f.eks. ekstrapoint for "ekstra login"

men du må vist dele points lidt imellem os, det er vist mest fair :o)
Avatar billede kimiwan Nybegynder
16. april 2002 - 21:46 #27
(og husk selvfølgelig at uddele points her og gøre dem, der skal ha fra de sidste 30 pts, opmærksom på det :o)
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:47 #28
Du er jeg forvirret!
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:47 #29
NU er jeg forvirret!
Avatar billede sungdk Nybegynder
16. april 2002 - 21:47 #30
forcedesigner >> Du kan vel ikke vise os noget mere? Det der kan umuligt være login? :)
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:52 #31
Der skal være en login-form.
Folk logge sig ind. Derefter når de prøver at gå tilbage til login-formen, så er den fjernet og i stedet står der fx. "du er logget ind"
hvis de så logger af skal login-form komme på plads igen.
Avatar billede forcedesigner Nybegynder
16. april 2002 - 21:56 #32
Login kode:


<% if mode = "" then %>
<%
Session("brugernavn") = request.form("brugernavn")
Session("password") = request.form("password")
%>
<%
set Conn = Server.createobject("adodb.connection")
conn.Open "DBQ="& Server.MapPath(".") &"/database.mdb; DefaultDir=DBQ="& Server.MapPath("/") &";Driver={Microsoft Access Driver (*.mdb)};"

Response.Buffer = True

Function checklogin(brugernavn,password)
    set tjek = Conn.Execute("SELECT * FROM bruger WHERE brugernavn = '"& brugernavn &"' AND password = '"& password &"'")
    If tjek.EOF THEN
        Response.Write "<FONT FACE=Verdana SIZE=1 COLOR=#FF0000><b>Bruger ikke fundet!</b></FONT>"
    Else
        Session("login") = tjek("id")
        Response.Redirect("godkendt.asp")
    End If
End Function

Function sqlreplace(streng)
    sqlreplace = Replace(streng,"'","''")
End Function
REM Diverse funktioner slut
%><% If Request.ServerVariables("REQUEST_METHOD") = "POST" Then checklogin sqlreplace(Request.Form("brugernavn")),sqlreplace(Request.Form("password")) %>
Avatar billede kimiwan Nybegynder
16. april 2002 - 22:09 #33
for at logge af skal de gøre en af flg. 2 ting:

1) lukke deres browservindue
2) klikke på et link, der tager dem til en side med flg. scriptbid:

<%
session.abandon
response.redirect "næsteside.asp"
%>


hvis problemet er at brugeren trykker på *tilbage* knappen i browseren, kan du afhjælpe det ved at sætte flg. 2 linjer kode ind i toppen af hver enkelt beskyttet side:

Response.ExpiresAbsolute = #1/1/1980#
Response.AddHeader "cache-control", "private"

de får siden til at udløbe, så brugeren ikke kan komme tilbage til dem uden at loade dem igen (ellers bliver de bare gemt i cachen indtil han lukker browservinduet)
Avatar billede forcedesigner Nybegynder
16. april 2002 - 22:14 #34
hvad snakker du om det er ikke log af der er problemet, men prøv at læse spøgsmålet igen.
Avatar billede kimiwan Nybegynder
16. april 2002 - 22:19 #35
du skriver hvad den skal gøre, men du skriver ikke, hvad den gør nu.

vil du ha', vi skal lave en loginform i html for dig??
Avatar billede forcedesigner Nybegynder
16. april 2002 - 22:28 #36
Nej tak.
Avatar billede kimiwan Nybegynder
16. april 2002 - 22:39 #37
hvad er problemet da? :o)  er ikke sikker på, jeg helt har forstået dig :-/
Avatar billede sungdk Nybegynder
17. april 2002 - 18:49 #38
Det er da en utrolig underlig login-script, kan godt forstår hvis du får masser af fejl!
Avatar billede forcedesigner Nybegynder
19. april 2002 - 22:20 #39
glem det men mange tak til jer alle.
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