Problema: non mi salva i dati nel db

metalgemini

Utente Attivo
14 Apr 2004
745
0
0
Qualcuno sa dirmi perchè se metto una pagina con connessione al db in una cartella secondaria non mi salva i dati nel db e mi da errore?
Sono sicuro che il percorso del db è giusto, la connessione al db è ok solo non mi salva i dati nel db!
La pagina si trova in una sottocartella, questo è il codice relativo all'inserimento dei dati nel db:

<%
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&_
Server.MapPath("../mdb-database/login.mdb")

'sono sicuro della directory del db dato che risale di
'una cartella ed entra in un'altra chiamata mdb-database

Dim Rs
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open "login", conn, 1, 3
Rs.AddNew()
Rs("username") = request.form("username")
Rs("password") = request.form("password")
Rs.Update

poi kiudo la connessione al db ecc ecc...ma mi da errore..
se invece la pagina la metto nella cartella principale e cambio la path in "mdb-database/login.mdb" funziona...sapete spiegarmi dove sbaglio?Tante grazie :fonzie:
 
Il comando ServerMapPath si riferisce alla root del web server, ovvero alla cartella principale del web server!
Se metti ../ , il percorso agisce così! sali di una cartella e cerca la cartella mdb-database e cerca il database! Naturalmente è una cosa assurda salire di una cartella dalla root, perché esci fuori dal web server e non funziona più e per giunta, devi tenere i database nella root, quindi non li troverai mai fuori dalla root!

il ../ è una sopracartella, non una sotto cartella, in caso dovresti scrivere così per intere una sottocartella "mdb-database/sottocartella/database.mdb"
e in questo caso funzionerebbe, perhé tutte le sottocartelle prendono attribbuto di lettura e scrittura come la loro principale!

ciao!
 
ancora problemi...;p

Ciao Daviduccio e grazie mille x i tuoi consigli.
Io la pagina con la connessione al db ce l'ho in una sottocartella della root del webserver e il database ce l'ho in un altra sottocartella della root...quindi pensavo di dare "../" per salire nella root e poi entrare in mdb-database per entrare dove ho il db...pensavo di potesse fare cmq mi sta bene anche mettere la pagina con la conn. al db nella root iniziale dato ke funziona tutto.
Ora avrei un altro problemuccio...ho creato un piccolo form di registrazione utenti contenente i campi "usarname" e "password" i quali cliccando sul pulsante "submit" si salvano in una tabella nei campi "usarname" e "password".Il probelma è ke non ho la piu pallida idea di come evitare che 2 o piu utenti si registrino con lo stesso username!!
Grazie 1000 in anticipo :byebye:
 
non devi assolutamente limitarti nell'organizzare i tuoi files!
Come ho già detto, il comando Server.MapPath si rifà alla root del server, quindi lasciando mdb-database/database.mdb, funzionerà in qualsiasi pagina in qualsiasi sottocartella!

Per quanto riguarda il discorso di username e password, puoi cercare in giro script che fanno ricerce su un campo di una tabella, e nel caso in cui esiste lo stesso nominativo lanciare un messaggio di errore!

io non posso metterti lo script, perché uso gli editors per scrivere asp, e mi appoggio tantissimo alla potenza dell'editor stesso, per evitare tanto lungo lavoro!

ciaoo!
 
E' vero sbagliavo in tronco...

Si ho capito il fatto della path...sbagliavo io e anke tanto!
Ok cercherò lo script in giro grazie 1000
:byebye:
 
C'è sempre qualcosa che non va...mannaggia...

Ciao a tutti, posto qui l'ennesimo problema dato ke è praticamente un proseguimento del precedente...praticamente se l'username scelto non si trova gia nel db avviene il salvataggio dei dati...al contrario, invece che stampare a video"Un utente si e' gia registrato con questo username..."mi da l'errore "Impossibile visualizzare la pagina".
Posto la parte interessata del codice con un minimo di commento cosi' si capisce meglio...magari qualcuno mi sa dire dove sbaglio:

'se non trova un username uguale salva i dati nel db
if boh.EOF then
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "login", conn, 3, 3

rs.addnew
rs("username") = request.form("username")
rs("password") = request.form("password")

rs.update

response.write "Registrazione avvenuta con successo"
'fino a qui tutto ok i dati li salva...

'...se invece fa altro...

else

response.write"Un utente si è già registrato con lo stesso nome"
'invece ke stampare a video "un utente si è gia registrato ecc ecc..."
'mi da "Impossibile visualizzare la pagina"
end if

Qualcuno puo aiutarmi?Grazie 1000
 
<%
dim rs, strConn, strSql
set rs = server.createObject("ADODB.recordset")
strConn="DSN=innovatelDB"
strSql=" Select from utenti where user='innovatel' AND codice='innovatel' "
rs.open strSql, strConn
if not(rs.eof) then
response.write " Il record cercato esiste"
else
response.write " Il record cercato <B>non</B> esiste"
end if
rs.close
set rs=nothing
%>

prova ad adattare questo!
 
...mamma mia quant'è difficile

Facciamo cosi', posto il mio codice cosi' puoi vedere dove sbaglio:

<%
'connessione al db...

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&_
Server.MapPath("mdb-database/login.mdb")

'eseguo il controllo nel db...

Dim strSQL, boh
strSQL = "Select * from login where username like '%" &
request.form("username") & "%'"
Set boh = Server.CreateObject("ADODB.Recordset")
boh.Open strSQL, Conn, 3, 3

'se è gia presente...salva i dati...

if boh.EOF then
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "login", conn, 3, 3

rs.addnew
rs("username") = request.form("username")
rs("password") = request.form("password")

rs.update

response.write "Registrazione avvenuta con successo"

'altrimenti...

else

response.write"Un utente si è già registrato con lo stesso nome"

end if


'chiudo recordset e connessione

rs.Close
set rs = Nothing

Conn.Close
set Conn = Nothing

%>
Help me! :dipser:
 
Non mi pare un errore di IIS

Mi da questo tipo di errore ke non mi sembra un errore di IIS:

Impossibile visualizzare la pagina
Impossibile visualizzare la pagina desiderata. Si è verificato un problema.

--------------------------------------------------------------------------------

Provare a eseguire le operazioni seguenti:

Aprire la pagina iniziale www.internetlandcarrara.com, quindi cercare i collegamenti alle informazioni desiderate.
Scegliere il pulsante Aggiorna o riprovare in un secondo momento.

Fare clic sul pulsante Cerca per ricercare informazioni su Internet.
È anche possibile visualizzare un elenco di siti correlati.




HTTP 500 - Errore interno del server
Internet Explorer


Ti posto il link della pagina, prova a registrarti con "pippo" che c'è gia cosi' ti da l'errore:
http://www.internetlandcarrara.com/registrati.html
 
non capisco...

scusa ma non capisco...la connessione va bene dato ke i dati li salva...da i numeri solo quando vede ke un utente si e' registrato con quel username... :ister:
 

Discussioni simili