Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASP Clásico (http://www.forosdelweb.com/f15/)
-   -   FAQ's del foro de ASP (http://www.forosdelweb.com/f15/faqs-del-foro-asp-89836/)

choco_cu 15/08/2004 12:36

hola para todos los que le interesa la variante esa que dice urjose de otros sistema de usuario y contraseña con session y que el dice debajo que lo malo es que est'a en ingles aqui les envio la primera parte traducida al español.


A menudo como Desarrollador WEB te encuentras en situaciones donde quieres proteger areas especificas de tu sitio de ser vista por todos. Un buena manera de hacerlo es agregando proteccion por password a tu Sitio. Lo primero que debes hacer es crear una página de logeo, la cual sería algo como esto:


<% Sub ShowLogin %>
<form name=form1 action=login.asp method=post>
User Name : <input type=text name=username>
Password : <input type=password name=userpwd>
<input type=hidden name=login value=true>
<input type=submit value="Login">
</form>
<% End Sub %>

El código anterior simplemente crea un formulario. La segunda caja de texto tiene el tipo password Type=Password, lo que hace que lo que el usuario que haya escrito aparesca como estrellas (como estas ******). También anotar que si quieres que la acción de l formulario sea la misma página. Entonces no necesitamos una segunda página para manipular el chequeo del password. Hablar'e del elemento Hidden en el formulario después. Tambié ver'a por que pusimos el formulario dentro de una sub rutina m'as adelante.

Antes de introducir el codigo para chequear y ver si el usuario y el password son correctos necesitamos agregar algo de codigo en login.asp para chequear y ver si el formulario fue enviado.

Response.Expires = -1000 'Makes the browser not cache this page
Response.Buffer = True 'Buffers the content so our Response.Redirect will work
Session("UserLoggedIn") = ""

If Request.Form("login") = "true" Then
CheckLogin
Else
ShowLogin
End If

Este codigo ira a revisar si en login.asp el formulario fue enviado. Si lo fue entonces podemos chequear el logeo, si no entonces mostramos el formulario de logeo.

Luego agregaremos el codigo subrutina del chequeologeo para chequear y ver si el usuario y el password son correctos

Sub CheckLogin
If LCase(Request.Form("username")) = "guest" And LCase(Request.Form("userpwd")) = "guest" Then
Session("UserLoggedIn") = "true"
Response.Redirect "protectedpage.asp"
Else
Response.Write("Login Failed.<br><br>")
ShowLogin
End If
End Sub

el codigo anterior chequeara para asegurarse de que se ha entrado el login correctamente. para configurar la Variable de Sesion "UserLoggeddln" igual a "" estamos basicamente desconectando al usuario. Lo unico que nos falta por hacer es escribir el codigo a poner en la cabecera de la pagina protegida para chequear y ver si el usuario esta logeado.

Response.Expires = -1000 'Hace que el explorador no cree cache de esta pagina
Response.Buffer = True 'activa el buffer para el contenido asi nuestro Response.Redirect trabajara

If Session("UserLoggedIn") <> "true" Then
Response.Redirect("login.asp")
End If

Ejemplo de lo anteriormente expuesto.

codigo para login.asp[Top]

<%
Response.Expires = -1000 'Makes the browser not cache this page
Response.Buffer = True 'Buffers the content so our Response.Redirect will work
Session("UserLoggedIn") = ""
If Request.Form("login") = "true" Then
CheckLogin
Else
ShowLogin
End If


Sub ShowLogin
%>
<form name=form1 action=login.asp method=post>
User Name : <input type=text name=username><br>
Password : <input type=password name=userpwd><br>
<input type=hidden name=login value=true>
<input type=submit value="Login">
</form>
<%
End Sub

Sub CheckLogin
If LCase(Request.Form("username")) = "guest" And LCase(Request.Form("userpwd")) = "guest" Then
Session("UserLoggedIn") = "true"
Response.Redirect "protectedpage.asp"
Else
Response.Write("Login Failed.<br><br>")
ShowLogin
End If
End Sub
%>

protectedpage.asp
<%
Response.Expires = -1000 'Makes the browser not cache this page
Response.Buffer = True 'Buffers the content so our Response.Redirect will work

If Session("UserLoggedIn") <> "true" Then
Response.Redirect("login.asp")
End If
%>

This page is password protected. If you are reading this you entered <br>
the correct name and password.

Traducción: Choco_cu

choco_cu 15/08/2004 13:23

Ahora les envio la segunda parte del sistema de usuario y contraseña con session

segunda parte

En la Primera parte les mostramos como hacer una simple interface de proteccion por password funcional para tu Sitio. En est'a parte vamos a explorar como agregar mensajes de error, pertimir que los usuarios se relogeen o sea se reconecten, y solicitar a la base de datos por el nombre de usuario y el password entrado.

La primera cosa que haremos es agregar el codigo para permitir a los usuarios volver a logearse. Para hacerlo necesitamos chequear y ver que el usuario se encuentra logeado y agregar una nueva subrutina para manipular eso. Primero agregamos el codigo para chequear y ver si el usuario se mantiene conectado.

el siguiente codigo necesita se agregado en la cabecera de la pagina de logeo. Este codigo dirigir'a lo que pasa cuando el usuario activa la pagina de logeo.

login = Request.Form("login")
If login = "login_again" Then
Session("UserLoggedIn") = ""
ShowLogin
Else
If Session("UserLoggedIn") = "true" Then
AlreadyLoggedIn
Else
If login = "true" Then
CheckLogin
Else
ShowLogin
End If
End If
End If

Este codigo(anterior) reemplaza este codigo (de abajo) de la primera parte

If Request.Form("login") = "true" Then
CheckLogin
Else
ShowLogin
End If

Luego agregaremos la subrutina. AlredadyLoggedln para decirle al usuario que estan logeado y preguntar si quieren volverse a logear.

<%
Sub AlreadyLoggedIn
%>
You are already logged in.
Do you want to logout or login as a different user?
<form name=form2 action=login2.asp method=post>
<input type=submit name=button1 value='Yes'>
<input type=hidden name=login value='login_again'>
</form>
<%
End Sub
%>

he incluido un script de asp de apertura y cierre para delimitar porque in esa seccion de codigo hay una mescla de ASP y Html.

Ahora para agregar el chequeo de errores necesitamos declarar una variable global para el mensaje de error, agregar el codigo para formatear el mensaje de error e imprimir el mensaje si sse necesita.

Declarar la Variable para almacenar el mensaje de error cerca de la cabecera de la pagina de logeo.

Dim Error_Msg

Y agregamos este pequeño pedazo de codigo al inicio del formulario de logeo. Esto imprimira un mensaje de error si hay alguno.

Response.Write(Error_Msg&"<br>")

Ahora todo lo que nos falta por hacer es agregar el codigo para chequear el nombre de usuario y el password en una base de datos. Para hacerlo Reescribiremos la subrutina CheckLogin de la primera parte.

Sub CheckLogin
Dim Conn, cStr, sql, RS, username, userpwd
username = Request.Form("username")
userpwd = Request.Form("userpwd")
Set Conn = Server.CreateObject("ADODB.Connection")
cStr = "DRIVER={Microsoft Access Driver (*.mdb)};"
cStr = cStr & "DBQ=" & Server.MapPath("\articles\asp\advanced\passwordhow to.mdb") & ";"
Conn.Open(cStr)
sql = "select username from UserTable where username = '" & LCase(username) & "'"
sql = sql & " and userpwd = '" & LCase(userpwd) & "'"
Set RS = Conn.Execute(sql)
If RS.BOF And RS.EOF Then
Error_Msg = "Login Failed. Try Again."
ShowLogin
Else
Session("UserLoggedIn") = "true"
Response.Redirect "protectedpage2.asp"
End If
End Sub

ya esta hecho, puedes cortar y pegar el formulario del codigo de abajo y entonces acomodarlo a tu sitio

nueva variante del sistema

login2.asp [Top]

<%
Response.Expires = -1000 'Evita que el explorador haga una cache del sitio
Response.Buffer = True 'activara el buffer para el contenido asi nuestro Response.Redirect trabajara

Dim Error_Msg

login = Request.Form("login")
If login = "login_again" Then
Session("UserLoggedIn") = ""
ShowLogin
Else
If Session("UserLoggedIn") = "true" Then
AlreadyLoggedIn
Else
If login = "true" Then
CheckLogin
Else
ShowLogin
End If
End If
End If

Sub ShowLogin
Response.Write(Error_Msg & "<br>")
%>
<form name=form1 action=login2.asp method=post>
User Name : <input type=text name=username><br>
Password : <input type=password name=userpwd><br>
<input type=hidden name=login value=true>
<input type=submit value="Login">
</form>
<%
End Sub

Sub AlreadyLoggedIn
%>
Ya estas logeado.
deseas logearte como un usuario nuevo?
<form name=form2 action=login2.asp method=post>
<input type=submit name=button1 value='Yes'>
<input type=hidden name=login value='login_again'>
</form>
<%
End Sub

Sub CheckLogin
Dim Conn, cStr, sql, RS, username, userpwd
username = Request.Form("username")
userpwd = Request.Form("userpwd")
Set Conn = Server.CreateObject("ADODB.Connection")
cStr = "DRIVER={Microsoft Access Driver (*.mdb)};"
cStr = cStr & "DBQ=" & Server.MapPath("\home\codelib\howto\aspadvanced\pa sswordhowto.mdb") & ";"
Conn.Open(cStr)
sql = "select username from UserTable where username = '" & LCase(username) & "'"
sql = sql & " and userpwd = '" & LCase(userpwd) & "'"
Set RS = Conn.Execute(sql)
If RS.BOF And RS.EOF Then
Error_Msg = "Login Failed. Try Again."
ShowLogin
Else
Session("UserLoggedIn") = "true"
Response.Redirect "protectedpage2.asp"
End If
End Sub
%>

protectedpage2.asp[Top]

<%
Response.Expires = -1000 'Makes the browser not cache this page
Response.Buffer = True 'Buffers the content so our Response.Redirect will work

If Session("UserLoggedIn") <> "true" Then
Response.Redirect("login2.asp")
End If
%>

Esta es una pagina protegida por password. si estas leyendo esto has entrado<br>
el nombre y el password correctos.

Tarecito 20/08/2004 09:23

RecordCount para MySql
 
no se si ya exista una respuesta para esto, pero para los que no les funciona el RecordCount en MySql aqui hay una opción:

<%
Function RecCount(rsdef)
intRows = rsdef.GetRows
rsdef.MoveFirst
RecCount = UBound(intRows,2) + 1
End Function
.
.
.
Tu Conexión
.
.
response.write = RecCount(RS)

%>

A ver si se consiguen algo igual para el AbsolutePage :si:

Owen-Bonilla 22/09/2004 16:55

Actualizar una Base de Datos Dependiendo de un ID
 
Cómo actualizar algunos campos ( o todos ) de una Base de Datos, dependiendo de un Valor Tomado de una Página Anterior.

Cita:

<%language="vbscript"%>
<%
dim IDAnterior
dim usuario
dim password
dim nombre
dim apellidop
dim apellidom
dim imss
dim email

IDAnterior=Request.Form("id")
usuario=Request.Form("usuario")
password=Request.Form("password")
nombre=Request.Form("nombre")
apellidop=Request.Form("apellidop")
apellidom=Request.Form("apellidom")
imss=Request.Form("imss")
email=Request.Form("email")

set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/usuarios.mdb") & "; Password=bonilla "
SQL="UPDATE usuarios SET usuario='"&usuario&"', password='"&password&"', nombre='"&nombre&"', apellidop='"&apellidop&"', apellidom='"&apellidom&"', imss='"&imss&"', email='"&email&"' where [CampoID] = "& IDAnterior
set rs=oConn.Execute(SQL)
%>
CampoID= Nombre del Campo en mi Base de Datos
IDAnterior= Valor tomado de una página Anterior

Recuerda, sí Recoges un Valor desde una URL, lo tomas de la siguiente forma:
Request.QueryString("valor")

Recuerda, sí Recoges un Valor desde un Formulario, lo tomas de la siguiente forma:
Request.Form("valor")

Saludos

Owen-Bonilla 24/09/2004 11:02

FORMATO DE FECHAS SENCILLO PERO "AGRADABLE"

<%= formatdatetime((now),vblongdate) %>

Te Desplegara una Fecha tipo: Lunes, 22 de Enero del 2004

Saludos

Saruman 28/09/2004 13:13

Administrador de Base de Datos OnLine en ASP
 
con esto, podras manejar o controlar tu base de datos desde internet. Podrás compactarla, crear tablas, campos, modificar valores, hacer querys de sql, etc.

disfrutenla

DBAdmin Link

trasgukabi 23/10/2004 16:32

Agilizando la carga de tus páginas ASP II
 
10 tips para optimizar ADO

1.- Evitar Actualizaciones a traves de RecordSets. Debido a que el propósito del RecordSet es brindar consultas más rápidas a través de la opción de RecordSet Desconectados, minimizando las conexiones.

2.- Utilizar Stored Procedures. Es mejor debido a que ya se encuentra compilado en el Server y además de tener mayor prioridad, tiene más fácil mantenimiento y seguridad

3.- Crear el Minimo RecordSet. En otras palabras, seleccionar segun el tipo de operacion que se va realizar el tipo de recordset (Cursor Type o Cursor Location)a abrir

4.- Usar RecordSets Desconectados. Logicamente para economizar conexiones y para presentar consultas mas rapidas.

5.- Define Comandos Parametrizados. Segun lo que entendi es que al definirlos de esta forma lo que se envia al servidor es una colecciones de Parametros que optimiza la ejecución de Stored Procedure.

6.- Encapsula El Aceso a la Data. Obviamente se refiere a trabajar con componentes.

7.- Use el Data Shaping para retornar datos de Cabecera y detalle.
Debido a que significa menos trafico de red y menor consumo de recursos para el cliente.

8.- Use el MTS

9.- Use Parametros de Salida. Cuando un stored devuelve un valor o un RecordSet se recomienda devolverlo como parametro de salida debido a que se evita el crear un nuevo objeto.

10.- Obtenga solo la data que se requiere. Solo debemos extraer las columnas o filas, osea no debemos tomar toda la tabla sino los valores necesarios.
(***hasta aquí sacado de http://www.telecable.es/personales/j...n/res00456.htm sacado a su vez de Visual Basic Programmer Journal)

Unas cuantas cosas más:
-Liberar recordsets y conexiones en cuanto se pueda, no al final del script, como se dice por ahí.

-Evidentemente, y si es posible, usar SQLServer o Mysql u otra base de datos "de verdad". evitar access, que no está preparado para muchas conexiones concurrentes.

-No usar el mismo nombre de objeto para distintos queries en el mismo script. SQLServer crea un procedimiento almacenado temporal por cada petición y puede ser que el usar el mismo nombre de objeto se provoque una caída del sistema. Sobre todo trabajando con procedimientos almacenados parametrizados.

-Usar recordsets forward-only,read-only siempre que sea posible.

-Huye como del diablo de las sentencias tipo "SELECT * FROM TABLA", especifica siempre los nombres de los campos.

-Usa providers OLEDB nativos siempre que sea posible.No uses providers OLEDB para fuentes ODBC.

-Procura que las cadenas de conexión a la base de datos (si es que tienes más de una) sean EXACTAMENTE iguales, ya que ADO hace una comparación carácter a carácter de las conexiones para colocarlas o recharzarlas en la pila de peticiones. La mejor manera de evitar ésto es poner la conexión en un include o en una variable Application en Global.asa

-No guardes objetos connection o recordset en variables Session o Application. Hacer ésto machaca mucho la escalabilidad de la aplicación, porque las peticiones a la conexión o al recordset son ejecutadas en serie y, así, una página ASP debería esperar hasta que ninguna otra esté usando el recurso para poderlo utilizar. Es infinitamente mejor crear la conexion y el recordset en cada página y destruirlos antes de que el script termine.

-Usa conexiones sin DSN.

-Cuando uses providers nativos OLEDB, No uses ficheros de conexión UDL.

-Poner los tags <%%> en la misma línea reduce la sobrecarga de la página, ya que el motor ASP no tiene que interpretar los saltos de línea (las líneas las lee carácter a carácter)

-todos conocemos las bondades de los comentarios, pero mejor no abusar de ellos por la misma razón que la anterior.

BUENO, YA VALE POR HOY.
UN SALUDO A TODOS
:adios:

(**fuente:Visual Basic Programmer Journal)

trasgukabi 01/11/2004 23:28

Q: ¿Cómo puedo saber si estoy en un servidor seguro?
R: Así:
Código:

<%if request.ServerVariables("SERVER_PORT_SECURE")=0 then%>
<!--#INCLUDE VIRTUAL="/includes/cabecera.asp"-->
<%else%>
<!--#INCLUDE VIRTUAL="/includes/cabecerahttps.asp"-->
<%end if%>


Cbas 24/12/2004 11:12

Strings de Conexión
 
P: ¿Cómo me conecto desde ASP con MySQL, ACCESS, SQL, DBF, etc?
R: http://www.connectionstrings.com

ludovico2000 25/01/2005 13:10

Sistema de Acceso con Clave ASP+Access
 
P.: ¿Cómo implementar un sistema de acceso con clave seguro y vistoso?

Y que además registre cuándo entran los usuarios, su IP, cómo localizar dónde se ubica la IP, mostrar un mensaje personalizado de bienvenida para el usuario, registrando accesos maliciosos o erróneos, y además felicitar al usuario si es su cumpleaños... todo esto y mucho más en .... :borracho:

R: Utiliza una base de datos con tres tablas, una para guardar los accesos "buenos" otra para los "malos" (intentos o errores de los usuarios) y otra para ir poniendo los usuarios. (Descripción de la base de datos en notas, al final).

Además, incluye la función "zorionak" (Felicidades en euskera) para lanzar un pop-up si es el cumpleaños del usuario. ("urtebete" [cumpleaños] es el campo de la tabla usuarios donde va la fecha dd/mm sin año, claro), usando una cadena u otra "zorion" ó "nozorion". Esto es muy vistoso y agradecido por los usuarios. :si: (Seguir el verde oscuro para este asunto)

Combina todo esto con www.ip2location.com/free.asp que permite ver la localización (90% exacto) de la IP, y tendrás una página de acceso muy guay y bien controlada. :policia: (restringido a 20 consultas por día por IP)

[Ver notas al final]


[acceso.asp]:

<%if request.form("usuario")="" then

response.redirect "entrada.htm"

%>



<%else
'eliminamos las posibles comillas de la entrada
'para evitar la introducción de sentencias SQL
usuario=replace(request.form("usuario"),"'","")
password=replace(request.form("password"),"'","")
com=chr(34)
Var_IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if Var_IP = "" then
Var_IP = Request.ServerVariables("REMOTE_ADDR")
end if
Var_IP2 = Request.ServerVariables("REMOTE_HOST")
IF Var_IP2 = "" then
Var_IP2 = Request.ServerVariables("REMOTE_ADDR")
end if
zorion="<script language=JavaScript>function zorionak(){window.open('zorionak.htm','','top=100, left=100,width=415,height=294,scrollbars=No,locati on=No,menubar=No,resizable=no,status=No,directorie s=No,toolbar=No,copyhistory=No')}</script><body onload='zorionak()' bgcolor='#CCFFFF'>"

nozorion="<body bgcolor='#CCFFFF'>"


Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../data/TABLA.mdb"))
set rs = CreateObject("ADODB.Recordset")
sqltxt="Select * from usuarios where usuario='"&usuario&"' and password= '"&password&"'"
'response.write sqltxt
rs.Open sqltxt, conn
if not rs.eof then
' nos ha devuelto un registro, ahora miraremos si es valido
' con ello evitamos el ataque típico SQL
if rs("usuario")=usuario and rs("password")=password then
' si el usuario esta en la base de datos y la password coincide
session("autorizacion")=1

Insertar = "INSERT INTO TablaAccesos (ID_Usuario, Fecha_Acceso, IP, IP2) VALUES ('"&usuario&"', '"&Now()&"', '"&Var_IP&"', '"&Var_IP2&"')"

Conn.Execute(Insertar)

IF RS("URTEBETE")=date() then

Response.write "<html>..<head>" & zorion & "<table ...>Bienvenido: " & rs("nombre") & "</font>...</html>"

else

Response.write "<html>..<head>" & nozorion & "<table ...>Bienvenido: " & rs("nombre") & "</font>...</html>"

end if

end if

else

Insertar = "INSERT INTO BadAccesos (Bad_usuario, Bad_fecha, Bad_clave, Bad_IP, Bad_IP2) VALUES ('"&usuario&"', '"&Now()&"', '"&password&"', '"&Var_IP&"', '"&Var_IP2&"')"

Conn.Execute(Insertar)

session("autorizacion")=-1

end if
rs.close
set rs=nothing
conn.close
set conn=nothing
if session("autorizacion")=-1 or session("autorizacion")="" then
' no hemos encontrado el registro
' eso indica que el usuario y/o la password son erroneos



response.redirect "entrada.htm"
end if

end if%>

NOTAS:


[entrada.htm]:

<html>
...
<form method="POST" action="acceso.asp">
...
<input type="text" name="usuario" size="20"></td>
...
<input type="password" name="password" size="20">
...
<input type="submit" value="Aceptar" name="B1">
...
</form>
...
</html>


[BASE DE DATOS]:

TABLA.mdb
---->usuarios (tabla) [Aquí es donde vas poniendo los usuario a mano]
-------->usuario (campo)
-------->password (campo)
-------->nombre (campo)

---->TablaAccesos (tabla)
-------->ID_Usuario (campo)
-------->Fecha_Acceso (campo)
-------->IP (campo)

---->BadAccesos (tabla)
-------->Bad_usuario (campo)
-------->Bad_fecha (campo)
-------->Bad_clave (campo)
-------->Bad_IP (campo)

Yo guardo una copia de esta base de datos en el disco duro, donde voy copiando los accesos y badaccesos y dejo la "original" vacía y la vuelvo a subir, para evitar que se vaya "inflando" y ralentice el asunto. Para ello, también es aconsejable, antes de guardar, en access: Herramientas -> Utilidades de la Base de Datos -> Compactar y Reparar Base de datos. Esto evita que access guarde información "fantasma" y reajusta el tamaño al mínimo justo y necesario.

[A TENER EN CUENTA]:

El response.write genera el código de la página restringida. Ten en cuenta que dentro de ese código no puedes usar comillas dobles ["], pero sí simple ['] y también el código ASCII de la comilla, que es chr(34) y lo tienes que poner así:

Response.write "...código html hasta la comilla" & chr(34) & "código html después de la comilla..."

Verás que yo lo he definido como "com", para abreviar, y poner sólo " & com & "

Además, recuerdo que en el response.write no se pueden hacer saltos de línea, hay que poner el código todo seguido.


[zorionak.htm]:

una paginita con algo vistoso, hombre, no seas rancio ;-) , pero ten en cuenta los tamaños y posición con que se abre, que los marco en la variable "zorion", y pon los que te vengan bien a tí.

p.s.: ¿esto es una FAQ o un manual? :borracho:

franhanck 16/02/2005 14:52

Aqui Hay otro
 
COMO PUEDO PASAR DATOS DE LA BASE DE DATOS ENTRE PAGINAS


<a href=paginadestino?var=<%rs.fields("VARIABLE")%>>v er aqui</a>

pablinweb 30/03/2005 15:14

Como paginar una consulta en SQL 2k y ORDER BY
 
Código:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Paginacion</title>

<!--#include file="adovbs.inc" -->

<%

'*********************************************************
'Se supone que hay creada y abierta una conexión llamda Conn
'*********************************************************

gOrder = request.QueryString("ORDER")
if gOrder = "" then
        SQL = "Select * from Tabla"
else
        SQL = "Select * from Tabla order by " & gOrder
end if
Dim mostrar 'cantidad de registros a mostrar por página
Dim cant_paginas 'cantidad de páginas que recibimos
Dim pagina_actual 'La página que mostramos
Dim registro_mostrado 'Contador utilizado para mostrar las páginas
Dim I 'Variable Loop

mostrar = 10 ' Pueden modificar este número para cambiar la cantidad de registros por página

' IF para saber que página mostrar
If Request.QueryString("page") = "" Then
        pagina_actual = 1
Else
        pagina_actual = CInt(Request.QueryString("page"))
End If

Set RS = Server.CreateObject("ADODB.Recordset")
RS.PageSize = mostrar
RS.CacheSize = mostrar

' Abrimos la tabla...
RS.Open SQL, Conn,3,1
'contamos las páginas que se formaron con la variable mostrar.
cant_paginas = RS.PageCount

' Si el pedido de página cae afuera del rango,
' lo modificamos para que caiga adentro
If pagina_actual > cant_paginas Then pagina_actual = cant_paginas
If pagina_actual < 1 Then pagina_actual = 1

' Nos movemos a la página elegida
If cant_paginas > 0 Then
        RS.AbsolutePage = pagina_actual
End IF
%>
</head>

<body>
<table width="100%" border="1" align="center">
<% if Rs.eof then %>
        <tr>
      <th>No Hay Registros</th>
    </tr>
<% else %>
            <tr>
                    <td></td>
              <td>
                          Página <%= pagina_actual %> de <%= cant_paginas %>
                  </td>
            </tr>
                <tr>
                    <th>
                          <a href="Main.asp?ORDER=ID">Id</a>
                  </th>
              <th>
                          <a href="Main.asp?ORDER=Descripcion">Descripci&oacute;n</a>
                  </th>
            </tr>
        <% do while registro_mostrado < mostrar And not Rs.eof %>       
            <tr>
              <td>
                          <% response.Write(Rs("ID")) %>
                  </td>
              <td>
                        <% response.Write(Rs("Descripcion")) %>
              </td>
            </tr>
        <%                Rs.movenext
                        registro_mostrado = registro_mostrado + 1
          loop
  end if
Rs.close
Set Rs = Nothing
Conn.close
Set Conn = Nothing
Link = "Main.asp?ORDER=" & gOrder
%>
</table>
<table width="850">
  <tr>
    <td>
          <div align="center"></div>
          <div align="right" class="style2">
        <div align="center">
          <%
        ' Ahora mostramos los enlaces a las otras páginas con el resto de los registros...
        If pagina_actual > 1 Then
                If cant_paginas > 1 Then
                        If Link = "" then %>
                                    <a href="Main.asp?page=1">[<<]</a>
        <%        Else %>
                                    <a href="<%=Link%>&page=1">[<<]</a>
        <%        End If
                End If
        End if
        If pagina_actual > 1 Then
                If Link = "" then %>
                            <a href="Main.asp?page=<%= pagina_actual - 1 %>">[<]</a>
          <%        Else %>
                            <a href="<%=Link%>&page=<%= pagina_actual - 1 %>">[<]</a>
          <%        End If
        End If

        ' mostramos la paginacion por numeros de página
        if cant_paginas < 6 then
                fCant = 1
        else
                if pagina_actual < 4 then
                        fCant = 1
                else
                        if pagina_actual > 3 then
                                fCant = pagina_actual - 2
                        else
                                fCant = pagina_actual
                        end if
                        if (cant_paginas - fCant) < 5 then
                                fCant = cant_paginas - 4
                        end if
                end if
        end if
        For I = fCant To cant_paginas
                J = J + 1
                If J > 5 Then exit For
                If I = pagina_actual Then %>
                            <%= I %>
    <%        Else
                        If Link = "" then %>
                                    <a href="Main.asp?page=<%= I %>"><%= I %></a>
        <%        Else %>
                                <a href="<%=Link%>&page=<%= I %>"><%= I %></a>
        <%        End If
                End If
        Next 'I

        If pagina_actual < cant_paginas Then
                If Link = "" then %>
                                <a href="Main.asp?page=<%= pagina_actual + 1 %>">[>]</a>
          <%        Else %>
                                <a href="<%=Link%>&page=<%= pagina_actual + 1 %>">[>]</a>
          <%        End If
        End If
        If pagina_actual < cant_paginas Then
                If cant_paginas > 1 Then
                        If Link = "" then %>
                            <a href="Main.asp?page=<%= cant_paginas + 1 %>">[>>]</a>
        <%        Else %>
                <a href="<%=Link%>&page=<%= cant_paginas + 1 %>">[>>]</a>
            <%        End If
                End If
        End if %> 
      </div>
    </div></td>
  </tr>
</table>
</body>
</html>


sjam7 12/04/2005 08:36

Obtener el codigo de otras paginas con XML
 
Este script sirve para tomar el codigo HTML de otras paginas para tomar informacion que podamos utilizar en nuestras paginas (no se si sea legal o no) pero este ejemplo es con el fin de utilizarlo para saber por ejemplo cotizaciones del dolar desde paginas de bancos, Pageranks desde paginas que dan el servicio ese, etc...

En este ejemplo sirve para tomar el PR desde una pagina llamada OnlyPHP (¿que cosas no?) OJO, es en ASP :-D

Código PHP:

<%
on error resume next
Set xml 
Server.CreateObject("Microsoft.XMLHTTP")
liga="www.forosdelweb.com"
xml.Open "GET""http://www.onlyphp.com/pagerank/index.php?url=http://"&liga&"&email=correo%40hotmail.com&action=Get+Page+Rank"False
xml
.Send
Cadena 
CSTR(xml.responseText)
     
PosIni1 InStr(Cadena,"src=images/pr")
     
PosIni2 InStr(PosIni1,Cadena,"pr")
     
PosFin  InStr(PosIni2Cadena,".gif")

   
Ranking replace(MID(CadenaPosIni2PosFin-PosIni2),"pr","")

Response.write "PR: " Ranking

if err<>0 then
response
.write "<br>"&err.description
response
.write "<br>"&cadena
end 
if
%> 

Este es para sacar la cotizacion del dollar a pesos de un banco (HSBC) de Mexico
Código PHP:

<%
  
Response.Buffer True
  Set xml 
Server.CreateObject("Microsoft.XMLHTTP")
  
xml.Open "GET""http://dsrefa01.hsbc.com.mx/aptrix/InternetPub.nsf/Content/TasasSplash"False
  xml
.Send
     Cadena 
CSTR(xml.responseText)
     
PosIni1 InStr(Cadena,"DOLAR AMERICANO")
     
PosIni2 InStr(PosIni1,Cadena,"$")
     
PosFin  InStr(PosIni2Cadena,"<")
   
DolarCompra MID(CadenaPosIni2PosFin-PosIni2)
     
PosIni1 PosFin
     PosIni2 
InStr(PosIni1,Cadena,"$")
     
PosFin  InStr(PosIni2Cadena,"<")
   
DolarVenta MID(CadenaPosIni2PosFin-PosIni2)

Set xml Nothing
%> 

y para ponerlo en pantalla (el precio del dolar) es asi:
A la compra
<%=FormatCurrency(CDbl(MID(DolarCompra,InStr(Dolar Compra,";")+1,LEN(DolarCompra))),2)%>
A la venta
<%=FormatCurrency(CDbl(MID(DolarVenta,InStr(DolarV enta,";")+1,LEN(DolarVenta))),2)%>

espero les sirva y puedan adaptar a mas cosas, saludos

El_Metallick 17/04/2005 16:10

¿Como hacer un sistema de valoración, ese con estrellitas que siempre vemos en la red?

http://www.forosdelweb.com/showthrea...ema+valoracion

dobled 19/04/2005 22:48

Cita:

Iniciado por El_Metallick
¿Como hacer un sistema de valoración, ese con estrellitas que siempre vemos en la red?

http://www.forosdelweb.com/showthrea...ema+valoracion


me debes los creditos :-D
solo era una broma :arriba:

dobled 19/04/2005 22:56

Como seleccionar n Registros y mostrarlos simpre en distinto orden
 
Solo para BD SQL

SQL trae esta funcion muy util ahorra programación, ya me estaba buscando codigo para no mostrar siempre el mismo orden de los productos de portada pero con NEWID() lo tienes


Código:

SQL="SELECT TOP 6 * FROM pcm_productos ORDER By NEWID()"

u_goldman 26/04/2005 10:44

Y para MySQL
 
Código:

SQL="SELECT TOP 6 * FROM pcm_productos ORDER By rand()"

trasgukabi 01/05/2005 13:36

Problemas Con Los Permisos De Carpetas En Windows
 
PROBLEMAS CON LOS PERMISOS DE CARPETA?:
sobre la carpeta (en IIS no, en la carpeta "física" del disco duro), botón derecho de ratón->propiedades->pestaña seguridad->agregar->avanzadas->buscar ahora
seleccionar "todos"->aceptar->aceptar
en la lista de permisos, seleccionar control total.

Si no sale la pestaña seguridad,

en cualquier carpeta de windows,menú herramientas->Opciones de carpeta->Ver->Configuración avanzada->Desactivar la opción "Utilizar uso compartido simple de archivos(recomendado)

a ver si dejan de preguntarlo ya, jejeje

El_Metallick 04/05/2005 08:40

Catalogo on-line
 
combo.asp
Código:

<html>
<head>
<title>Combos combinados</title>
<script language = "JavaScript">

<%'CONSULTA PARA OBTENER LOS DATOS
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\database\hard.mdb"))

productos_Sql = "Select distinct familia, codigo, denominacion from articulos "
set rs = CreateObject("ADODB.Recordset")
rs.Open productos_Sql, Conn
x=0
%>
// FUNCION DE COMBO BOX COMBINADO
function sublist(inform, selecteditem)
{
inform.subcatagory.length = 0

<%
count= 0
y=0
do while not rs.eof
%>

x = <%= trim(y) %>;

subcat = new Array();
subcatagorys = "<%=(rs("codigo"))&" "&(rs("denominacion")) %>";
subcatagoryof = "<%=(rs("familia"))%>";
subcatagoryid = "<%=(rs("codigo"))%>";
subcat[x,0] = subcatagorys;
subcat[x,1] = subcatagoryof;
subcat[x,2] = subcatagoryid;
if (subcat[x,1] == selecteditem) {
var option<%= trim(count) %> = new Option(subcat[x,0], subcat[x,2]);
inform.subcatagory.options[inform.subcatagory.length]=option<%= trim(count)%>;
}

<%
count = count + 1
y = y + 1
rs.movenext
loop
rs.close
%>
}
</script>
<base target="principal">
</head>
<body bgcolor="#CDB1B7">
<h2 align="center"><b><i><font color="#AE1732"><u>El PCcillo Feliz</u></font></i></b></h2>
<form name="prueba" method="POST" action="verarticulo.asp">
<div align="center">
<center>
<table border="0" width="80%">
 <tr>
  <td width="77%">
  <select size="1" id="familia" name="familia" onChange = "javascript:sublist(this.form, familia.value);">
        <option selected>Selecciona una familia</option>
        <%
          familias_Sql = "Select distinct id,familia from familias"
          rs.Open familias_Sql, Conn
          do while not rs.eof
        %>
        <option value="<%=rs("id")%>"><%=rs("familia")%></option>
        <%
          rs.movenext
          loop
          set rs=nothing
          conn.close
          set conn=nothing
        %>
  </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <SELECT id="subcatagory" name="subcatagory" size="1">
  <Option selected value="none"></option>
  </SELECT></td>
  <td width="9%">
        <p align="left">
        <input border="0" src="images/submit.gif" name="I4" type="image">
        </p>
  </td>
 </tr>
</table>
</center>
</div>
</form>
</body>
</html>

verarticulo.asp
Código:

<html>
<head>
<title>articulos</title>
<base target="_self">
</head>
<body bgcolor="#CDB1B7">
<p align="center"><font color="#AE1732" face="Verdana" size="2"><b>Detalles</b></font></p>
<p align="center">
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("hard.mdb"))
strSQL = "Select * from articulos where codigo ='" & Request.form("subcatagory")&"'"
Set RS = Conn.Execute(strSQL)
if not rs.eof then%>
</p>
<div align="center">
<center>
<table border="0" width="80%" bgcolor="#0000FF">
<tr>
        <td width="11%"><b><font face="Verdana" size="1" color="#FFFFFF">Codigo:</font></b></td>
        <td width="15%"><font face="Verdana" size="1"><font color="#FFFFFF"><%=rs("codigo")%></font></font></td>
        <td width="74%">
        <p align="center"><font face="Verdana" size="2" color="#FFFFFF"><b><%=rs("denominacion")%></b></font></td>
</tr>
<tr>
        <td width="100%" colspan="3" >
        <table border="0" width="100%">
                <tr>
                <td width="11%">
                        <p align="center">&nbsp;</td>
                <td width="78%" bgcolor="#AE1732">
                        <p align="center"><img border="0" src="<%=rs("imagen")%>"></td>
                <td width="11%">&nbsp;</td>
                </tr>
        </table>
        </td>
</tr>
<tr>
        <td width="100%" colspan="3">
        <p align="left"><font face="Verdana" size="1" color="#FFFFFF"><%=rs("descripcion")%></font></td>
</tr>
<tr>
        <td width="11%"><b><font face="Verdana" size="1" color="#FFFFFF">Precio</font></b></td>
        <td width="89%" colspan="2"><font face="Verdana" size="1" color="#FFFFFF"><%=formatcurrency(rs("precio"))%></font></td>
</tr>
</table>
</center>
</div>
<%
rs.close
set rs=nothing
Conn.Close
Set Conn = Nothing
end if
%>
</body>
</html>

combos.htm
Código:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Pagina nueva 1</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
</head>
<frameset framespacing="0" border="0" rows="136,*" frameborder="0">
<frame name="encabezado" scrolling="no" noresize target="principal" src="combo.asp">
<frame name="principal" src="verarticulo.asp">
<noframes>
<body>
<p>Esta página usa marcos, pero su explorador no los admite.</p>
</body>
</noframes>
</frameset>
</html>

hard.mdb

tabla articulos

código (texto)
familia (numérico)
denominacion (texto)
descripcion (memo)
precio (numérico)
imagen (texto)

tabla familias

id (autonumérico)
familia (texto)
imagenp (texto)

Bueno y lo de agregar, eliminar o modificar articulos requiere un minimo conocimiento de ASP (osea es bastante minimo pues hasta yo lo se hacer y no digamos que se mucho jajajaj).... pero de todas formas si no saben hacerlo consulten en el foro :arriba: .... bueno eso saludos y suerte :adios:

El_Metallick 11/05/2005 21:09

otro catalogo on line
 
Aqui dejo el vinculo a tro sistema de catalogo online

http://www.forosdelweb.com/showthrea...36#post1090636

Bueno solo faltaria lo de agregar, eliminar o modificar productos, pero eso requiere un minimo conocimiento de ASP (osea es bastante minimo pues hasta yo lo se hacer y no digamos que se mucho jajajaj).... pero de todas formas si no saben hacerlo consulten en el foro :arriba: .... bueno eso saludos y suerte :adios:

Muzztein 26/05/2005 13:32

variables dinamicas
 
¿Es posible declarar variables dinamicamente ? (variables dinamicas)

Si, es posible.

¿Como?

Así:

Código:

for x = 0 to 10
        execute("variable_" & x & " = " & x)
next

response.write variable_0 & "<br/>"
response.write variable_1 & "<br/>"
response.write variable_2 & "<br/>"
response.write variable_3 & "<br/>"
response.write variable_4 & "<br/>"
response.write variable_5 & "<br/>"
response.write variable_6 & "<br/>"
response.write variable_7 & "<br/>"
response.write variable_8 & "<br/>"
response.write variable_9 & "<br/>"


sjam7 29/05/2005 20:32

Whois con dominios .MX
 
Por si a alguien le sirve hice un checador de whois para dominios .com.mx, .net.mx y .org.mx por si a alguien le sirve, es una adaptacion de uno que con sultaba los normales (sin mx)
Solo enviale el dominio en la variable domain y extension en la variable suffix via query
Se podria adaptar para mas tipos de dominios aparte de los mencionados, pero creo que puse los mas usados

Código:

<%
 'Poner tiempo de espera a 90seg
 Server.ScriptTimeout = 90
 
 'Whois function to query the whois server
 Private Function whoisResult(whoisURL, strMethod, strResultsStart, strResultsEnd)
 
        'Dimension variables
        Dim objXMLHTTP                        'Holds the XML HTTP Object
        Dim strWhoisResultString        'Holds the reult of the whois query
 
        'Create an XML object to query the remote whois server
        Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
       
        'Alternative XML HTTP component, for version 3.0 of XMLHTTP
          'Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
 
        'Open a connection to the remote whois server
                objXMLHTTP.Open strMethod, whoisURL, False
               
                'Send the request and return the data
                objXMLHTTP.Send
               
                'Place the whois registry response into the result string
                strWhoisResultString = objXMLHTTP.ResponseText
               
               
                'If the domain name is to short then tell them it's invalid
                If Len(strDomainName) < 3 Then
                       
                        'Set the return result of the function to not valid
                        whoisResult = "No Valido - debe tener por lo menos 3 caracteres"
                       
        'Else if there is an error
                ElseIF InStr(1, strWhoisResultString, "Error", vbTextCompare) Then
                       
                        'Set the return result of the function to Taken
                        whoisResult = "A ocurrido un error"
                       
                'Else there was a result
                Else
                       
                        'Strip the whois result leaving the data we want
                whoisResult = resultFormater(strWhoisResultString, strResultsStart, strResultsEnd)
                End If
               
                'Clean up
                Set objXMLHTTP = Nothing
 End Function
 
 
 'Function to strip all non estential returned input
 Private Function resultFormater(strWhoisResultString, strResultsStart, strResultsEnd)
 
        'Dimension variables
        Dim lngResultsStartPos
        Dim lngResultsEndPos
 
        'Find the start position in the returned data of the result
        lngResultsStartPos = InStr(1, strWhoisResultString, strResultsStart, 1) + Len(strResultsStart)
                                                                                                   
        'Find the end position in the returned data of the result
        lngResultsEndPos = InStr(lngResultsStartPos, strWhoisResultString, strResultsEnd, 1)
                                               
        'Make sure the end position is not in error
        If lngResultsEndPos - lngResultsStartPos =< Len(strResultsStart) Then lngResultsEndPos = lngResultsStartPos + Len(strResultsStart)
                       
        'Now we know the start and end position of the result, strip the rest and return the result
        resultFormater = Trim(Mid(strWhoisResultString, lngResultsStartPos, (lngResultsEndPos - lngResultsStartPos)))       
 End Function
 
 
 'Function to strip non alphanumeric characters
 Private Function characterStrip(strTextInput)
 
        'Dimension variable
        Dim intLoopCounter        'Holds the loop counter
       
        'Loop through the ASCII characters up to - hyphen
        For intLoopCounter = 0 to 44
                strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0)
        Next
       
        'Loop through the ASCII characters from hyphen to numeric charcaters
        For intLoopCounter = 46 to 47
                strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0)
        Next
       
        'Loop through the ASCII characters numeric characters to lower-case characters
        For intLoopCounter = 58 to 96
                strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0)
        Next
       
        'Loop through the extended ASCII characters
        For intLoopCounter = 123 to 255
                strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0)
        Next
       
        'Return the string
        characterStrip = strTextInput
       
 End Function
 
 
 
 'Dimension variables
 Dim strDomainName        'Holds the domain name to search for
 Dim strSuffix                'Holds the domain name suffix to search
 
 'Read in the domain name to search
 
 'If a domain name has been entred then strip any unwanted characters from it
 If strDomainName <> "" Then
       
        'Convert the domain name to check to lower case
        strDomainName = LCase(strDomainName)
       
        'Remove www and http from in front
        strDomainName = Replace(strDomainName, "http://", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, "www.", "", 1, -1, 1)
       
        'Remove suffixes
        strDomainName = Replace(strDomainName, ".com", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".net", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".org", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".info", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".biz", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".tv", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".name", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".co.uk", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".org.uk", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".ltd.uk", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".plc.uk", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".net.uk", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".me.uk", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".pn.uk", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".com.mx", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".net.mx", "", 1, -1, 1)
        strDomainName = Replace(strDomainName, ".org.mx", "", 1, -1, 1)
 
        'Remove any hyphens from the first and last characters
        If Left(strDomainName, 1) = "-" Then strDomainName = Mid(strDomainName, 2, Len(strDomainName))
        If Right(strDomainName, 1) = "-" Then strDomainName = Mid(strDomainName, 1, Len(strDomainName)-1)
 
        'Remove any hyphens double hyphens
        strDomainName = Replace(strDomainName, "--", "-", 1, -1, 1)
       
        'Strip all non aphanumeric characters from the input
        strDomainName = characterStrip(strDomainName)
 End If
 
 'If a domain name is enterd check it
 If strDomainName <> "" Then
        Response.Write("<pre>")       
       
        'Display the avialbility
        Response.Write("<b>Resultados de la busqueda de<br> www." & strDomainName & strSuffix & "</b><br><br>")
                         
        'Call the domain checking function depending on domain suffix
       
        If strSuffix = ".com" Then
        Response.Write(whoisResult("http://www-whois.internic.net/cgi/whois?whois_nic=" & strDomainName & ".com&type=domain", "GET", "<pre>", "</pre>"))
               
        'check for .net
        ElseIf strSuffix = ".net" Then
        Response.Write(whoisResult("http://www-whois.internic.net/cgi/whois?whois_nic=" & strDomainName & ".net&type=domain", "GET", "<pre>", "</pre>"))
       
        'Check for .org       
        ElseIf strSuffix = ".org" Then
        Response.Write(whoisResult("http://www-whois.internic.net/cgi/whois?whois_nic=" & strDomainName & ".org&type=domain", "GET", "<pre>", "</pre>"))
       
        'Check for .biz       
        ElseIf strSuffix = ".biz" Then
        Response.Write(whoisResult("http://www-whois.internic.net/cgi/whois?whois_nic=" & strDomainName & ".biz&type=domain", "GET", "<pre>", "</pre>"))
       
        'Check for .info       
        ElseIf strSuffix = ".info" Then
        Response.Write(whoisResult("http://www-whois.internic.net/cgi/whois?whois_nic=" & strDomainName & ".info&type=domain", "GET", "<pre>", "</pre>"))       
 
        ElseIf strSuffix = ".com.mx" Then
        Response.Write(whoisResult("http://www.nic.mx/es/Busqueda.Who_Is_3?domain_name="&strDomainName&"&domain_type=1&template_type=&object_type_1=&object_type_2=&object_type_3=3&text="& strDomainName &"&current_page=Busqueda.Who_Is_2", "GET", "<pre style=""font-size: 14px; margin-left: 10px;"">", "</pre>"))       
        ElseIf strSuffix = ".net.mx" Then
        Response.Write(whoisResult("http://www.nic.mx/es/Busqueda.Who_Is_3?domain_name="&strDomainName&"&domain_type=3&template_type=&object_type_1=&object_type_2=&object_type_3=3&text="& strDomainName &"&current_page=Busqueda.Who_Is_2", "GET", "<pre style=""font-size: 14px; margin-left: 10px;"">", "</pre>"))       
        ElseIf strSuffix = ".org.mx" Then
        Response.Write(whoisResult("http://www.nic.mx/es/Busqueda.Who_Is_3?domain_name="&strDomainName&"&domain_type=5&template_type=&object_type_1=&object_type_2=&object_type_3=3&text="& strDomainName &"&current_page=Busqueda.Who_Is_2", "GET", "<pre style=""font-size: 14px; margin-left: 10px;"">", "</pre>"))       
        End If 
 
        'Finish the red span tag
        Response.Write("</pre>")       
 End If         
 %>


