AGREGAR.ASP

Desde este archivo, se dan de alta las nuevas notas, se comprueba que los datos sean correctos, y se actualiza la p�gina donde aparecen las Notas.
Puede ser un poco complicadillo al inicio, pero si te fijas un poco, veras que es bastante sencillo.

<%
'Activa el almacenamiento en b�fer. Esta instrucci�n debe aparecer antes de la etiqueta <HTML>.
Response.Buffer = True
%>

<HTML>

<BODY TEXT="#000000" BGCOLOR="#ffffff">
<FONT FACE="Arial" size=2>
<center><H3>AGREGAR UNA NUEVA NOTA AL TABL�N</h3></center>
<BR><P>

<TABLE BGCOLOR="#FFffc8" BORDER=0 CELLSPACING=0 WIDTH=100%>
    <TR><td width=10> </td>
    <TD><FONT FACE="Arial" size=2><BR>S�lo se permite la incorporaci�n de notas relacionadas con la programaci�n e Internet.<P>Todas las Notas, aparecer�n en el Bloc de Notas durante un per�odo de dos meses. Pasados los dos meses, ser�n eliminadas autom�ticamente.<BR> <TD>
    <td width=10> </td></TR>
</TABLE>
<%
if Request.QueryString="" then
    'No se han recibido ning�n dato.
    'Se muestra la pantalla para entrada de datos.

    call MostrarFormularioEntrada
else
    'se ha introducido una nueva nota.
    if Request.QueryString("caption")="NUEVO" then
        dim VarArray
        'VarArray, contiene una serie de tacos, que servir�n para comprobar que no se haya introducido ninguno de ellos en la nota.
        'Estos son los tacos que se me han ocurrido, por supuesto se puede incrementar...
        VarArray=array(" PUTA"," MIERDA"," P U T A"," GILIPOLLAS"," CABRON"," DESGRACIADO"," INUTIL", _
        " BURRO"," ESTUPIDO"," DESGRACIADO"," DESGRACIADA"," MAMON"," MARICON"," MARICA"," RAMERA", _
        " BOYERA"," TONTO"," INBECIL"," IMBECIL"," PROSTITUTA"," CAPULLO"," CAPULLA")

        'comprueba que la direcci�n de correo introducida sea correcta, que haya un nombre, titulo y explicaci�n para poder guardar la nota en la base de datos.
        if InStr(1,Request.QueryString("E-mail"),"@",vbTextCompare)>0 and instr(1,Request.QueryString("E-mail")," ",vbTextCompare)=0 and len(Request.querystring("Nombre"))>0 and len(Request.querystring("Titulo"))>0 and len(Request.querystring("Explicacion"))>0 then

            'abre la base de datos
            set objBase=server.CreateObject("ADODB.Connection")
            set objtabla=server.CreateObject("ADODB.recordset")
            objBase.Open "tablon"
            'Abre la tabla 'Tablon', ordenada por la fecha y hora descendente
            set objtabla=objBase.Execute("SELECT * FROM Tablon ORDER BY Fecha DESC,Hora DESC")

            'eliminamos los ap�strofes. Esto lo hago, porque si en una consulta SQL detecta un ap�strofe ' en medio de una cadena, genera un error.
            De seguro que hay una manera de utilizar consultas SQL sin que produzca un error, pero todav�a no he encontrado como...

            VarNombre=Request.QueryString("nombre")
            VarNombre=replace(VarNombre,"'","�")
            VarTitulo=Request.QueryString("Titulo")
            VarTitulo=replace(VarTitulo,"'","�")

            xx=Request.QueryString("Explicacion")
            'Reemplazamos el car�cter de salto de l�nea, por <br>, para que cuando muestre la nota en formato HTML realice el salto de l�nea.
            xx=replace(xx,chr(13),"<br>")
            xx=replace(xx,"'","�")

            'Aqu� comprobamos si se ha introducido alg�n taco de los que hay en el array VarArray
            taco=false
            for each x in vararray
                if instr(1,varnombre,x,1) then Taco=true
                if instr(1,vartitulo,x,1) then Taco=true
                if instr(1,xx,x,1) then Taco=true
            next

            'Determinamos si estamos al final del fichero o no. Esto lo hacemos para comprobar que un usuario no pulsa dos veces en el bot�n 'Enviar Datos' del formulario de entrada. Si no estamos al final del fichero, haremos la comprobaci�n, y si estamos al final del fichero (no hay ning�n registro) simplemente gravaremos la nota en la base de datos.
            if not objtabla.EOF then
                if objtabla.Fields("Nombre")=Request.QueryString("Nombre") and objtabla.Fields("correo")=Request.QueryString("E-mail") and objtabla.Fields("titulo")=Request.QueryString("titulo") then
                    'ya se ha introducido hace un momento, por lo que no gravamos los datos en la base de datos.
                else
                    'Si los datos enviados son correctos, si no es una nota repetida, y si no hay ning�n taco, guardamos la nota en la base de datos.
                    if taco=false then
                        sql="INSERT INTO Tablon (fecha,hora,nombre,correo,titulo,texto) "
                        sql=sql & "VALUES ('" & date & "','" & time & "','" & varNombre & "','" & Request.QueryString("E-mail")
                        sql=sql & "','" & VarTitulo & "','" & xx & "')"
                        set objtabla=objBase.execute(sql)
                    end if
                end if
            else 'si esta al final del fichero...
                    'Si los datos enviados son correctos y si no hay ning�n taco, guardamos la nota en la base de datos.
                if taco=false then
                    sql="INSERT INTO Tablon (fecha,hora,nombre,correo,titulo,texto) "
                    sql=sql & "VALUES ('" & date & "','" & time & "','" & varNombre & "','" & Request.QueryString("E-mail")
                    sql=sql & "','" & VarTitulo & "','" & xx & "')"
                    set objtabla=objBase.execute(sql)
                end if
            end if
            'Cerramos la base de datos
            objbase.close
            'Abrimos la pagina inicio.asp
            'Si en el inicio de esta p�gina no hubi�ramos colocado Response.buffer=true, ahora nos dar�a un error, ya que hay c�digo html enviado. De esta manera, todav�a no av�a nada enviado, ya que estaba en el buffer, por lo que se mostrara la p�gina inicio.asp
            Response.Redirect "inicio.asp"
        else Si alguno de los datos enviados esta err�neo o falta...
            if len(Request.QueryString("E-mail"))=0 or len(Request.querystring("Nombre"))=0 or len(Request.querystring("titulo"))=0 or len(Request.querystring("explicacion"))=0 then
                Response.Write("<font color='#ff0000'>Todos los campos son obligatorios.</font>")
            else
                if InStr(1,Request.QueryString("E-mail"),"@",vbTextCompare)=0 or instr(1,Request.QueryString("E-mail")," ",vbTextCompare)>0 then
                    Response.Write("<font color='#ff0000'>La direccion de correo no es correcta.</font>")
                end if
            end if
            'Muestra el formulario de entrada con los datos err�neos ya enviados
            call mostrarformularioentradadatos
        end if
    end if
