Errore Necessario Oggetto

  • Creatore Discussione Creatore Discussione marconi
  • Data di inizio Data di inizio

marconi

Utente Attivo
1 Feb 2008
50
0
0
Caro luke...sono sempre io che ti disturbo!!

Senti, come posso fare un redirect, quando mi appare l'errore interno del server :

ADODB.Field error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

So cosa significa, cioè che per effetture l'istruzione, il recordset necessita di un parametro. Ora se questo parametro non ce l'ho, come facccio a fare un redirect ad un'altra pagina in cui io scriverò ...errore...

Aspetto tue notizie e grazie in anticipo!
 
Ciao!

In genere quando ricevi questo messaggio hai commesso qualche errore logico più che sintattico.

Non devi impostare redirect a pagine di errore ma correggerlo: in sostanza è un errore (anche se non sintattico), non un'eccezione.

Posta il codice, gli do un'occhiata!
 
Ecco a te gran Maestro!!!!

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/account.asp" -->
<style type="text/css">
td.loading { text-align: Center; color: #778899; font: Bold 10px Verdana; }
td.barra { background-color: #F9F9F9; border: Solid 1px #CCCCCC; }
#barra { background-color: #00ff33; }
#percentuale { text-align: Center; color: #778899; font: Bold 10px Verdana; }
</style>
<script language="javascript" type="text/javascript">
<!--
var espandi = 0;
function Loading() {
barra.style.width = espandi;
espandi++;
percentuale.innerHTML = Math.round(espandi / 2) + "%";
if (espandi != 200) {
window.setTimeout("Loading(), 10");
}
}
function Go() {
location.href = "homepage.html";
}
window.setTimeout("Go()", 5000);
//-->
</script>
<%
Dim utente__MMColParam1
utente__MMColParam1 = "&"
If (Request.QueryString("mail") <> "") Then
utente__MMColParam1 = Request.QueryString("mail")
End If
%>
<%
Dim utente
Dim utente_numRows

Set utente = Server.CreateObject("ADODB.Recordset")
utente.ActiveConnection = MM_account_STRING
utente.Source = "SELECT * FROM amministratori WHERE mail = '" + Replace(utente__MMColParam1, "'", "''") + "'"
utente.CursorType = 0
utente.CursorLocation = 2
utente.LockType = 1
utente.Open()

utente_numRows = 0
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Inviare e-mail con l' oggetto CDOSYS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<%
Dim nome, cognome, mail, username, password
nome = (utente.Fields.Item("nome").Value)
cognome = (utente.Fields.Item("cognome").Value)
mail = Request.QueryString("mail")
username = (utente.Fields.Item("username").Value)
password = (utente.Fields.Item("password").Value)
%>
<%
if mail = (utente.Fields.Item("mail").Value) Then
%>
<%
Dim iMsg, iConf, Flds


Set iMsg = CreateObject("CDO.Message")

Set iConf = CreateObject("CDO.Configuration")

Set Flds = iConf.Fields
Flds("http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion") = True


mittente= "FantacalcioKrimisa.it"
destinatario = (utente.Fields.Item("mail").Value)
oggetto = "Recupero Chiavi"
messaggio = "<p>Gentile utente "& nome &" "& cognome &" queste sono le sue chiavi d'accesso all'area riservata assegnata dalla redazione di fantacalciokrimisa.it:</p> <p>Username: "& username &"</p><p>Password: "& password &"</p>Custodisca gelosamente queste informazioni e per qualsiasi tipo di assistenza non esiti a contattare la nostra redazione."

With iMsg

'Assegnazione delle configurazioni
Set .Configuration = iConf

.From = mittente
.To = destinatario
.Subject = oggetto
.HTMLBody = messaggio

.Send()

end with

set Flds = Nothing
set iConf = Nothing
set iMsg = Nothing
Else
Response.Redirect "errore.asp"
End if

%>

</head>

<body bgcolor="#FFFFFF" topmargin="15" onLoad="Loading()" scroll="No">
<p align="center"><img src="images/LOGO.JPG" width="300" height="145"></p>
<table width="222" align="center" cellpadding="1" cellspacing="10">
<tr>
<td class="loading">...Sto inviando i dati!</td>
</tr>
<tr>
<td class="barra"><div id="barra"></div></td>
</tr>
<tr>
<td><div id="percentuale"></div></td>
</tr>
</table>

</body>
</html>
<%
utente.Close()
Set utente = Nothing
%>
 
ok

Questa caro luke è una pagina che mi serve per inviare una mail all'utente che ha perso le sue chiavi all'area riservata, ora se dalla pagina madre l'utente inserisce il suo indirizzo mail, è questo si trova nel database, il codice fa il suo lavoro e invia i dati a quella mail, se la inserisce in modo sbagliata, tipo:
Record Mail = [email protected]
Inserisce = [email protected] il codice lo indirizza ad una pagina che dice hai sbagliato ad inserire l'email
Ma se l'email non è presente nel databse allora mi da quell'errore che ti ho mostrato prima e cioè che è necessario quell'oggetto nel databse
Quello che mi devi scrivere e come faccio a fare un bypass di questo errore e rimandarlo ad una pagina dove ci sarà scritto spiacenti l'invio non è stato effettuato in quanto non risulta iscritta la mail inserita.
Spero di essere stato chiaro comunque la riga di codice che mi da l'errore è:
linea 59

A presto!
 
Scusa ma tu vuoi fare il redirect... questo mi fa pensare che lo script funziona in alcuni casi e non funziona in altri... giusto?

Se è cosi allora dobbiamo individuare l'eccezione e gestirla.

Se non è cosi e l'errore te lo da in tutti i casi allora c'è un errore ed è inutile fare la pagina di redirect, dato che il "recupero password" non funzionerà mai! Concordi?

Fammi capire :)
 
Come dici tu

Hai capito bene...lo script funziona in due soli casi, manca il terzo!!
Caso 1:
La mail inserita nella form di invio è uguale a quella presente nel database, lo script la individua e dice all'utente che l'invio è stato effettuato..

Caso 2
La mail inserita nel form è presente nel database, ma non è scritta in maniera corretta (es. [email protected] - [email protected]), lo script fa il redirect dove dico io e invia l'utente alla pagina di errore!!

Caso 3 (il mio problema)
La mail inserita nel form non coincide con tutte quelle memorizzate nel database, cio' significa che è assente, e dunque la pagina di invio mi da errore, perche il recordset è filtrato da una querystring che se è assente causa l'errore...giusto...ora io desidero che in questo caso, lo script mi invii l'utente ad una pagina che dico io, in cui scrivero "tu non sei registrato".

Spero di essere stato chiaro...e di aver esaudito le tue richieste..aspetto tue notizie..grazie
 

Discussioni simili