Foros del Web » Programando para Internet » ASP Clásico »

Aumenta de 3 en 3 cuando debe ser 1

Estas en el tema de Aumenta de 3 en 3 cuando debe ser 1 en el foro de ASP Clásico en Foros del Web. Hola, tengo este codigo para la gestion de descargas de algunos archivos solo que en lugar de sumar 1 al valor aumenta 3, ademas tengo ...
  #1 (permalink)  
Antiguo 22/10/2007, 19:49
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses
Puntos: 16
Aumenta de 3 en 3 cuando debe ser 1

Hola, tengo este codigo para la gestion de descargas de algunos archivos solo que en lugar de sumar 1 al valor aumenta 3, ademas tengo una tabla donde se almacenan los datos de la descarga y tambien me genera 3 registros iguales en cada descarga, el codigo es:

Código:
<%if session("user")="" then response.redirect "registro.asp"%>
<!--#include file="conexion.inc" -->

<%
id=request("id")
nivel=session("nivel")
de=request("de")
if de="" then vienen= request.ServerVariables("HTTP_REFERER") else vienen=de

Set RSd = Server.CreateObject("ADODB.Recordset")

rs.CursorType = 2
rs.LockType = 3
rs.CursorLocation = 3 
rsd.CursorType = 2
rsd.LockType = 3
rsd.CursorLocation = 3 

SQL = "SELECT * FROM archivos WHERE id = "& id
RS.Open sql, conexion

if not rs.eof and nivel=>rs("nivel") then

archivo = rs("url")
nombre = replace(archivo,"archivos/","")
nombre = replace(nombre," ","_")

    Response.ContentType = "application/x-unknown" ' arbitrary 
    FPath = server.mappath (archivo)
    Response.AddHeader "Content-Disposition","attachment; filename=" & nombre

    Set adoStream = CreateObject("ADODB.Stream") 
    adoStream.Open() 
    adoStream.Type = 1 
    adoStream.LoadFromFile(FPath) 
    Response.BinaryWrite adoStream.Read() 
    adoStream.Close 
    Set adoStream = Nothing 


SQLd="Select * From descargas"
RSd.Open sqld,conexion

    rsd.addnew
    rsd("archivo") = rs("id")
    rsd("usuario") = session("user")
    rsd("fecha") = now()
    rsd("ip") = Request.ServerVariables("REMOTE_HOST")
    rsd.update

rsd.close

descargas=rs("descargas")
rs("descargas")=descargas+1
rs.update
rs.close
Response.End

response.redirect "descargas.asp" 'vienen

else
response.redirect "index.asp?e=4&p="&prod&"&prod="&producto

end if
%>
El RSD es el encargado de la tabla de descargas y el RS de la tabla del archivo...

Ademas no se redirecciona a la pagina descargas.asp cuando se hace la descarga...

Tambien quisiera saber si es posible, de manera simple generar este hit cuando realmente se genere la descarga por que si la cancelo de cualquier manera la cuenta como hit, aunque esto no me apuraria mucho

espero su ayuda...gracias de antemano
  #2 (permalink)  
Antiguo 22/10/2007, 20:43
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: Aumenta de 3 en 3 cuando debe ser 1

Hola sjam7, veo que hacés usao de un recordset llamado rs que nunca instanciaste... ¿lo instanciás en el include?

Otra pregunta... ¿tenés en la página algún script de terceros que pueda estar influyendo? (me refiero a addsense o algún otro)

Saludos
__________________
...___...
  #3 (permalink)  
Antiguo 23/10/2007, 05:44
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 23 años, 2 meses
Puntos: 8
Re: Aumenta de 3 en 3 cuando debe ser 1

tienes Response.End antes de response.redirect "descargas.asp", ¿influirá en el tema de que no redirecciona?
__________________
Kelpie
  #4 (permalink)  
Antiguo 23/10/2007, 07:10
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Aumenta de 3 en 3 cuando debe ser 1

Pues efectivamente, ese código necesita ser depurado, aunado a los comentarios de Al Zuwaga y Kelpie me extraña esto otro:

if not rs.eof and nivel=>rs("nivel") then

Nivel es en realidad la variable de session "Nivel", pero lo comparas contra el campo "Nivel" (no se por que usas => en lugar del clásico >=, de hecho ni sabía que se podía usar de esa forma) y me pregunto dónde actualizas esa variable de sesión. Además sería bueno checar si no hay una especie de ciclo entre los redirects (con index.asp, ya que como Kelpie mencionó jamás se realiza el de descargas.asp)
  #5 (permalink)  
Antiguo 25/10/2007, 17:12
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses
Puntos: 16
Re: Aumenta de 3 en 3 cuando debe ser 1

Cita:
Iniciado por Al Zuwaga Ver Mensaje
Hola sjam7, veo que hacés usao de un recordset llamado rs que nunca instanciaste... ¿lo instanciás en el include?

Otra pregunta... ¿tenés en la página algún script de terceros que pueda estar influyendo? (me refiero a addsense o algún otro)

Saludos
Si, lo instancio en el include, en cuanto a la conexion de ese RS no hay problema, y no, no tengo scripts de terceros

Cita:
Iniciado por Kelpie Ver Mensaje
tienes Response.End antes de response.redirect "descargas.asp", ¿influirá en el tema de que no redirecciona?
Cambie el .End por .Flush por que si lo quito no me descarga el archivo aunque si se redirecciona, si dejo el End o el Flush no se redirecciona

Cita:
Iniciado por Myakire Ver Mensaje
Pues efectivamente, ese código necesita ser depurado, aunado a los comentarios de Al Zuwaga y Kelpie me extraña esto otro:

if not rs.eof and nivel=>rs("nivel") then

Nivel es en realidad la variable de session "Nivel", pero lo comparas contra el campo "Nivel" (no se por que usas => en lugar del clásico >=, de hecho ni sabía que se podía usar de esa forma) y me pregunto dónde actualizas esa variable de sesión. Además sería bueno checar si no hay una especie de ciclo entre los redirects (con index.asp, ya que como Kelpie mencionó jamás se realiza el de descargas.asp)
Ya cambie lo del =>

La variable de sesion la traigo desde que ingresa el usuario y es para comprobar en algunas otras paginas y en el RS("nivel") se comprueba contra un valor en la bd
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:51.