end if
%>

<!--C�digo en HTML para volver a la pagina inicial del Tabl�n de Notas o a la p�gina inicial de La Web del Programador-->
<P><center>
<TABLE BORDER=0 CELLSPACING=0 WIDTH=70>
    <TR><TD WIDTH=50% ALIGN=CENTER valign=top><FONT FACE="Arial" size=2><A HREF="inicio.asp"><IMG SRC="../anterior.gif" WIDTH=40 HEIGHT=32 BORDER=0 ALT="Tabl�n de Notas">
    <TD WIDTH=50% ALIGN=CENTER><FONT FACE="Arial" size=2><A HREF="../inicio.html" target="principal"><IMG SRC="../inicio.gif" WIDTH=40 HEIGHT=32 BORDER=0 ALT="P�gina Inicial"></A><BR><A HREF="../inicio.html" target="principal">P�gina Inicial</A></TD></TR>
</TABLE>
</body>
</HTML>

<%
'Muestra el formulario de entrada
'Date cuenta, que estos formularios env�an la informaci�n a este mismo archivo .asp.
private sub MostrarFormularioEntrada
%>

    <center>
    <FORM ACTION="agregar.asp" METHOD=GET id=form2 name=form2>
        <INPUT TYPE=HIDDEN NAME="caption" VALUE="NUEVO">
        <FONT FACE="Arial" size=2>
        <TABLE border=0 width=400>
            <tr><td align=right><FONT FACE="Arial" size=2>Nombre : <INPUT TYPE="text" NAME="Nombre" SIZE=30 MAXLENGTH=30></td></tr>
            <tr><td align=right><FONT FACE="Arial" size=2>Direcci�n de E-mail : <INPUT TYPE="text" NAME="E-mail" SIZE=30 MAXLENGTH=50></td></tr>
            <tr><td align=right><FONT FACE="Arial" size=2>T�tulo : <INPUT TYPE="text" NAME="Titulo" SIZE=30 MAXLENGTH=50></td></tr>
        </table>
        <P>Texto para la Nota
        <br><TEXTAREA NAME="Explicacion" ROWS=6 COLS=50></TEXTAREA>
        <P>
        <BR><P><INPUT TYPE="submit" VALUE="Enviar Datos" id=submit2 name=submit2><INPUT TYPE="reset" VALUE="Borrar Datos" id=reset2 name=reset2>
        <BR><P>
    </FORM>
    <P>Pulse una sola vez hasta que aparezca nuevamente el Bloc de Notas
<%
end sub
%>

<%
'Muestra el formulario de entrada con los datos enviados con anterioridad. Este formulario solo se muestra si alg�n dato ha sido err�neo.
private sub MostrarFormularioEntradaDatos
%>

    <center>
    <FORM ACTION="agregar.asp" METHOD=GET id=form1 name=form1>
        <INPUT TYPE=HIDDEN NAME="caption" VALUE="NUEVO">
        <FONT FACE="Arial" size=2>
        <TABLE border=0 width=400>
            <!--Mostramos nuevamente el formulario de entrada de datos, pero como valor le damos los datos ya introducidos-->
            <tr><td align=right><FONT FACE="Arial" size=2>Nombre : <INPUT TYPE="text" NAME="Nombre" SIZE=30 MAXLENGTH=30 value="<%=Request.QueryString("nombre")%>">
            <tr><td align=right><FONT FACE="Arial" size=2>Direcci�n de E-mail : <INPUT TYPE="text" NAME="E-mail" SIZE=30 MAXLENGTH=50 value="<%=Request.QueryString("e-mail")%>">
            <tr><td align=right><FONT FACE="Arial" size=2>T�tulo : <INPUT TYPE="text" NAME="Titulo" SIZE=30 MAXLENGTH=50 value="<%=Request.QueryString("Titulo")%>">
        </table>
        <P>Texto para la Nota
        <br><TEXTAREA NAME="Explicacion" ROWS=6 COLS=50><%=Request.QueryString("Explicacion")%></TEXTAREA>
        <P>
        <BR><P><INPUT TYPE="submit" VALUE="Enviar Datos" id=submit1 name=submit1><INPUT TYPE="reset" VALUE="Borrar Datos" id=reset1 name=reset1>
        <BR><P>
    </FORM>
    <P>Pulse una sola vez hasta que aparezca nuevamente el Bloc de Notas
<%
end sub
%>

 

Anterior Siguiente