-
errore db
Scusate sono di nuovo io avrei un quesito da sottoporvi dato che mi sta facendo impazzire.
Creato un dabase dbutenti contenente cartella persone dovrei connettermi da una pagina asp al db per poi stampare in una cartella tutti gli elementi del db Molti di voi penseranno semplice ma purtroppo per me non è così Di seguito c'è il codice asp e l'errore che mi da
<%@ Language=JavaScript %>
<%
// Per prima cosa diciamo che tipo di linguaggio usiamo
//in questo caso come si può osservare adoperiamo Javascript
// Mi creo la variabile stringa che adoper per passarlo all'oggetto Conn
// che creeremo
Dsn = "Dsn=dbutenti";
// creazione dell'oggetto Conn
Conn =Server.CreateObject("Adodb.Connection");
//Creato l'oggetto passo ad aprire la connessione con il db
Conn.Open(Dsn);
//Aperta tale connessione incomincio a lavorare eseguendo
//comandi sql
sql="Select * from utenti";
//l'istruzione Select è utilizzata per selezionare dei dati da una tabella
//in questo caso dalla tabella iscrizioni, in questo caso dato che non vi
// è un attributo seleziona tutto dalla tabella iscrizioni
//Creazione di un recirdset che chiamo rs utilizzando lo stesso metodo utilizzato precedentemente CrateObject();
rs=Server.CreateObject("Adodb.Recordset");
//Una volta creato l'oggetto passiamo ad aprirlopassandogli due parametri
//Sql ed Conn.
//Sql rappresenta la query creata sql="Select * from utenti";
//Conn è l'oggetto Connection del database aperto
rs.Open(sql,Conn);
//Dopo che si è creato il recordset passo alla trasmissione dei dati
// dall'oggetto Recordset alla pagina web generata dallo script
//mi creo una tabella utlizzando comandi html come per esempio
//<tr><td><pre> </pre></td></tr>
//<pre> </pre>:Inserisce una tabella con testopreformattato
//<td> </td>: Indica una singola cella all'interno di una riga di tabella
//<tr> </tr>: Indica una nuova riga di tabella
out="<table border=1>";
out+="<tr><td><pre>Cognome</pre></td></tr><td><pre>Nome</pre></td><td><pre>
Tel</pre></td><td><pre><td><pre>Email</pre></td><td><pre>Homepage</pre></td></tr>";
//Controllo se la tabella del database ha elementi altrimenti lo segnalo
// utilizzo un ciclo while tale istruzione viene utilizzata per creare un ciclo
//solo se la condizione di partenza risulta essere vera Quindi nel nostro caso
// risulta essere ideale in quanto deve raccogliere dati dal dabase
// La sua sintassi é: while(condizione){ istruzione }
// Nel nostro caso neghiamo la condizione cioè se le righe non sono vuote vai
while(!(EOF)){
out += "<tr><td>";
out+=String(rs.fiekds.item("Cognome")) +"</td><td>";
out+= String(rs.fiekds.item("Nome")) +"</td><td>";
out+= String(rs.fiekds.item("Tel")) +"</td><td>";
out+= String(rs.fiekds.item("Email")) +"</td><td>";
out+= String(rs.fiekds.item("Homepage")) +"</td><td>";
rs.move(1);
} //termine del ciclo while
out+="</table>";
//chiusura della tabella
// chiusuradel recordset
rs.Close();
// ciusura della connessione al database
Conn.Close()
%>
<html><head><title>speriamobene</title></head><body>
<%=out%>
</body>>/html>
Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato.
/speriamo.asp, line 17
Tipo di browser:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Ultima modifica di frabi; 12-08-2006 alle 02.20.07
-
Software Zone Fanatic
Ma hai inserito il tuo DB nei DSN disistema?
-
Scusa visto che non andava ho modificato interamente il codice volevo chiedere se era possibile inserire insieme alla verifica dell'utente anche la nuova iscrizione di un nuovo utente cioè mi spiego se era possibile metterelo nella stessa pagina di codice almeno mi dici dove metterlo grazie
Il codice è questo che precede alla verifica è questo:dopo di che tutti i vari tentativi da me fatti per far registrare un utente sono tutti falliti perchè mi diceva che non si riusciva a connettere col database cosa che funziona se effettuo il semplice riconoscimento inserendo dati che sno all'interno del database
<%
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''
'Questo file serve per verificare i dati immessi dall'utente se questi è già registrato
' o meno,i dati vengono messi a confronto con quelli presenti nel database.
'Se risultano essere s'accede alla pagina dei prodotti altrimenti si ritorna
'di nuovo alla pagina in cui si richiede all'utente d'immettere password e login
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''
if len(session("id_utente")) = 0 then
'Prelevo i dati dal pannello di Login
username = request("txt_username")
password = request("txt_password")
'Effettuo il controllo
strsql = "select id, username, password from tbl_Clienti where username = '" & username & "' and password = '" & password & "'"
set rs = con.execute(strsql)
if not rs.eof then
'il prossimo comando serve per mantenere l'id dell'utente per tutta la
'navigazione del sito
session("id_utente") = rs("id")
else
response.redirect "login.asp"
end if
rs.close
set rs = nothing
end if
%>
connessione.asp
<%
'Tale stringa serve per potersi connettere al database e per lavoraraci
'si noti che per prima cosa viene creato un oggettoe non si fa riferimento
'al database stesso
'Connessione al database
set con = server.createobject("ADODB.Connection")
con.open "DRIVER={Microsoft Access Driver (*.mdb)}BQ=" & server.mappath("db.mdb")
%>
Ultima modifica di rete; 26-05-2006 alle 21.37.50
-
Software Zone Fanatic
Scusa, ma potresti rispiegare tutto in maniera un pò più comprensibile!
-
Scusa per la poco chiarezzaQuello che avevo chiesto e che se potevo inserire nello stesso codice quando vado a verificare se l'utente esiste o meno se posso inserire anche la parte della registrazione,ùMi spiego io ho costruito il codice in tre parti per la verifica uno doe viene richiesto all'utente d'inserire username,password
<HTML>
<HEAD>
<TITLE>Autenticazione utente tramite password</TITLE>
</HEAD>
<BODY BGCOLOR=#BBBBFF>
<BR><BR><BR><BR><BR>
<FORM ACTION="login.asp" METHOD="POST">
<TABLE ALIGN=CENTER BORDER=0 BGCOLOR=#000000>
<TR BGCOLOR=#EEEEEE>
<TD WIDTH=150 ALIGN=CENTER>NOME UTENTE</td>
<TD>
<INPUT TYPE=TEXT NAME="Username" SIZE=20>
</td>
</TR>
<TR BGCOLOR=#EEEEEE>
<TD WIDTH=150 ALIGN=CENTER>PASSWORD</td>
<TD>
<INPUT TYPE=PASSWORD NAME="password" SIZE=20>
</TD>
</TR>
<TR BGCOLOR=#EEEEEE>
<TD HEIGHT=30 COLSPAN=2 ALIGN=CENTER>
<INPUT TYPE=SUBMIT NAME="show" VALUE="LOGIN">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
<%
'Tale stringa serve per potersi connettere al database e per lavoraraci
'si noti che per prima cosa viene creato un oggettoe non si fa riferimento
'al database stesso
'Connessione al database
set con = server.createobject("ADODB.Connection")
con.open "DRIVER={Microsoft Access Driver (*.mdb)}BQ=" & server.mappath("db.mdb")
%>
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''
'Questo file serve per verificare i dati immessi dall'utente se questi è già registrato
' o meno,i dati vengono messi a confronto con quelli presenti nel database.
'Se risultano essere s'accede alla pagina dei prodotti altrimenti si ritorna
'di nuovo alla pagina in cui si richiede all'utente d'immettere password e login
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''
if len(session("id_utente")) = 0 then
'Prelevo i dati dal pannello di Login
username = request("txt_username")
password = request("txt_password")
'Effettuo il controllo
strsql = "select id, username, password from tbl_Clienti where username = '" & username & "' and password = '" & password & "'"
set rs = con.execute(strsql)
if not rs.eof then
'il prossimo comando serve per mantenere l'id dell'utente per tutta la
'navigazione del sito
session("id_utente") = rs("id")
else
response.redirect "login.asp"
end if
rs.close
set rs = nothing
end if
%>
e poi infine c'è il file carrello.asp
Fin quanto devo confrontare i dati immessi dall'utente con quelli del db va tutto bene ma quando devo inserire nuovo utente mi da l'errore che non si può connettere al db
<html>
<head>
<title> REGISTRAZIONE</title>
</head>
<body>
<form>
<h3 style="text-align:center"> Pagina personale</h3>
Nome<br>
<input type="text"><BR>
Cognome<br>
<input type="text"><br>
Email<br>
<input type="text"><br>
citta<br>
<input type="text"><br>
<p>
<input type="radio" Name="sesso" value ="maschio"> Maschio<br>
<input type="radio" Name="sesso" value ="femmina"> Femmina<br>
<h2> SPORT PRATICATI </H2> <br>
Nuoto<INPUT NAME="n" TYPE="CHECKBOX"CHECKED>
Calcio<input name="c" type="checkbox"checked>
Tennis<input name="T" type="checkbox"checked> <br>
<h3> Provincia di residenza </h3>
<Select Name ="utenti" Size=4MULTIPLE>
<option value="Nome_1">Napoli
<option value="Nome_1">Roma
<option value="Nome_1">Milano
<option value="Nome_1">Palermo
</select>
<input type="submit" value="Invia">
<input type="submit" value="Reset"><BR>
</form>
</body>
</html>
<% // Con questo file vengono ripresi i valori immessi dall'utente nel form
//per poterli inserire nel db%>
< script LANGUAGE = "JScript" >
<%
// Ricevo i dati dal form
var nome = Request.Form("nome");
var cognome = Request.Form("cognome");
// Istanzio l'oggetto Connection
var ADOConn = new ActiveXObject("ADODB.Connection");
// Creo la STRINGA DI CONNESSIONE
var strConn = "";
strConn += "driver={Microsoft Access Driver (*db.mdb)};";
strConn += "dbq=" + Server.MapPath("tbl_Clienti.mdb");
// Apro la connessione al database selezionato
ADOConn.Open(strConn);
// Istanzio Recordset
var RecSet = new ActiveXObject("ADODB.Recordset");
// Collego Recordset alla connessione aperta
RecSet.Open("nominativi",ADOConn,3,3);
// Formulo il nuovo record
RecSet.AddNew();
RecSet("nome") = nome;
RecSet("cognome") = cognome;
RecSet("e_mail") = e_mail;
// Aggiorno la tabella
RecSet.Update();
// Chiudo Recordset
RecSet.Close();
// Chiudo la connessione
ADOConn.Close();
%>
<html>
<head><title>Inserimento effettuato</title></head>
<body>
Inserimento effettuato!
</body>
</html>
</script>
Quello che vorrei sapere e se posso fondere insieme due codici se si come e dove ho sbagliato e perchè
GRAZIE
-
in poche parole quello che potevo sapere e che se all'interno del codice del file verifica posso mettere anche un pezzo di codice tipo questo:
if Password =trovato
entra
endif
if password=not trovato
registrati
else
ciao
se posso inserire questo tipo di codice come posso fare mi puoi dare una mano sul codice per registrare utente
grazie
ciao
Permessi di Scrittura
- Tu non puoi inviare nuove discussioni
- Tu non puoi inviare risposte
- Tu non puoi inviare allegati
- Tu non puoi modificare i tuoi messaggi
-
Regole del Forum
Segnalibri