8 messaggi dal 24 luglio 2006
Buongiorno,
chiedo il vostro aiuto per questo problema:
prendo dei dati da un form e tento di aggiungerli in un db access , in una cartella sotto mdb-database Aruba
L'inserimento ha sempre funzionato, da qualche giorno, il programma funziona qualche volta si , spesso no dando il maledetto errore 500 che non mi dice in quale riga del codice si è verificato. Non solo, su qualche computer funziona su altri no?. Sto perdendo iscritti, che si arrabbieranno anche per il disservizio.
Ringrazio anticipatamente chiunque risponderà a questo messaggio
vi allego il codice della pagina
<html><head>
</head>
<body>
<%Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("/mdb-database/utenti.mdb")
strConn=strConn & ";pwd="
Conn.Open strConn
sql = "SELECT * FROM datiutenti"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3

do while not rs.eof
if request.form("nome")=rs(1) And request.form("cognome")=rs(2) then
response.redirect("registrazionenew.asp?errore=giaiscritto")
end if
if request.form("user")=rs(20) then
response.redirect("registrazionenew.asp?errore=user")
end if
rs.movenext
loop
rs.addnew
rs(1)=request.form("nome")
rs(2)=request.form("cognome")
rs(3)=request.form("residentein")
rs(4)=request.form("indirizzo")
rs(5)=request.form("numerocivico")
rs(6)=request.form("provincia")
rs(7)=request.form("citta")
rs(8)=request.form("cap")
rs(9)=request.form("email")
rs(10)=request.form("cellulare")
rs(11)=request.form("telefonofisso")
rs(12)=request.form("datadinascita")
rs(13)=request.form("natoin")
rs(14)=request.form("sesso")
rs(15)=request.form("titolodistudio")
rs(25)=request.form("professione")
rs(26)=request.form("presentazione")
rs(27)=request.form("hobbies")
rs(28)=request.form("ultime")

rs(20)=request.form("user")
rs(21)=request.form("password")
rs(22)=date()
rs(23)= false
rs(24)=date()
rs(29)= "emoticon.gif"
rs(30)= "A" ' completare la registrazione
rs.update
set rs = Nothing
conn.Close
set conn = Nothing

%>

<table width="64%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#111111" id="AutoNumber1" style="border-collapse: collapse">
<tr>
<td width="100%"> <div align="center"></div></td>
</tr>
<tr>
<td width="100%"><div align="center"><font face="Verdana"><span style="font-size: 8pt; font-weight: 700">Registrazione effettuata con successo </span></font></div></td>
</tr>
<tr>
<td width="100%"><div align="center">
<div align="center">
<% 'response.Redirect("intronew.asp")%>
<a href="intronew.asp?prog=main" class="style1">entra</a></div>
<font face="Verdana">
</font></div></td>
</tr>
</table>
<div align="center"></div>
<div align="center"></div>
</body></html>

Angelo Cesari
635 messaggi dal 06 settembre 2002
Ciao,
secondo me dovresti separare il test dalla registrazione in questo modo:
- fai una copia della pagina per sicurezza;
- Modifica l'originale in questo modo:

<%
errore=""
sql = "SELECT * FROM datiutenti" 

Set Conn=Server.CreateObject("ADODB.Connection") 
strConn="driver={Microsoft Access Driver (*.mdb)}; " 
strConn=strConn & " DBQ=" & Server.MapPath("/mdb-database/utenti.mdb") 
strConn=strConn & ";pwd=" 
Conn.Open strConn 
Set rs = Server.CreateObject("ADODB.Recordset") 
rs.Open sql, conn ,3,3

do while not rs.eof 
if errore="" then
  if request.form("nome")=rs(1) And request.form("cognome")=rs(2) then 
    errore=giaiscritto" 
  end if
  
  if request.form("user")=rs(20) then 
    errore=user"
  end if 
end if   'di if errore=""

rs.movenext 
loop 

