Hola Amigos tengo un foro funcionando (basado en un codigo que bajé de aspfacil y que he personificado)
Desde siempre he notado que en determinado momentos es imposible postear nuevos mensajes. Y en otros (la mayoría del tiempo) el foro funciona bien.
He detectado que hay un problema con los formatos de las fechas pero no logro saber cual es el problema. Si alguien puede ayudarme estaré infinitamente agradecido.
El error es el siguiente: Microsoft JET Database Engine error '80040e07'
Syntax error in date in query expression 'FechaHora=#15/08/2006 07:40:36 p.m.#'.
/nuevomsg.asp, line 140
Aquí abajo está el código 1<%@LANGUAGE="VBSCRIPT"%>
<%Option Explicit%>
<!--#include file="comunes.asp"-->
<!-- #Include File="ValidarEmail.asp"-->
<%
' NUEVOMSG.ASP
' Preprocesa el mensaje y si es correcto lo envía a la base de datos
'================================================= ===================================
10Sub TotalForo(idforo, fecha)
' Incrementa en 1 el total de mensajes del foro y añade la fecha del ultimo
Dim rs, SQL
Dim total
Registro rs
SQL="SELECT * FROM Foros WHERE IdForo="&idforo&";"
rs.Open SQL, oConn,3,3
20total=CInt(rs.Fields("Total"))
total=total+1
rs.Fields("Total")=total
rs.Fields("Ultimo")=fecha
rs.Update
LimpiarRS rs
30End Sub
'================================================= ===================================
Sub ProcesarCuerpo (str)
' preprocesa cuerpo del mensaje
if str="" then
ok=False
Response.Write("<b>El cuerpo del mensaje no puede ser vacío</br>")
end if
40' Arreglamos saltos de líneas
Cuerpo=Replace(cuerpo,vbCrLf,"<BR>")
'preprocesa los smilies
Cuerpo=Replace(cuerpo, ":)", "<img src=images/smile.gif border=0>")
Cuerpo=Replace(cuerpo, ":(", "<img src=images/sad.gif border=0>")
Cuerpo=Replace(cuerpo, ":[", "<img src=images/angry.gif border=0>")
Cuerpo=Replace(cuerpo, ":D", "<img src=images/biggrin.gif border=0>")
Cuerpo=Replace(cuerpo, ":X", "<img src=images/kiss.gif border=0>")
Cuerpo=Replace(cuerpo, ":`(", "<img src=images/cry.gif border=0>")
Cuerpo=Replace(cuerpo, ":O", "<img src=images/omg.gif border=0>")
50Cuerpo=Replace(cuerpo, ":P", "<img src=images/tongue.gif border=0>")
Cuerpo=Replace(cuerpo, ";)", "<img src=images/wink.gif border=0>")
Cuerpo=Replace(cuerpo, "[?]", "<img src=images/icon_smile_question.gif border=0>")
End Sub
'================================================= ===================================
Sub ProcesarNombre (nombre)
Dim Ip
' preprocesa el autor
60nombre=RTrim(LTrim(nombre))
if nombre="" then
ok=False
Response.Write("<b>El nombre no puede estar vacío</b><br>")
end if
Ip=Request.Form("Ip")
If Ip="" then
ok=False
Response.Write("<b>La dirección IP no puede estar vacía</b><br>")
end If
70End Sub
'================================================= ===================================
Sub ProcesarEmail (email)
if Validar_EMail(Request.form("Email")) = 0 then response.redirect "error5.htm"
if Validar_EMail(Request.form("Email")) = 1 then response.redirect "error5.htm"
if Validar_EMail(Request.form("Email")) = 2 then
80else
email=" "
end if
End Sub 'Procesar email
'================================================= ===================================
Sub FechadeHoy (f)
90Dim hoy
hoy=Now()
f=hoy
End Sub 'FechadeHoy
'================================================= ===================================
100Dim oConn, rs, SQL
Dim idmensaje
Dim idforo, idcabecera, idpadre, autor, email, tema, cuerpo, f, Ip
' indica si debo o no insertar en bd
Dim ok
ok=True
110
call FechadeHoy (f)
idforo=CInt(Request.Form("IdForo"))
idcabecera=CInt(Request.Form("IdCabecera"))
idpadre=CInt(Request.Form("IdPadre"))
autor=CStr(Request.Form("Autor"))
ProcesarNombre autor
email=CStr(Request.Form("Email"))
ProcesarEmail email
tema=RTrim(LTrim(CStr(Request.Form("Tema"))))
120if Len(tema)=0 then
ok=False
end if
if Len(tema)>100 then
tema=Left(tema, 100)
end if
Ip=Request.Form("Ip")
cuerpo=Request.Form("Cuerpo")
ProcesarCuerpo cuerpo
130
if ok then
'añado mensaje a bd
Conectar
SQL="SELECT * FROM Mensajes WHERE FechaHora=#"&f&"#;"
Registro rs
140rs.Open SQL, oConn, 2, 2
rs.AddNew
rs.Fields("IdForo")=idforo
rs.Fields("IdCabecera")=idcabecera
rs.Fields("IdPadre")=idpadre
rs.Fields("Autor")=autor
rs.Fields("Email")=email
rs.Fields("FechaHora")=f
150rs.Fields("Tema")=tema
rs.Fields("Cuerpo")=cuerpo
rs.Fields("Ip")=Ip
rs.Update
' Refresco el recordset
rs.Requery
160'Por si acaso
rs.MoveFirst
idcabecera=rs.Fields("IdCabecera")
idmensaje=rs.Fields("IdMensaje")
if idcabecera=0 then
' Abre una nueva discusión
rs.Fields("IdCabecera")=idmensaje
end if
rs.Update
170
LimpiarRS rs
'================================================= ===================================
'Notificar por email
Dim Correo, Correo1,Correo2,emailaddresses, objMail
' Enviamos notificaciones de las respuestas a las preguntas hechas en el foro
' idpadre = 0 -> es el primer mensaje en Id Cabecera -> no hay a quien notificar respuestas
If idpadre <> 0 Then
'Seleccionamos de la tabla solo los emails
180Conectar
SQL="SELECT DISTINCT Email FROM Mensajes WHERE IdCabecera="&IdCabecera&" ;"
Registro rs
rs.Open SQL, oConn, 2, 2
' Construimos la variable con todas las direcciones
DO UNTIL rs.eof
Correo=rs.Fields("Email")
Correo1=Correo1 & "; " & Correo
Correo2=Correo1
rs.movenext
190LOOP
' Remove the first semi-colon from the string
emailaddresses=lcase(Mid(Correo2,2))
' Create components
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.BodyFormat = 0
objMail.MailFormat = 0
objMail.From = "Foros Vistamedica.com<
[email protected]>"
objMail.Bcc = emailaddresses
200objMail.Value("Reply-To") = "
[email protected]"
objMail.Subject = "Nuevo mensaje en los Foros Vistamedica!"
objMail.Body = "Estimado/a:<BR>Un nuevo mensaje ha sido publicado respecto al asunto: <B><I>" &tema& "</I></B> en el Foro Vistamedica.com " & _
". <BR>Tu puedes encontrar el foro en <a href=""vinculo</a> <BR>Para " & _
"tu conveniencia, la dirección del nuevo mensaje es " & _
"<a href=""vinculo" &idmensaje& """>vinculo?id=" &idmensaje& "</a>." & _
"<BR>Atentamente,<BR><BR><B><I>El Equipo Vistamedica</I></B>"
objMail.Send
Set objMail = Nothing
End If
210
'================================================= ===================================
'Modifico el foro
Totalforo idforo, f
LimpiarConexion
Response.Write("<H1>¡Gracias por tu mensaje!</H1>")
Response.Write("<img border=0 src=images/ip.gif> Tu dirección IP fue guardada con éxito!")
220Response.Write("<BR>")
Response.Write("<A HREF=""foros.asp?f="&idforo&"""><img border=0 src=../images/icon_go_left.gif width=15 height=15>Volver al foro</A>")
Response.Write("<BR>")
Response.Write("<A HREF=""mostrarmsg.asp?id="&idmensaje&"""><img border=0 src=../images/icon_profile.gif width=15 height=15>Ver tu mensaje</A>")
Response.Write("<BR>")
If idcabecera <>0 then
Response.Write("<A HREF=""mostrarmsg.asp?id="&idcabecera&"""><img border=0 src=../escribir.gif width=15 height=15>Volver al mensaje inicial</A>")
230end if
else
Response.Write("<B>Error al procesar el mensaje, Verifica que la dirección de email sea válida</BR></B>")
end if
%>