Saruman 30/05/2005 16:34

Super Fast String Concatenation
 
Pregunta: ¿Por qué me manda TimeOut al realizar una concatenación?
Respuesta: Al realizar concatenamientos múltiples en secuencia, VBScript duplica la secuencia original y añade la secuencia nueva al final de esta.

Entonces substituye la secuencia original por el nuevo. Esto puede ser una maniobra increíblemente costosa si estás construyendo una secuencia muy grande. La clase de StringBuilder hace esto mucho más eficiente. Aquí está un ejemplo de cómo utilizarla.

VER FUNCION

pepelucho 08/06/2005 10:21

ajustar pop-up dependiendo la imagen(con base de datos)
 
Código PHP:

<!--#include file="conexion.asp" -->
<%
set rs=Server.CreateObject("adodb.recordset")
sql="select *from fotos"
rs.open sql,oconn
%>
<
html>
<
head>
<
title>Untitled Document</title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</
head>
<
script language="javascript"

//script por Tunait 
var ventana 
var cont=
var titulopordefecto "Perico de los palotes" //texto por defecto a mostrar en la barra de título en caso de omitir el argumento titulo 

function afoto(cual,titulo

if(
cont==1){ventana.close();ventana=null
if(
titulo==null){titulo=titulopordefecto
ventana=window.open('','ventana','resizable=yes,sc      rollbars=no'
ventana.document.write('<html><head><title>' titulo '</title></head><body style="overflow:hidden" marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" scroll="no" onUnload="opener.cont=0"><img src="' cual '" onLoad="opener.redimensionar(this.width, this.height)">'
ventana.document.close() 
cont++ 

function 
redimensionar(ancho,alto

ventana.resizeTo(ancho+12,alto+28
ventana.moveTo((screen.width-ancho)/2,(screen.height-alto)/2//centra la ventana. Eliminar si no se quiere centrar el popup 

</script> 

<body>
<a href="#" onClick="afoto('imagen/<%=rs("foto")%>','Mi titulo');return false"><img src="imagen/<%=rs("pequena")%>"></a> 
</body>
</html> 


robervcp 17/06/2005 08:24

Cita:

Iniciado por Muzztein
¿Es posible declarar variables dinamicamente ? (variables dinamicas)

Si, es posible.

¿Como?

Así:

Código:

for x = 0 to 10
        execute("variable_" & x & " = " & x)
next

response.write variable_0 & "<br/>"
response.write variable_1 & "<br/>"
response.write variable_2 & "<br/>"
response.write variable_3 & "<br/>"
response.write variable_4 & "<br/>"
response.write variable_5 & "<br/>"
response.write variable_6 & "<br/>"
response.write variable_7 & "<br/>"
response.write variable_8 & "<br/>"
response.write variable_9 & "<br/>"


Bien.
Sin embargo si se presenta esta situacion:
http://www.forosdelweb.com/showpost....20&postcount=3

nroesp=7777
valoresp=10

''// creamos la variable variable_7777 con un valor 10 ???
execute("variable_" & nroesp & " =" & valoresp)


response.write(Vartype(variable_&nroesp))
''// Nos dira que es de tipo 8
response.write("<br>")
response.write(TypeName(variable_&nroesp))
''// Nos dira que es de tipo String
response.write("<br>Valor : ")
response.write(variable_&nroesp)
''// Nos devolvera el valor 7777 y no el 10, osea nos da el nroesp y no el valoresp
response.write("<br>")

Trulala de cordoba 22/06/2005 13:45

¿Como subo varios ficheros a la vez sin componente?

Upload sin componente para subir muchos archivos a la vez, este ejemplo tiene tres cajas de texto, pero si quieren pueden agregar todas las cajas de texto para subir mas archivos.
Espero les sea útil.
Saludos.




<html>

<head>
<title>Cargador de archivos</title>
</head>

<body style="font-family: Arial; font-size: 9pt">

<p align="center"><b><font size="3">Cargador de archivos</font></b></p>


<%@LANGUAGE="VBSCRIPT"%> <%response.buffer=true
Func = Request("Func")
if isempty(Func) Then
Func = 1
End if
Select Case Func
Case 1
%>
<table width="360" border="0" align="center">
<tr>
<td>
<div align="center">
Selecciona un archivo para subir.
</div>
</td>
</tr>
</table>
<form enctype="multipart/form-data" action="tmp.asp?func=2" method="POST" id="form1" name="form1">
<table align="center">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><font color="#330066" size="2">Pulsa en el botón examinar y elige el archivo
de tu ordenador. <br>
Se cargará en el directorio actual.<br>
<br>
</font></td>
</tr>
<tr>
<td><font color="#330066" size="2">Luego pulsa el botón subir.<br>
<br>
</font></td>
</tr>
<tr>
<td><strong><font color="#330066" size="2">Nombre del archivo...</font></strong></td>
</tr>
<tr>
<td><p><font size="2">
<input name="File1" size="30" type="file">
</font></p>
<p><font size="2">
<input name="File12" size="30" type="file">
</font></p>
<p><font size="2">
<input name="File13" size="30" type="file">
</font></p></td>
</tr>
<tr>
<td align="left"><input type="submit" value="Subir"> <br>
<br>
</td>
</tr>
<tr>
<td><font color="#330066" size="2">NOTA: Espera, recibirás una notificación
cuando el archivo haya sido subido</font><font size="2">.<br>
<br>
</font></td>
</tr>
</table>


<% 'Código ASP

Case 2
ForWriting = 2
adLongVarChar = 201
lngNumberUploaded = 0

'Get binary data from form
noBytes = Request.TotalBytes
binData = Request.BinaryRead (noBytes)

'convery the binary data to a string
Set RST = CreateObject("ADODB.Recordset")
LenBinary = LenB(binData)

if LenBinary > 0 Then
RST.Fields.Append "myBinary", adLongVarChar, LenBinary
RST.Open
RST.AddNew
RST("myBinary").AppendChunk BinData
RST.Update
strDataWhole = RST("myBinary")
End if


'Creates a raw data file for with all data sent
'Uncomment for debuging.
'Set fso = CreateObject("Scripting.FileSystemObject")
'Set f = fso.OpenTextFile(server.mappath(".") & "\raw.txt", ForWriting, True)
'f.Write strDataWhole
'set f = nothing
'set fso = nothing
'get the boundry indicator

strBoundry = Request.ServerVariables ("HTTP_CONTENT_TYPE")
lngBoundryPos = instr(1,strBoundry,"boundary=") + 8
strBoundry = "--" & right(strBoundry,len(strBoundry)-lngBoundryPos)

'Get first file boundry positions.
lngCurrentBegin = instr(1,strDataWhole,strBoundry)
lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1

Do While lngCurrentEnd > 0
'Get the data between current boundry and remove it from the whole.
strData = mid(strDataWhole,lngCurrentBegin, lngCurrentEnd - lngCurrentBegin)
strDataWhole = replace(strDataWhole,strData,"")

'Get the full path of the current file.
lngBeginFileName = instr(1,strdata,"filename=") + 10
lngEndFileName = instr(lngBeginFileName,strData,chr(34))
'Make sure they selected at least one fi
' le.
if lngBeginFileName = lngEndFileName and lngNumberUploaded = 0 Then

Response.Write "<H2> Ha ocurrido el siguiente error.</H2>"
Response.Write "Debes elegir un archivo para subir"
Response.Write "<BR><BR>Pulsa el botón volver, realiza la corrección."
Response.Write "<BR><BR><INPUT type='button' onclick='history.go(-1)' value='<< Volver' id='button'1 name='button'1>"
Response.End
End if

'There could be one or more empty file boxes.

if lngBeginFileName <> lngEndFileName Then
strFilename = mid(strData,lngBeginFileName,lngEndFileName - lngBeginFileName)

'Creates a raw data file with data between current boundrys. Uncomment for debuging.
'Set fso = CreateObject("Scripting.FileSystemObject")
'Set f = fso.OpenTextFile(server.mappath(".") & "\raw_" & lngNumberUploaded & ".txt", ForWriting, True)
'f.Write strData
'set f = nothing
'set fso = nothing

'Loose the path information and keep just the file name.
tmpLng = instr(1,strFilename,"\")
Do While tmpLng > 0
PrevPos = tmpLng
tmpLng = instr(PrevPos + 1,strFilename,"\")
Loop

FileName = right(strFilename,len(strFileName) - PrevPos)

'Get the begining position of the file data sent.
'if the file type is registered with thebrowser then there will be a Content-Type
lngCT = instr(1,strData,"Content-Type:")

if lngCT > 0 Then
lngBeginPos = instr(lngCT,strData,chr(13) & chr(10)) + 4
Else
lngBeginPos = lngEndFileName
End if
'Get the ending position of the file dat
' a sent.
lngEndPos = len(strData)

'Calculate the file size.
lngDataLenth = lngEndPos - lngBeginPos
'Get the file data
strFileData = mid(strData,lngBeginPos,lngDataLenth)

'Create the file.
Set fso = CreateObject("Scripting.FileSystemObject")

'Lo guarda en la carpeta actual
Set f = fso.OpenTextFile(server.mappath(".\") & "/" & FileName, ForWriting, True)
f.Write strFileData
Set f = nothing
Set fso = nothing


lngNumberUploaded = lngNumberUploaded + 1

End if

'Get then next boundry postitions if any.
lngCurrentBegin = instr(1,strDataWhole,strBoundry)
lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1
loop


Response.Write "Archivo subido<Br>"
Response.Write lngNumberUploaded & " archivo ya está en el servidor.<BR>"
Response.Write "<BR><BR><INPUT type='button' onclick='document.location=" & chr(34) & "Cargador de archivos.asp" & chr(34) & "' value='<< Volver' id='button'1 name='button'1>"
End Select
%></form>

</body>

</html>

eagrella 07/07/2005 09:02

Como Escribir Un Archivo de Excel Ya Existente
 
Aqui les va la solucion de como escribir en un archivo de excel ya existente y con cualquier tipo de datos TANTO ESTATICOS COMO DINAMICOS
Código:

Set appExcel = Server.CreateObject("Excel.Application")'Componente que se instala cuando posee office instalado sino NO SIRVE

appExcel.Workbooks.Open(nombre_de_tu_archivo)'abres el archivo de excel de tu maquina
appExcel.Range("B" & 2).Value = 1 'escribe 1 en la linea b2 de excel
For i = 4 To 10 ' empiezo a escribir desde la linea 4 hasta la 10
appExcel.Range("A" & i).Value = "PEPE"
appExcel.Range("B" & i).Value = 15
appExcel.Range("C" & i).Value = "Profecional"
appExcel.Range("D" & i).Value = 40
Next
appExcel.ActiveWorkbook.SaveAs (ruta_mas_nombre_nuevo) 'salvo elarchivo como quieras y donde quieras
appExcel.Workbooks.Close ' cierro el objeto y listo

Espero que les sirva de ayuda!!! :aplauso: :arriba:

El_Metallick 11/07/2005 20:29

¿Como mandar mails a un celular?
R: Les dejo el vinculo para que lo vean (no es mi topic ahi salen todos los usuarios que partisiparon para que no me saquen en cara los creditos.... jajajajaj broma para dobled)

http://forosdelweb.com/showthread.ph...9&page=1&pp=20

El_Metallick 24/07/2005 10:13

Sobre componentes para el envio de emails:Aquí les dejo un resumen de la codificación de los diversos componentes de envío de email.

Componente "CDONTS"
'Si lo usas en IIS (CDONTS object)
Código:

Set msMail = CreateObject("CDONTS.NewMail")
With msMail
.BodyFormat = 0 'Set to 0 for HTML email, 1 for plain text.
.MailFormat = 0 'Set to 0 for HTML email, 1 for plain text.
.To = strTo
.From = strFromName & " <" & strFromAddress & ">"
.Subject = strSubject
.Body = strMessage
.Send
End With

Componente "CDOSYS"
'Si lo usas en IIS's (CDO object):
Código:

Dim conf
Set conf = Server.CreateObject("CDO.Configuration")
With conf.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strHost
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Update
End With
 
Set msMail = Server.CreateObject("CDO.Message")
With msMail
Set .Configuration = conf
.From = strFromName & " <" & strFromAddress & ">"
.To = strTo
.Subject = strSubject
.HTMLBody = strMessage
.Send
End With

Componente "AspMail"
'Si usas AspMail (http://www.serverobjects.com/)
Código:

Set msMail = Server.CreateObject("SMTPsvg.Mailer")
With msMail
.ContentType = "text/html"
.RemoteHost = strHost
.FromName = strFromName
.FromAddress = strFromAddress
.AddRecipient "", strTo
.Subject = strSubject
.BodyText = strMessage
.SendMail
End With

Componente "AspEmail"
'Si usas AspEmail 5.0 (http://www.aspemail.com/):
Código:

Set msMail = Server.CreateObject("Persits.MailSender")
With msMail
.Host = strHost
.From = strFromAddress
.FromName = strFromName
.AddAddress strTo
.Subject = strSubject
.Body = strMessage
.IsHTML = True
.Send
End With

Componente "Geocel"
'Si usas Geocel DevMailer 1.5 (http://www.geocel.com/):
Código:

Set msMail = Server.CreateObject("Geocel.Mailer")
With msMail
.AddServer strHost, 25
.FromAddress = strFromAddress
.FromName = strFromName
.AddRecipient strTo, ""
.Subject = strSubject
.Body = strMessage
.ContentType = "text/html"
.LogLevel = 4
.LogFile = "c:\temp\emailcoms\geocel.log"
.Send
End With

Componente "JMail"
'Si usas JMail (http://tech.dimac.net/)
Código:

Set msMail = Server.CreateOBject("JMail.Message")
With msMail
.From = strFromAddress
.FromName = strFromName
.AddRecipient strTo
.Subject = strSubject
.HTMLBody = strMessage
.Send(strHost)
End With

Componente "DynuEmail"
'Si usas DynuEmail (http://www.dynu.com/)
Código:

Set msMail = Server.CreateObject("Dynu.Email")
With msMail
.Host = strHost
.IsHTML = True
.From = strFromAddress
.FromName = strFromName
.AddAddress strTo
.Subject = strSubject
.Body = strMessage
.Send()
End With

Componente "EasyMail"
'Si usas EasyMail 5 (http://www.easymailobjects.com/)
Código:

Set msMail = Server.CreateObject("EasyMail.SMTP.5")
With msMail
.MailServer = strHost
.BodyFormat = 1 'For HTML
.FromAddr = strFromAddress
.AddRecipient "", strTo, 1
.Subject = strSubject
.Send()
End With

Componente "SA-SMTPMail"
'Si usas SA-SMTPMAIL (http://www.aspstudio.com/)
Código:

Set msMail = Server.CreateObject("SoftArtisans.SMTPMail")
With msMail
.RemoteHost = strHost
.FromAddress = strFromAddress
.FromName = strFromName
.AddRecipient strTo
.Subject = strSubject
.HTMLText = strMessage
.Wordwrap = True
.SendMail
End With

Componente "ocxQmail"
'Si usas ocxQmail (http://www.flicks.com/ocxQmail)
Código:

Set msMail = Server.CreateObject("ocxQmail.ocxQmailCtrl.1")
msMail.XHeader "Content-Type", "text/html; charset=""iso-8859-1"""
msMail.Q strHost, strFromName, strFromAddress, "", "", strTo, "", "", "", strSubject, strMessage
End Select

Saludos

mariano_donati 24/07/2005 15:53

¿Cómo pasar variables de ASP a FLASH?
 
Flash buscará este formato:

Response.Write("&variable1=valor&variable2=valor&variable3=valor&")

El inicio y fin de la cadena deben ser con "&", y cada variable debe estar separada utilizando el mismo simbolo.
Si el texto no es estático, y necesitas concatenar cadenas, entonces debes seguir el mismo formato, pero para que funcione correctamente tenés que ejecutar la película flash en el servidor, de otra forma no se mostrarán los valores.


La zona horaria es GMT -6. Ahora son las 12:14.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.