ASP Regsiter foruma

ASP Regsiter foruma

offline
  • Sekki  Male
  • Novi MyCity građanin
  • Pridružio: 06 Dec 2007
  • Poruke: 8
  • Gde živiš: Novi Pazar

Pozdrav,

Imam jedan mali problem napravio sam formu za register , i sada kada forma treba da proverava dali user postoji u bazi ta funkacija mi uopste ne radi niti proverava dali user postili ili ne postoji u bazi.

<%
Putanja = Server.MapPath("/fpdb/baza.mdb")
set DB = Server.CreateObject("ADODB.Connection")
DB.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Putanja)

username = Request.Form("T2")
lozinka = Request.Form("T3")
email = Request.Form("T4")
imeprezime = Request.Form("T5")
drzava = Request.Form("D1")
opis = Request.Form("S1")

function daliPostoji()

upit2 = "Select count(*) from korisnik where name='"&username&"'"
set dbupit = Server.CreateObject("ADODB.RecordSet")
dbupit.Open upit2, DB

if dbupit.Fields(0)>0 then
response.redirect("login.asp")
'response.write "Postoji korisnik sa tim imenom, izaberite drugo!"
%>
<script language="javascript">
alert("Morate izabrati drugo korisnicko ime, to je zauzeto!");
</script>
<%

if dbupit.BOF And dbupit.EOF then
response.write "Ne postoji!"
daliPostoji=false
else
response.write "Postoji!"
daliPostoji = true
End if
End if
End function

kveri = "Insert into korisnik(username,lozinka,email,imeprezime,drzava,opis) values('"&username&"','"&lozinka&"','"&email&"','"&imeprezime&"','"&drzava&"','"&opis&"')"
response.write kveri
DB.Execute kveri

response.redirect("registracijauspesna.asp")
%>



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

Odavno nisam radio sa ASPom, ali malo to cudno izgleda.

Kao prvo, sta ce ti tu definicija f-je daliPostoji()?
Ubaci je na pocetak/kraj fajla ili u novi fajl pa taj novi fajl include-uj u ovaj, a na tom mestu samo napravi poziv te f-je.

Ne treba ti u sql-u da bude count(*). Dovoljno da stavis * ili npr. samo jedan atribut, da se ne muci baza, a posle samo pitas if recordSet.eof then.

Escape-uj text koji ti dolazi iz textboxa (kada upisujes u bazu) da baza ne bi bila podlozna sql injection napadima - zameni ' (apostrof) sa '' (dva apostrofa) kao nekiString.Replace("'", "''").

if dbupit.BOF And dbupit.EOF then
Ovde nema potrebe da stoji i BOF i EOF.

Dovoljno samo -> if dbupit.eof then '// nema korisnika


U f-ji daliPostoji bi bilo dovoljno samo ovo:

if dbupit.EOF then response.write "Ne postoji!" '// ovde postavis sql za insert, DB.Execute kveri i redirect else %> <script language="javascript"> alert("Morate izabrati drugo korisnicko ime, to je zauzeto!"); </script> <% End if %>

A ovo -> daliPostoji=false ne moze tako.
Ne mozes f-ji da dodeljujes vrednost kao varijabli.


Nadam se da nisam nista propustio.

Dopuna: 14 Jan 2008 1:57

Ispravka...

A ovo -> daliPostoji=false ne moze tako. Ne mozes f-ji da dodeljujes vrednost kao varijabli.


Ovo sto sam napisao nije u potpunosti tacno Smile.
Na ovaj nacin vbscript vraca rezultat f-je.
Dosta vremena proslo, zaboravi se Smile.

Tako da sadrzaj f-je moze da bude sledeci:

function daliPostoji() upit2 = "Select * from korisnik where name='" & username.Replace("'", "'") & "'" set dbupit = Server.CreateObject("ADODB.RecordSet") dbupit.Open upit2, DB if dbupit.EOF then response.write "Ne postoji!" daliPostoji=false else response.write "Postoji!" daliPostoji = true End if end function

I onda kasnije:

<% if daliPostoji then %> <script language="javascript"> alert("Morate izabrati drugo korisnicko ime, to je zauzeto!"); </script> <% else kveri = "Insert into korisnik(username,lozinka,email,imeprezime,drzava,opis) values('"&username&"','"&lozinka&"','"&imeprezime&"','"&drzava&"','"&opis&"')" response.write kveri DB.Execute kveri response.redirect("registracijauspesna.asp") %>



Ko je trenutno na forumu
 

Ukupno su 1226 korisnika na forumu :: 100 registrovanih, 8 sakrivenih i 1118 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 6018 - dana 19 Dec 2025 13:41

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 252., 8u47, Ageofloneliness, armor, babaroga, Banovo Brdo, Betty25, BlekMen, Bobrock1, Boris BM, Borkanović, Borski1977, Botovac, boxbole, brandža84, Bubimir, BZ, cuvarkuca, Cvijo_ue, DalmatinacMF, damirZR, Dannyboy, Darko8, DJ Brain(w)rack, dragan_mig31, draganl, DrMrPr, Duschi, DuškoMraz, Dzigy, gasha, Great White, Hans Gajger, istina, Istman, Jeremiah, JK, komenski, komsija1, Kriglord, Krusarac, Kubovac, kuntakinte, Lelemood, Lieutenant, m0nstrum_, Manjane, mačković, mercedesamg, Mercury, Metanoja, Miki 24pbr, mile.ilic75, Milun24, Mirsen, mkukoleca, Mldo, MrNo, Nobunaga, Novakomp, obsc, operniki, Plavi Jadran, Profesor_018, promajauglavi, radza1, Ray1973, rednap, Romibrat, sales, Samo gledam, sasa87, Semberija, septembar, Sevatar, Shadow soldier, Sharpshooter, shlauf, sickmouse, simicnenadbg, Sićko, StalniPromatrač, Steeeefan, tachinni, tanakadzo, Tandrčak, tmanda323, Topaz9, vazduh, Velizar Laro, vladas87, wizzardone, Yekaterinburg, yip314, ziggga, zlaya011, zmajognjeniivan, Zvone, Žukov, 79693