[ Nikola Dasic @ 08.03.2004. 23:55 ] @
Pretpostavljam da je očigledno da sam početnik u ovoj oblasti ali se trudim, pomozite da i od mene bude nešto.

Kad postavim formu login/logout na stranu, kako da korisnik koji se prijavi ostane zapamćen i da mu se ova forma više ne traži pri svakom novom pokušaju pristupa rezervisanim stranama u toku iste sesije???

Kreiram web strane u dreamweaver-u, jer i nisam neki programer (tek se prebacujem sa html-a) i dok sam savladao povezivanje .asp strana sa bazom podataka počeo sam da nailazim na probleme ovog tipa.

Unapred zahvalan dobri ljudi!!!
[ impact @ 09.03.2004. 00:55 ] @
Ovako:
kada korisnik popuni svoje podatke u formular za login ti te podatke prvo proveriš u bazi, pa ako se podudaraju neki podatak staviš npr u session promenljivu (npr. ID korisnika).

Kasnije na svakoj stranici uzimaš iz te session promenljive taj ID, pa ako on ne postoji (IsEmpty(promenljiva) = true) ispisuješ poruku korisniku kako nije ulogovan, a ako je False (ima nešto u promenljivoj) daješ mu rezultate.

Što se tiče Logout-a, ovo rešavaš tako što brišeš sadržaje session promenljivih.

Session.Contents.RemoveAll()
Session.Abandon
Response.Redirect "default.asp"

Nemoj zaboraviti da u vrh svake stranice staviš sledeći kod kako bi onemogućio browsere da keširaju sadržaj stranica:

Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
[ Nikola Dasic @ 09.03.2004. 03:21 ] @
Hvala najlepše

Mada sam već spomenuo da nisam programer već radim u dreamweaver grafičkom okruženju, ali snaći ću se nekako... valjda...
[ byTer @ 09.03.2004. 15:33 ] @
Citat:


...pa ako on ne postoji (IsEmpty(promenljiva) = true) ...




Visual basic u ASPu ne prepoznaje = ture. Potrebo je samo da se navede funkcija da bi sve radilo.


Pozdrav.
[ mladenovicz @ 09.03.2004. 15:51 ] @
Nema potrebe Boolean izraz ili rezultat funkcije koja vraca Boolean porediti sa True ili False, bez obzira da li je ASP ili VB u pitanju.
[ impact @ 09.03.2004. 16:56 ] @
Slažem se sa tim, mada radi i u jednom i u drugom slučaju.
[ byTer @ 09.03.2004. 23:24 ] @
Citat:


Slažem se sa tim, mada radi i u jednom i u drugom slučaju.




Ma ne mudrujem ja. Jednom sam nesto vadio iz cookija i ovo gore mi nije radilo :( Probajte uglavnom.
[ tjelka @ 17.03.2004. 23:02 ] @
Napraviš dvije .asp stranice. Jednu nazoveš login.asp a drugu logout.asp
napraviš bazu u access .mdb sa dvije kolone username i userpwd

Na sam vrh svake stranice za koju želiš da bude "pod lozinkom" staviš:
<%
Response.Expires = -1 ' 'Postaviš da browser ne kešira sadržaj
Response.Buffer = True 'Ubaciš u buffer da response.redirect radi

If Session("UserLoggedIn") <> "true" Then
Response.Redirect("login.asp")
End If
%>

********************************************************
login.asp sljedi ispod:

<%
Response.Expires = -1 'Postaviš da browser ne kešira sadržaj
Response.Buffer = True 'Ubaciš u buffer da response.redirect radi

Dim Error_Msg

login = Request.Form("login")
If login = "logout" Then
Session("UserLoggedIn") = ""
ShowLogin
Else
If Session("UserLoggedIn") = "true" Then
AlreadyLoggedIn
Else
If login = "true" Then
CheckLogin
Else
ShowLogin
End If
End If
End If

Sub ShowLogin
Response.Write(Error_Msg & "<br>")
%>
<link href="css/cssstiles.css" rel="stylesheet" type="text/css">

<form name=form1 action=login.asp method=post>
<div align="center">
<p class="slova1">Korisnik :
<input type=text name=username>
<br>
Lozinka :
<input type=password name=userpwd>
<br>
<input type=hidden name=login value=true>
<input type=submit value="Ulaz">
</p>
</div>
</form>
<span class="slova2">
<%
End Sub

Sub AlreadyLoggedIn
%>

Već ste prijavljeni na administracijske stranice. Želite li se odjaviti i prijaviti
kao novi korisnik? </span>

<form name=form2 action=login.asp method=post>
<input type=submit name=button1 value="Da">
<input type=hidden name=login value="logout">
</form>
<%
End Sub

Sub CheckLogin
Dim Conn, cStr, sql, RS, username, userpwd
username = Request.Form("username")
userpwd = Request.Form("userpwd")
Set Conn = Server.CreateObject("ADODB.Connection")
cStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("baze\admin.mdb") & ";" & _
"Persist Security Info=False"


Conn.Open(cStr)
sql = "select username from korisnici where username = '" & LCase(username) & "'"
sql = sql & " and userpwd = '" & LCase(userpwd) & "'"
Set RS = Conn.Execute(sql)
If RS.BOF And RS.EOF Then
Error_Msg = "Neuspješna prijava. Pokušajte ponovno."
ShowLogin
Else
Session("UserLoggedIn") = "true"
Response.Redirect "pozdravna_stranica.asp"
End If
End Sub
%>
********************************************************
logout.asp sljedi ispod:

<%
Session.Abandon ()
Response.Redirect ("neka_stranica.htm")
%>

Nadam se da pomaže. (...to ne ide na stranicu) ... (šala!)

Nauči kod barem malo pa onda upotrebljavaj visualne alate da si olakšaš, kao što ih koristiš u Dreamweaver-u. Jer ionako, složenije stvari (čitaj elegantnije) nećeš moći izvesti alatima.

[ tjelka @ 17.03.2004. 23:06 ] @
Izbriši ovu liniju to ti ne treba i javiti će ti grešku. Zabunom sam je copy-paste. To je formatiranje (make-up) mojih stranica.

<link href="css/cssstiles.css" rel="stylesheet" type="text/css">