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 794 korisnika na forumu :: 28 registrovanih, 3 sakrivenih i 763 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., amstel2, Apok, arsa, Atomski čoban, babaroga, celik, cenejac111, Cirkon, danilopu, Dannyboy, darkangel, denisnapast2015, dozorni, Dukelander, girici2, goxin, mane123, miodrag, misa1xx, NP, ostoja, Regrut Boskica, RJ, Srki94, Srki98, Van, yrraf