Newsgroup: it.lavoro.professioni.webmaster
Titolo: Aiuto [ASP]

Ciao,
potete aiutarmi?
Mi sono bloccato su questo: in pratica, vorrei NON far registrare utenti con
mail o username uguali. Se qualche utente tentasse di registrarsi
contravvenendo a quanto sopra, vorrei far apparire degli errori separati,
per esempio: se la mail fosse duplicata, 'Mail già presente nel db' oppure,
se fosse già esistente lo username 'Username già scelto da un altro
utente',.....
Io ho provato così:
Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT UserId, Mail FROM Info"
objRS.Open strSQL, objConn, adOpenStatic, adLockReadOnly, adCmdText
if objRS("UserId") = Request.Form("UserId") then
%>
Spiacenti, questo Nome Utente &egrave; gi&agrave; in
        uso. <br />
        Scegline un altro
<%
elseif objRS("Mail") = Request.Form("mail") then
%>
 Spiacenti, questa E-mail &egrave; gi&agrave; presente
        nel nostro database.<br />
        Ti ricordiamo che &egrave; possibile iscriversi una sola volta.<br
/>
        <br />
<%
else
Response.Write("form inviato")
'inserisco nel db
end if
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn=Nothing
end if
%>
ma non mi funge il controllo sullo userid e poi, penso che mi si fermi solo
al primo record e quindi non controlla su tutto il db.
Come faccio??
Grazie

>Come faccio??
1) Impari a programmare;
2) Impari php;
3) Impari sql.
P.S.
visto come usi i tag aggiungo anche
4) Impari l'html.

 Grazie
dim sql, rs, ok, err
set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT UserId, Mail FROM Info"
set rs = conn.Execute(sql)
ok = 1
do until rs.EOF or rs.BOF or ok=0
    if rs("Mail") = Request.Form("mail") then
        err = "Email già presente nel db.."
        ok = 0
    elseif rs("UserId") = Request.Form("id") then
        err = err + "User id già scelto"
        ok = 0
    end if
    rs.MoveNext
loop
if ok=1 then
    'Prosegui registrazione
else
    Response.Write(err)
end if
ricordati di connetterti al db e poi alla fine di pulire e chiudere conn e
rs...
spero che funzioni.. ;)))
sicuramente ci sono un po' di errori, ma la logica penso sia giusta...
se non capisci qlcs mandami una mail..
cmq studiati un po' di asp, magari anche su internet (
aspitalia.com
)
anche se ti consiglio un buon libro che non guasta mai..
per l'html non capisco dove hai preso <br />.. cmq.. vabbè.. boh..
fammi sapere se funge..
ciao
hf con la febbre un giorno prima di ferragosto :((

> per l'html non capisco dove hai preso <br />.. cmq.. vabbč.. boh..
http://www.w3.org/TR/xhtml1/#diffs
4.6. Empty Elements
Empty elements must either have an end tag or the start tag must end with
/>. For instance, <br/> or <hr></hr>. See HTML Compatibility Guidelines for
information on ways to ensure this is backward compatible with HTML 4 user
agents.
CORRECT: terminated empty elements
<br/><hr/>
INCORRECT: unterminated empty elements
<br><hr>
** Inviato da X-Privat NNTP Server - 
www.x-privat.org
 **

 Io ho provato cosě:

visto che hai aperto un recordset e ovviamente l'oggetto objRS mostra solo
il primo record devi fare un ciclo con do until (ad esempio) e alla fine
ovviamente muoverti a record successivo con objRS.movenext.
Comunque questa non č la strada corretta, prova ad immaginare di avere
15'000 utenti, che fai ti cicli tutti i record uno alla volta???
Inoltre utilizza il cursore adForwardOnly se devi solo muoverti in avanti
nel recordset
Usa questa soluzione:
Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT UserId, Mail FROM Info WHERE UserID='" &
replace(request("UserID"),"'","''") & "' or Mail='" &
replace(request("mail"),"'","''") & "';"
objRS.Open strSQL, objConn, adForwardOnly, adLockReadOnly, adCmdText
if objRS.EOF then
    Response.Write("form inviato")
    'inserisco nel db
else
%>
Spiacenti, questo UserID o E-mail sono gi&agrave; presenti nel nostro
database.<br>Ti ricordiamo che &egrave; possibile iscriversi una sola
volta.<br><br>
<%
end if
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn=Nothing
%>
come vedi lascia il compito di ricercare i dati al db, č il suo lavoro :))
-- 
ITHost (your host company)
Technical Manager
C. Paparelli (MCSE,MCSD,MCDBA)
http://www.ithost.ch

Grazie per le vostre risposte ragazzi!
PS: Non ho compreso a pieno cosa ha con i tag e con i ..CSS K.E.L ...ed il
php??? Mahhhh

 2) Impari php;
questa e' una cazzata perche'
1) non risolve il problema rispetto a quanto potrebbe fare con ASP
2) non c'entra una mazza anche considerando che ha postato del codice
ASP
sempre pronti a fare gli sboroni eh
Claudio

sempre pronti a fare gli sboroni eh
Si'. A maggior ragione perche' io ho programmato sia in asp che in php
e ho scelto php. E non sono certo un talebano lunixaro.

 e ho scelto php. E non sono certo un talebano lunixaro.
da come ti eri presentato sembrava proprio il contrario.
E comunque ritengo lecito che oguno scelga l'ambiente di lavoro che
piu' ritiene vicino (per non parlare di eventuali vincoli) e non per
questo e' ammissibile, IMHO, che gli si risponda "impara il php" senza
addurre una qualche giustificazione a supporto
Claudio

 e ho scelto php. E non sono certo un talebano lunixaro.
pero' non hai programmato in con .NET... quando lo fai... se lo farai...
facci sapere cosa preferisci! :)
-- 
Lino Mari [mod - it.economia.e-commerce]
http://www.ebow.it
 - e-business on web!
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004
Gli iperlink sovvertono la gerarchia.

 Non esiste che io scriva robaccia simile.
control + c e control + v esistono da tanto :))