rs.Close
set rs=Nothing
Conn.Close
set Conn=Nothing

if errore="" then
  Set Conn=Server.CreateObject("ADODB.Connection") 
  strConn="driver={Microsoft Access Driver (*.mdb)}; " 
  strConn=strConn & " DBQ=" & Server.MapPath("/mdb-database/utenti.mdb") 
  strConn=strConn & ";pwd=" 
  Conn.Open strConn 
  Set rs = Server.CreateObject("ADODB.Recordset") 
  rs.Open sql, conn ,3,3
    rs.AddNew

    rs(1)=request.form("nome") 
    rs(2)=request.form("cognome") 
    rs(3)=request.form("residentein") 
    rs(4)=request.form("indirizzo") 
    rs(5)=request.form("numerocivico") 
    rs(6)=request.form("provincia") 
    rs(7)=request.form("citta") 
    rs(8)=request.form("cap") 
    rs(9)=request.form("email") 
    rs(10)=request.form("cellulare") 
    rs(11)=request.form("telefonofisso") 
    rs(12)=request.form("datadinascita") 
    rs(13)=request.form("natoin") 
    rs(14)=request.form("sesso") 
    rs(15)=request.form("titolodistudio") 
    rs(25)=request.form("professione") 
    rs(26)=request.form("presentazione") 
    rs(27)=request.form("hobbies") 
    rs(28)=request.form("ultime") 
    
    rs(20)=request.form("user") 
    rs(21)=request.form("password") 
    rs(22)=date() 
    rs(23)= false 
    rs(24)=date() 
    rs(29)= "emoticon.gif" 
    rs(30)= "A" ' completare la registrazione 
    
    rs.Update
    rs.MoveNext
  rs.Close
  set rs=Nothing
  Conn.Close
  set Conn=Nothing
else
  response.redirect("registrazionenew.asp?errore="&errore) 
end if   'di if errore=""




Dentro la parte dell'IF naturalmente devi inserire anche l'eventuale parte html, possibilmente dopo la registrazione dei dati.

Spero di essere stato di aiuto

OJD
635 messaggi dal 06 settembre 2002
Dimenticavo;

gira l'indirizzo del sito, provo e ti faccio sapere come intercettare la riga che va in errore.

Ciao

OJD
8 messaggi dal 24 luglio 2006
Ti ringrazio moltissimo per il tuo consiglio che utilizzerò.
Ho verificato la causa dell'errore :
nella struttura della tabella avevo definito per errore alcuni con lunghezza uguale a zero : NO.
perciò quando li lasciavo vuoti si generava l'errore!!!
Comunque se c'è un modo di fare debug veloce on line, ti sarò grato se volessi indicarmelo
il sito è http://www.agenziasg.com/singlepercaso/intronew.asp
Un saluto a tutti
Angelo

Angelo Cesari
635 messaggi dal 06 settembre 2002
Che io sappia non esiste un sistema di debug al volo,
quello che puoi fare è inserire ad un certo punto della pagina, normalmente prima di un punto critico,
Response.Write("OK") 'Visualizza OK
Response.End 'Interrompe l'esecuzione dello script

e poi mandare in esecuzione la pagina con i dati che generano l'errore.
Se viene visualizzato OK, sposti i due Response qualche riga più giù.
Se viene visualizzato l'ERRORE, sposti i due Response qualche riga più su.


In ogni caso è sempre consigliabile fare un doppio controllo dei dati del form
- JavaScript prima dell'invio del form;
- ASP sulla pagina di destinazione del form, dopo aver prelevato tutti i dati;

Seguendo ovviamente quelle che sono le policy della tabella dove vuoi andare a
scrivere (es. Consenti lunghezza 0 = NO testi che la variabile sia <>"") etc. etc.

Ciao.

OJD
8 messaggi dal 24 luglio 2006
Grazie per i tuoi suggerimenti precisi e puntuali
ne farò tesoro
Angelo

Angelo Cesari

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.