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/)

Mithrandir 26/09/2005 14:46

Otro más para subir archivos
 
Decidí colocar esta clase porque es lejos, la mejor función que he encontrado para subir archivos.

Es robusta y flexible mientras el resto de lo que encuentro son scripts que medio funcionan.

http://www.aspemporium.com/codelib.aspx?pid=139&cid=4

AlZuwaga 07/11/2005 17:54

Para "solucionar"* el Error 500, error interno del servidor:

1- En su Internet Explorer, vaya al menú "Herramientas -> Opciones de internet -> Opciones avanzadas" y desmarque "Mostrar mensajes descriptivos de los errores http". Luego intente acceder nuevamente a su página.

2- Mejor deje de usar esa cosa llamada Internet Explorer y beneficiese usando Firefox.

*En realidad no se soluciona nada, sino que se hace posible enterarnos sobre el ERROR REAL

ositobad4 03/12/2005 11:32

Solucion A Este Error
 
SOLUCION REAL PARA ERRORES:


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.


Microsoft
JET Database Engine (0x80004005). Error Desconocido.


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x6cc Thread 0x78c DBC 0x144cfc4 Jet'.


Deben darles permiso, contro total a la carpta donde tiene su sitio ejemplo c:\inetpub\wwwroot\misitio, al usuario: IUSR_Nombre_Equipo, puede ser a la carpeta como a la base de datos. generalmente todos hacen esto y siguen con el problema como a mi pero busque por ahi la solcuion y es que tambien deben darle los mismos permisos, control total a la carpeta TEMP de su equipo (esto yo no lo sabia lo hize y solucione todos mis problemas) y tambien al usuario IUSR_Nombre_Equipo si no llegase a estar lo agregan..


Saludos....a mi me paso esto, lleve dias sin resolverlo y lo hize.

Saludos desde chile
AlejandRO

JuanRAPerez 08/12/2005 11:26

sonar musica continua (tipo radio) en asp
 
no se si lo borraran o lo moveran, pero esto yo me andube dando como loco y no encontre en ningun lugar como hacerlo.

Problema: tenia que montar musica navideña par la musica, pero de una forma continua, para que la gente de mi intranet pudiera tener acceso a ella, existian un par de cosas que resolver, por ejemplo, no poner los audios en buena calidad y evitar distociones y sobre todo trafico innecesario en la intranet.

solucion:
Descargue una aplicacion hecha en PHP que alguien puso el codigo para asp y es del que voy a hablar en adelante.

Descargar de: http://www.radioblogclub.com/
es una pequeña animación flas que reproduce canciones en formato *.rbs

en la misma aplicación viene el convertidor de MP3 a RBS (facilisimo de usar), el cual baja audios de 5 megas en 900kb y con calidad buena de audio.

lo copie en mi sitio web, y solo tuve que agregar en tipos MIME las extensiones rbs
Directorio /radio.blog/

para esto te vas al IIS
propiedades del sitio
encabezados HTTP
tipos de archivo
nuevo
estension asociada: .rbs
MIME: application/octet-stream

listo

luego en el raiz de /radio.blog/
copie el siguiente asp

default.asp
Cita:

<html>
<head>
<title>RADIO.BLOG</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#3,0,0,0" width="220" height="300">
<param name="src" value="radioblog.swf?autoplay=<% = request("autoplay") %>">
<param name="quality" value="high">
<embed src="radioblog.swf?autoplay=<% = request("autoplay") %>" type="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" width="220" height="300">
</object><br>


</body>
</html>

copie los audios preparados en
/radio.blog/sound

y dentro de el el siguiente asp

playlist.asp

Cita:

<%

CONST FILE_EXT = ".rbs"

dim path
dim oXml, oNodeTrk
dim oFso, oFld, oFile

path = server.mappath(".")

set oFso = server.createObject("Scripting.FileSystemObject")
set oFld = oFso.getFolder(path)


set oXml = server.createobject("MSXML2.DOMDocument")
oXML.async=false

set oXML.documentElement = oXML.createElement("tracks")

for each oFile in oFld.files

if right(oFile.name, 4) = FILE_EXT then

set oNodeTrk = oXml.createElement("track")
oXML.documentElement.appendChild oNodeTrk

oNodeTrk.setAttribute "trackMod", dateDiff("s", cdate("1970-01-01"), oFile.DateLastModified)
oNodeTrk.setAttribute "title", left(oFile.name, len(oFile.name)-4)
oNodeTrk.setAttribute "path", oFld.name &"/"& oFile.name

set oNodeTrk = nothing

end if

next

'response.contentType = "text/xml"

response.write "<?xml version=""1.0"" encoding=""UTF-8""?>"
response.write oXml.xml

set oXml = nothing
set oFso = nothing

%>
listo solo necesitas probarlo
para auto play tendias que poner en tu navegador

default.asp?autoplay=1

archivos necesarios
config.xml - cambia la apariencia de colores del reproductor
radioblog.swf - reproductor de audios
rbcore.swf -

los dos asp anteriores

suerte
si quieren probarlo
entren a :

http://juanra.cybercentro.com.sv/nav...asp?autoplay=1

jijiji esperando les sirva y que el enlace no lo haya removido para proximos años

saludos

editado:
ojo la musica en rbs no deve de llevar caracteres extraños
ni eñes ni tildes, ni otro caracter, porque eso hace errores en el barrido de el asp playlist

gorka_arai 02/03/2006 10:03

Paginar resultados
 
¿Cómo muestro mis resultados por páginas? Lo que se llama "paginación de resultados"...

He akí una manera de paginar tus resultados para dar un toque "pofesional" a tu web: :-D

Este código debe ir en una página que se llame "Paginar.asp":
Código:

<HTML>
<BODY>
<%
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
dim strsql 'Consulta sql

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

' IF para saber que página mostrar
if request("page")="" then
pagina_actual = 1
Else
pagina_actual = CInt(Request.QueryString("page"))
End If
'Conexión con la BD
dim conex,reg,sql,usuario
set conex=server.CreateObject("ADODB.Connection")
set reg=server.CreateObject("ADODB.Recordset")
conex.ConnectionString="provider=microsoft.jet.oledb.4.0; data source=" & server.MapPath("Nombre_de_tu_base.mdb")
conex.Open
sql="select * from tabla where Nombre_campo_tabla=" & nom_variable & ""
reg.Open sql,conex,3,2
' Creamos el RecordSet y definimos la cantidad de registros a mostrar
reg.PageSize = mostrar
reg.CacheSize = mostrar
'contamos las páginas que se formaron con la variable mostrar.
cant_paginas = reg.PageCount
' Si el pedido de página cae fuera del rango,
' lo modificamos para que caiga dentro
If pagina_actual > cant_paginas Then pagina_actual = cant_paginas
If pagina_actual < 1 Then pagina_actual = 1

' Si la cantidad de páginas da 0 es que no hay registros... por eso este IF
If cant_paginas = 0 Then%>
        <%Response.Write("NO HAY REGISTROS")%>
<%Else
' Nos movemos a la página elegida
reg.AbsolutePage = pagina_actual
' Mostramos el dato de que página estamos...
%>
<FONT face=Arial><FONT>
<FONT SIZE="+1">Página <B><%= pagina_actual %></B> de <B><%= cant_paginas %></B></FONT>
<%
' Espacios
Response.Write "<BR><BR>" & vbCrLf
'iniciamos la tabla donde mostraremos todo
Response.Write "<TABLE BORDER=""1"" width=""300"" bordercolor=""black"">" & vbCrLf%>
<tr bgcolor=red>
                                <th colspan=20><FONT face=Arial size=2><STRONG><FONT color=ivory> TITULO TABLA</STRONG></FONT></FONT></th>
                        </tr><br>
<%' Mostramos los titulos de las columnas... (pueden sacar ese FOR para eliminar eso)
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To reg.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD><B><FONT face=Arial size=2 color=mediumblue>"
Response.Write reg.Fields(I).Name
Response.Write "<B></TD></FONT>" & vbCrLf
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf

' Hacemos el bucle mostrando los datos del registro
registro_mostrado = 0
Do While registro_mostrado < mostrar And Not reg.EOF
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To reg.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD>"
Response.Write reg.Fields(I)
Response.Write "</TD>" & vbCrLf
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf

' Sumamos 1 a los mostrados
registro_mostrado = registro_mostrado + 1
' Nos movemos al próximo registro...
reg.MoveNext
Loop

'listo...
Response.Write "</TABLE>" & vbCrLf
End If

' Cerramos y limpiamos...
reg.Close
Set reg = Nothing
conex.Close
Set conex = Nothing

' Ahora mostramos los enlaces a las otras páginas con el resto de los registros...
If pagina_actual > 1 Then
%>
</FONT></FONT>
<A href="./paginar.asp?eje=30&amp;page=<%= pagina_actual - 1 %>" ><FONT
face=Arial>[&lt;&lt; Anterior]</FONT> </a>
<%
End If

' mostramos la paginacion por numeros de página
For I = 1 To cant_paginas
If I = pagina_actual Then
%>
<%= I %>
<%
Else
%>
<FONT face=Arial> </FONT>
<A href="./paginar.asp?eje=30&amp;page=<%= I %>" ><%= I %></a>
<%
End If
Next 'I

If pagina_actual < cant_paginas Then
%>
<A href="./paginar.asp?eje=30&amp;page=<%= pagina_actual + 1 %>" ><FONT
face=Arial>[Próximo &gt;&gt;]</FONT ></a>
<%
End If
'Fin...
%>
%>
<form action="Paginar.asp" method="post" name="form332" id="form332">
        <input type="hidden" name="page" value="<%=pagina_actual%>">
        <p><input type="submit" value="VOLVER" name="cmd_volver"></p>
</form>
<%
</BODY>
</HTML>


Dorita 07/03/2006 15:24

3 Select Dependientes con datos de una Bd que funciona Ok
 
Código:


Página Index.asp:


<form name="frm1" method="post" action="guardar.asp">

<select name="lstProc" class="caja" onChange="location.href='Index.asp?IdProcedimiento=' +
                                        frm1.lstProc.options[frm1.lstProc.selectedIndex].value"> 
                                <option value="0">Seleccione Tipo Proc.</option>                                                                                                                 
<%                                        Sql = "SELECT codTipoProc, tipoProc FROM TblTipoProcedimientoExpress"
                                        Rst.Open Sql, Con                                                                                                                 
               
                                        Procedimiento = Request.QueryString("IdProcedimiento")
                                                                               
                                        Do While Not Rst.EOF
                                                codTipoProc = Trim(Rst("CodTipoProc"))
                                                TipoProc = Trim(Rst("TipoProc"))
                                               
                                                If Procedimiento <> "" Then
                                                        If (CInt(Procedimiento) = CInt(codTipoProc)) Then %>
                                                                <option value="<%=codTipoProc%>" selected><%=TipoProc%></option>
<%                                                        Else %>
                                                                <option value="<%=codTipoProc%>"><%=TipoProc%></option>
<%                                                        End If%>                                                               
<%                                                Else %>                                               
                                                        <option value="<%=codTipoProc%>"><%=TipoProc%></option>
<%                                                End If                                                                       
                                               
                                                Rst.Movenext
                                        Loop
                                       
                                        Rst.Close %>
            </select>                       
                        </td>
                        <td>                                               
                        <select name="lstPlataforma" onChange="location.href='Index.asp?IdPlataforma=' + 
                                frm1.lstPlataforma.options[frm1.lstPlataforma.selectedIndex].value + '&IdProcedimiento='+ frm1.lstProc.options[frm1.lstProc.selectedIndex].value"> 
                                <option value="0">Seleccione Plataforma</option>
<%                                If Request.QueryString("IdProcedimiento") <> "" Then %>                                       
                                       
<%                                        idProced = CInt(Request.QueryString("IdProcedimiento"))
                                        idPlataforma = CInt(Request.QueryString("IdPlataforma"))
                                       
                                        Sql = "SELECT codTipoPlataforma, NombrePlataforma FROM TblSistemaProcExpressPlataforma WHERE codTipoProc = "&idProced&";"                                       
                                        Rst.Open Sql, Con
                                       
                                        Do While Not Rst.EOF
                                       
                                                codTipoPlataforma = Trim(Rst("codTipoPlataforma"))
                                                NombrePlataforma = Trim(Rst("NombrePlataforma"))
                                               
                                                If idPlataforma <> "" Then
                                                        If (CInt(idPlataforma) = CInt(codTipoPlataforma)) Then %>
                                                                <option value="<%=codTipoPlataforma%>" selected><%=NombrePlataforma%></option>
<%                                                        Else %>
                                                                <option value="<%=codTipoPlataforma%>"><%=NombrePlataforma%></option>
<%                                                        End If%>                                                               
<%                                                Else %>                                               
                                                        <option value="<%=codTipoPlataforma%>"><%=NombrePlataforma%></option>
<%                                                End If        %>                                                                                                                                                       
<%                                                Rst.Movenext
                                        Loop
                                        Rst.Close                                       
                                End If %>                               
            </select>                       
                        </td>
                </tr>               
          <tr>
            <td>Momento</td>
            <td>                       

                        <select name="lstMomento"> 
                                <option value="0">Seleccione momento</option>
<%                                If Request.QueryString("IdPlataforma") <> "" Then %>                                       
                                       
<%                                        idPlataforma = CInt(Request.QueryString("IdPlataforma"))
                                       
                                       
                                        Sql = "SELECT CodigoMomento, NombreMomento FROM TblSistemaProcExpressMomento WHERE codTipoPlataforma = "&idPlataforma&";"                                       
                                        Rst.Open Sql, Con
                                       
                                        Do While Not Rst.EOF
                                       
                                                codigoMomento = Trim(Rst("CodigoMomento"))
                                                NombreMomento = Trim(Rst("NombreMomento")) %>       
                                               
                                                <option value="<%=codigoMomento%>"><%=NombreMomento%></option>
                                               
<%                                                Rst.Movenext
                                        Loop
                                        Rst.Close                                       
                                End If %>                               
            </select>

</form>


sjam7 24/03/2006 12:22

Contar Registros En Mysql
 
No se si ya este pero no lo encontre, para poder contar los registros en ACCESS pues usamos algo asi:

Código:

SQL="Select * From TABLA"
RS.Open SQL, oConn,1,1

cuantos=RS.RecordCount

En MySQL esto no funciona, siempre dara como resultado -1, pero si agregamos esta linea:
RS.CursorLocation = 3

antes del RS.Open...

WALAA:arriba:

JuanRAPerez 04/09/2006 18:15

html y sql injection - no insertar
 
hay varias funciones en las faq para limpiar cadenas y evitar html y sql injection... una mas que encontre fuera del foro y que creo que les servira (si ya esta publicada aqui no la vi)


funcion
Cita:

<%
Function Caracteres_Ilegales(stringEntrada)

Dim stringCaracteresMalos, iCounter

Caracteres_Ilegales = False

stringCaracteresMalos = array("http://", "<h1>", "url", "link=", "[h1]", "[a]", "[href]")

For iCounter = 0 to uBound(stringCaracteresMalos)

If Instr(stringEntrada,stringCaracteresMalos(iCounter ))>0 Then
Caracteres_Ilegales = True
End If
Next
End function
%>
uso
Cita:

If Caracteres_Ilegales(comentario) = True OR Caracteres_Ilegales(email) = True Then
response.redirect("enegado_publicacion.asp")
End If
fuente
http://www.thescripts.com/forum/thread513587.html

espero le sirva a alguien como a mi...
en mi caso en lugar de response.redirect puse
publciar = "pendiente"

asi mando un mail al administrador del sitio con ese post para un libro de visitas que requeire de su aprobacion o eliminacion si fuese publicidad.

suerte

Boxmaster 11/10/2006 09:17

Saludos, les dejo este vinculo que describe la forma de subir imagenes al servidor y al mismo tiempo agregarlas (path de la imagen) a una db MySQL.

http://www.forosdelweb.com/f15/subir-imagenes-servidor-baja-todo-codigo-completo-coemntado-431929/

Espero sea de ayuda para aquellos compañeros que deseen tener una idea mas amplia de como hacerlo, y para los que ya saben y deseen aporta mas soluciones e ideas con gusto recibire sus comentarios.

Myakire 27/12/2006 13:01

25 Tips para mejorrar el rendimiento de las páginas ASP
 
El contenido de este link es muy interesante

http://www.microsoft.com/technet/pro...ips.mspx#EOMAC

Anita123 12/04/2007 02:26

Re: Las FAQ's del foro de ASP
 
También se pueden seleccionar directamente rangos indicando las cela superior izquierda e inferior derecha:

"Select * From A4:IV65536"

Shiryu_Libra 11/05/2007 18:15

Re: FAQ's del foro de ASP
 
Compañeros, ultimamente hemos tenido muchas preguntas sobre CDOSYS, asi que encontre este enlace que espero les sea de mucha ayuda.

Utilizar SMTP para los mensajes salientes

explica:
  1. Funcionamiento
  2. Configuracion para Windows 2000
  3. Comprobar el servicio
  4. Ejemplos de Prueba
Suerte:arriba:

darkmcloud 08/11/2007 21:11

Re: FAQ's del foro de ASP
 
No se si sera un gran aporte.....pero comparto con todos ustedes un BUSCADOR MULTIPLE con distintos criterios de busqueda:

Cita:

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<FORM ACTION='Validar.asp' METHOD='GET' id=form1 name=form1>
</HEAD>
<body bgcolor="#FFCC66" background="2.jpg" text="BLACK" link="BLACK" vlink="BLACK" alink="BLACK">
<%


dim dbConn

'aca recibo los campos que voy a realizar la busqueda
'si quieren agregar mas.....simplemente los agregan aca y despues en las variables

csr = Request.form("csr")
distribuidor = Request.form("distribuidor")
estado = Request.form("estado")

On Error Resume next

'declaro las variables a utilizar incluyendo la se_encuentra
Dim Rs, Cnn, SQL, se_encuentra
set Cnn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
Cnn.Open Session("cnx")

'ejecuto la consulta
strSQL="SELECT * FROM tblcliente"
se_encuentra = False
if csr <> "" then
strSQL=strSQL & " WHERE csr LIKE '%"&csr&"%'"
se_encuentra=True
end if


'la variable se_encuentra se inicializa en falso y se cambia a verdadero si el campo trae un valor ingresado

if distribuidor <> "" then
if se_encuentra then
strSQL=strSQL & " AND distribuidor LIKE '%"&distribuidor&"%'"
else
strSQL=strSQL & " WHERE distribuidor LIKE '%"&distribuidor&"%'"
se_encuentra=True
end if
end if

if estado <> "" then
if se_encuentra then
strSQL=strSQL & " AND estado LIKE '%"&estado&"%'"
else
strSQL=strSQL & " WHERE estado LIKE '%"&estado&"%'"
se_encuentra=True
end if
end if
'abrimos la tabla para llamar los registros
set rs = Cnn.Execute(strSQL)

cnn.Execute(strSQL)

if rs.EOF then
Response.Write("No existe el campo ingresado, verifique los datos")
else %>
'si encuentra los datos, mostramos los resultados
<CENTER>
<TABLE WIDTH=2000 BORDER=1 align="center" CELLSPACING="0">
<tr> <td width=80 bordercolor="#F0F0F0"bgcolor="ORANGE"><center><b>C sr</b></center>
<td width=100 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Local</b></center>
<td width=99 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Guia De Despacho</b></center>
<td width=134 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Distribuidor</b></center>
<td width=102 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Fecha Ingreso</b></center>
<td width=160 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Artefacto</b></center>
<td width=100 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Serie</b></center>
<td width=80 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Estado</b></center>
</tr> </table> </CENTER>

<%do while not rs.EOF%>

<center>
<TABLE BORDER=1 CELLSPACING="0" WIDTH=2000>
<tr>
<%Response.Write "<td WIDTH=80 align='center' >"&rs("csr")&"<td WIDTH=100 align='center'>"&rs("loc")&"<td WIDTH=99 align='center'>"&rs("guia_d")&"<td WIDTH=134 align='center'>"&rs("distribuidor")&"<td WIDTH=102 align='center'>"&rs("fecha_in")&"<td WIDTH=160 align='center' >"&rs("artefacto")&"<td WIDTH=100 align='center' >"&rs("serie")&"<td WIDTH=80 align='center' >"&rs("estado")%>
<br> </tr>
<%rs.Movenext%>
</table></center>
<%loop

end if


rs.Close

set rs = nothing

Cnn.Close

set oCnn = nothing

%>
<br> <br> <font face="Verdana">
<h3> <center> <a href="../menu.asp">Volver</a> </center> </h3>
</font>
</body>
</html>
espero que les sirva

Shiryu_Libra 03/02/2008 11:39

Re: FAQ's del foro de ASP
 
Version ilustrada

Pregunta: Como otorgo permisos de escritura??? Cual es el procedimiento??

Primero que nada, debemos entrar a las opciones de carpeta dentro del menu Herramientas, para activar nuestra pestaña de seguridad
http://img5.imageshack.us/img5/4238/paso1z.jpg

el siguiente paso sera desmarcar donde dice "Utilizar uso compartido simple de archivos"

eso de recomendado como que no..... :no:
http://img5.imageshack.us/img5/9486/paso2m.jpg


una ves realizado este segundo paso, damos aceptar, y regresamos a la carpeta que nos interesa
http://img5.imageshack.us/img5/5108/paso3u.jpg


ya una ves que demos click sobre las propiedades de la carpeta, aparecera ahora si nuestra pestaña de seguridad, donde estableceremos a que usuario y que privilegios tendran dentro de esta carpeta.... las ilustraciones a continuacion estaran numeradas para realizar el procedimiento sencillo..
http://img27.imageshack.us/img27/4679/paso4ngl.jpg

http://img27.imageshack.us/img27/1053/paso5w.jpg

http://img27.imageshack.us/img27/870/paso6r.jpg

http://img27.imageshack.us/img27/9356/paso7pre.jpg

http://img27.imageshack.us/img27/4579/paso8i.jpg

http://img27.imageshack.us/img27/1588/paso9q.jpg


una ves establecidos los privilegios que tendra cada uno de nuestros usuarios en esa carpeta especifica, podran o no, escribir o leer el contenido

nota aclaratoria:..a pesar que esta actividad es para que nuestras paginas ASP funcionen correctamente, tambien dentro del uso normal de nuestro sistema, podran mantener en privado o sin acceso a ella, a otros usuarios

tambien deben recordar que cualquier administrador podra quitar esos atributos


:adios:

JuanRAPerez 21/04/2008 11:04

Microsoft OLE DB Provider for ODBC Drivers error '80004005' Error de disco o de red.
 
Bueno, dejo esto aquí porque me ha dado líos encontrar la respuesta y quizás a alguien le sirva mas adelante.

error es:
Cita:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][Controlador ODBC Microsoft Access] Error de disco o de red.

/demos/07102/include/ConectorBaseDatos.asp, línea 5

El escenario es:
+ Windows Vista
+ IIS 7
+ ASP 3.0
+ Conexión a base de datos access funcionando perfectamente en otra pc.

Solución:

Buscar en la siguiente ruta
C:\Windows\System32\inetsrv\config

archivo llamado:
ApplicationHost.Config

Cambiar las siguientes lineas
Cita:

<applicationPoolDefaults>
<processModel identityType="NetworkService" />
</applicationPoolDefaults>
por

Cita:

<applicationPoolDefaults>
<processModel identityType="NetworkService" loadUserProfile="false" />
</applicationPoolDefaults>
ni idea de porque pero ya funciona

suerte

Shiryu_Libra 30/05/2008 13:41

Respuesta: FAQ's del foro de ASP
 
Version Ilustrada

Pregunta: Como puedo mostrar errores descriptivos desde la consola de IIS7 en Windows Vista (referencias de imagenes desde un Vista Ultimate)

Los tipicos 3 pasos de rigor (solo para usuarios que apenas incursionan en esto), que debemos hacer

Otro atajo, es dar Click derecho sobre EQUIPO, Administrar

NOTA: si ya sabes llegar, omite estos 3 pasos, y brinca directamente al paso 4
Paso1

http://mx.geocities.com/saintseiya_shiryu/paso1.jpghttp://img5.imageshack.us/img5/4618/paso1m.jpg

Paso 2
buscaremos dentro del PANEL DE CONTROL

HERRAMIENTAS ADMINISTRATIVAS

http://mx.geocities.com/saintseiya_shiryu/paso2.jpghttp://img5.imageshack.us/img5/8501/paso2y.jpg

Paso 3

Seleccionaremos "Administrador de INTERNET INFORMATION SERVICES (IIS)"

http://mx.geocities.com/saintseiya_shiryu/paso3.jpghttp://img17.imageshack.us/img17/4227/paso3g.jpg

Paso 4
Desplegaremos hasta seleccionar "Default Web Site", o en su caso respectivo el sitio web que deseen

http://mx.geocities.com/saintseiya_shiryu/paso4.jpghttp://img17.imageshack.us/img17/5259/paso4f.jpg

Paso 5

Daremos doble click sobre "Paginas de Errores"

http://mx.geocities.com/saintseiya_shiryu/paso5.jpghttp://img17.imageshack.us/img17/5084/paso5.jpg

Paso 6

En el panel derecho se encontrara una leyenda que dice
"MODIFICAR CONFIGURACION DE CARACTERISTICA..."

http://mx.geocities.com/saintseiya_shiryu/paso6.jpghttp://img17.imageshack.us/img17/5403/paso6d.jpg

Paso 7

por default, tiene activada "Errores detallados para solicitudes locales y paginas de errores personalizados para solicitudes remotas"

sean cautelozos en este sentido

http://mx.geocities.com/saintseiya_shiryu/paso7.jpghttp://img5.imageshack.us/img5/1039/paso7b.jpg


NOTA: significa que si ejecutamos en el entorno 127.0.0.1 o si estamos haciendo pruebas dentro del mismo pc, nos mostrara completamente el error, dando el numero de linea.. etc

pero si lo hacemos utilizando un segundo equipo dentro de nuestra red, no dara ningun detalle

sean concientes que si esto es para una web interna, no habra tanto problema, pero si activan esta caracteristica para un web de consulta externa(internet), podria ser un riesgo de seguridad

ya que estariamos dando armas para romper el codigo:adios:

Adler 12/11/2008 08:03

Respuesta: Obtener la id del registro recien creado
 
Aquí lo tenemos para Sql Server y Acess

txoandi 13/11/2008 13:07

FAQ's del foro de ASP
 
http://cheeso.members.winisp.net/IIRF.aspx

Que conste que ni conozco a los creadores y que esto no es Spam de ningún tipo.

Hace algún tiempo ya escribi sobre otra aplicación similar:
http://www.forosdelweb.com/f91/duda-sobre-urls-amigables-615181/
Que conseguía que urls de este estilo
http://misitio.com/catologo.asp?seccion=seccion1&busqueda=palabra_a_b uscar&otravariabe=pedocacapis
Se parecieran a esta:
http://misitio.com/catologo.asp/seccion=1/catalogo=catalogo2/otravariabe=pedocacapis/


Pero utilizando el IIRPF y configurándolo se puede gastar como si del module Rewrite del apache se tratara.
Y en lugar de gastar un .htacces es editando el IsapiRewrite4.ini

El metodo de instalacion es sencillo:

Servicios de Internet Information Server -> Servicios Web -> Propiedades ->
Filtros ISAPI -> Agregar -> Examinar .. > Elegir el IsapiRewrite4.dll

En el mismo directorio de IsapiRewrite4.dll colocar el IsapiRewrite4.dll
Ejemplo:
http://img220.imageshack.us/img220/9264/iisqw8.th.jpghttp://img220.imageshack.us/images/thpix.gif
Url imagen en grande:http://img220.imageshack.us/my.php?image=iisqw8.jpg


Aqui teneis un ejemplo de configuracion (Archivo IsapiRewrite4.ini):
Código PHP:

# IsapiRewrite4.ini

RewriteEngine On

RewriteCond 
%{HTTP_URL}             (/|.htm|.asp|.html|/[^.]*)$   
RewriteCond %{REQUEST_FILENAME}     !-f
RewriteCond 
%{REQUEST_FILENAME}     !-d

RewriteRule 
/catalogo/(.*)  /catalogo/index.asp?$[L]
RewriteRule /agenda/(.*)  /agenda/index.asp?$[L

Con esta configuracion se pueden lograr urls del estilo de:

http://misitio.com/catologo/lavadora-siemens-WM12S740EE.htm
http://misitio.com/catologo/lavadora/siemens/WM12S740EE/
http://misitio.com/agemda/2008/11/14/
http://misitio.com/agemda/2008-11-14.htm
http://misitio.com/agemda/2008-noviembre-14.htm


Y así cuantos ejemplos queráis .


Cuando os lo descarguéis el IIRPF veréis que hay muchos archivos de configuración de ejemplo.


Ya no hay excusas para no tener URL's Amigables :si:

Saludos!

NA1TM3R 02/12/2008 12:44

FAQ's del foro de ASP
 
Saludos!
Hoy ando por aquí listo para una aportación :si: . . .

Seguramente alguna vez has necesitado una diferencia de horas, minutos ó simples segundos, lo malo es que si lo hicieramos de la forma tradicional nos saldría algo mas ó menos así:

1 hora 0 minutos 4933 segundos

Lo cuál no es el resultado esperado no es verdad?

Con el siguiente código pueden por fin hacer su pequeño contador hehehe . . . espero les sirva . . .

Código:

fini = "FECHA INICIAL"
fact = Now()
  segundosonline = DateDiff("s", fini, fact)
  minutosonline = Int(segundosonline/60)
  horasonline = Int(minutosonline/60)
  minutosmod = minutosonline Mod 60
  segundosmod = segundosonline Mod 60 Mod 60 Mod 60
  If(minutosmod<10) Then minutosmod ="0"&minutosmod End If
  If(segundosmod<10) Then segundosmod ="0"&segundosmod End If

  If segundosonline < 60 Then
      tiempo = segundosonline&" segundos"
  ElseIf segundosonline > 60 And segundosonline < 3600 Then
      tiempo = minutosmod&":"&segundosmod&" minutos"
  Else     
      tiempo = horasonline&":"&minutosmod&":"&segundosmod&" horas"
  End If

Lo cuál nos daría algo como:

1:24:03 horas

Fácil y rápido . . .

Hasta la proxima ! ! !

Adler 29/12/2008 15:30

Respuesta: FAQ's del foro de ASP
 
Valorar el trabajo de un usuario (haciendo algunos cambios podemos valorar un solo tema, video, etc..)

+ Campos de la tabla con los que trabajamos
- Usuario --> Texto / Nombre del usuario cuyo articulo ha sido puntuado
- Reconocimiento --> Numerico / Cantidad de puntos que tiene el usuario que intenta puntuar el articulo
- Kien_Reconoce --> Texto / Nombre de los usuarios que han puntuado el articulo


mostrartemas.asp

Código HTML:

<a id="<%=autonumerico_del_articulo%>" onclick="return false" href="./mostrartemas.asp">Reconocimiento</a>
<script type="text/javascript">
  Evento(document.getElementById('<%=autonumerico_del_articulo%>'),'click',function() {
      PuntarArticulo('<%=autor_articulo%>', '<%=nombre_usuario_da_puntos%>');
})   
</script>

reconocimiento.asp

Código asp:
Ver original
  1. Dim usuapuntuar, usukpuntua, PuntosaOtorgar, reconocedores, kienson, i, otroReconocedor
  2. usuapuntuar = Request.QueryString("akien")
  3. usukpuntua = Request.QueryString("dkien")
  4.  
  5. SQL="Select Usuario, Reconocimiento FROM tabla WHERE Usuario = '"&usukpuntua&"'" ' Sacamos la puntuación que tiene el usuario que quiere puntar el articulo
  6.  
  7. cant_reconocimiento = CInt(rs1.Fields("Reconocimiento"))
  8.  
  9. ' ============= Puntos que puede otorgar el usuario que intenta puntuar el articulo, deacuerdo con su reconociemiento hasta el momento =============
  10. if cant_reconocimiento =< 9 Then
  11. PuntosaOtorgar = 1
  12. elseif cant_reconocimiento >= 10 and cant_reconocimiento =< 19 Then
  13. PuntosaOtorgar = 2
  14. elseif cant_reconocimiento >= 20 and cant_reconocimiento =< 29 Then
  15. PuntosaOtorgar = 3
  16. elseif cant_reconocimiento >= 30 and cant_reconocimiento =< 39 Then
  17. PuntosaOtorgar = 4
  18. elseif cant_reconocimiento >= 40 and cant_reconocimiento =< 49 Then
  19. PuntosaOtorgar = 5
  20. else
  21. PuntosaOtorgar = 6
  22. end if
  23. ' ===============================================
  24.  
  25. SQL="Select Usuario, Kien_Reconoce FROM tabla WHERE Usuario = '"&usuapuntuar&"'" ' Kienes le han otorgado puntos a este usuario
  26.  
  27. reconocedores = rs2.Fields("Kien_Reconoce")
  28.  
  29. if reconocedores <> "" Then ' Si no es el primer usuario en puntuar el tema
  30. kienson = Split(reconocedores, ",")
  31. For i = 0 To UBound(kienson)
  32. If kienson(i) = usukpuntua AND i =< 2 Then ' No hay 3 nuevos reconocedores entre la última vez que este usuario puntuó el articulo y ahora
  33. Response.Write usukpuntua & escape(", desde la última vez que reconociestes el esfuerzo de ") & usuapuntuar & escape(", nadie más se lo ha reconcido. Así que tendrás que esperar hasta que otro usuario lo haga.")
  34. Response.End ()
  35. Exit For
  36. End If
  37. Next
  38. otroReconocedor =  usukpuntua & "," & reconocedores
  39. else
  40. otroReconocedor =  usukpuntua
  41. end if
  42.  
  43. SQL="UPDATE tabla SET Reconocimiento = Reconocimiento + "&PuntosaOtorgar&" , Kien_Reconoce = '"&otroReconocedor&"'  WHERE Usuario = '"&usuapuntuar&"';"
  44. Response.Write usukpuntua & escape(", seguro que ") & usuapuntuar & escape(" te agradece el reconocimento que le acabas de dar por su esfuerzo.")
  45. Response.End ()
  46. %>


reconocimiento.js

Código javascript:
Ver original
  1. function creaAjax(){
  2.     var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  3.     var ajax = false;
  4.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  5.         try{
  6.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  7.         }
  8.         catch(e) {
  9.             ajax = false;
  10.         }
  11.     }
  12.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  13.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  14.     }
  15.     return ajax;
  16. }
  17.  
  18. function PuntarArticulo(ak, dk){
  19. var ajax=creaAjax();
  20. ajax.open ('GET', 'reconocimiento.asp?akien='+ak+'&dkien='+dk, true);
  21. ajax.onreadystatechange = function() {
  22.  
  23.     if (ajax==null){
  24.         alert ("Tu navegador web no soporta AJAX!");
  25.         return;
  26.     }
  27.  
  28.          if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {
  29.                                      
  30.          }
  31.          else if (ajax.readyState==4){
  32.                    if(ajax.status==200){
  33.                                             alert (unescape(ajax.responseText));
  34.                 return;
  35.                    }
  36.                    else if (ajax.status==404)
  37.                                              {
  38.                                             alert ("La dirección no existe");
  39.                 return;
  40.                                              }
  41.                                              else
  42.                                              {
  43.                                              alert ("Error: " + ajax.status);
  44.                 return;
  45.                                              }
  46.                                     }
  47.                   }
  48.          ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  49.          ajax.send(null);
  50.          return
  51. }
  52.  
  53.  
  54. function Evento(elemento,nomevento,funcion)
  55. {
  56.   if (elemento.attachEvent)
  57.   {
  58.       var f=function(){
  59.         funcion.call(elemento,window.event);
  60.     }
  61.     elemento.attachEvent('on'+nomevento,f);
  62.     return true;
  63.   }
  64.   else  
  65.     if (elemento.addEventListener)
  66.     {
  67.       elemento.addEventListener(nomevento,funcion,false);
  68.       return true;
  69.     }
  70.     else
  71.       return false;
  72. }

NA1TM3R 27/10/2009 14:21

Respuesta: FAQ's del foro de ASP
 
Obtener Fecha Límite [sólo días hábiles]

Pequeña función que sirve para cualquier objeto que tenga un máximo de días, claro . . . días hábiles . . .


Código ASP:
Ver original
  1. 'WeekDay arroja para Sábado: 7 y para Domingo: 1
  2.  
  3. Function DiasLab(Fec,Days)
  4.     For x = 1 To Days*2
  5.         MyDate = DateAdd("d",x,Fec)
  6.         If Not(WeekDay(MyDate) = 1 Or WeekDay(MyDate) = 7) Then
  7.             y = y + 1
  8.         End If
  9.         If Not(y = Days) Then
  10.             z = z + 1
  11.         Else
  12.             Exit For
  13.         End If
  14.     Next
  15.     DiasLab = DateAdd("d",z+1,Fec)
  16. End Function
  17.  
  18. Response.Write DiasLab("2009-10-27",8)

Sé que habrá algún método mas complejo por ahí, pero hasta ahorita no lo han compartido :borracho: . . .

Nos seguimos leyendo . . .

Adler 09/01/2010 08:06

Respuesta: FAQ's del foro de ASP
 
He estado revisando y parece que este no está

Saber cuantos años, meses y días hay de diferecia entre dos fechas

Código ASP:
Ver original
  1. Dim fInicio,fFinal,AInicio,AFinal,bis,i,sumadiasBis,segundos,anyos,segundosRestante,meses,dias
  2. fInicio = "09/01/2010"
  3. fFinal = "18/02/2013"
  4. AInicio = 2010
  5. AFinal = 2013
  6. bis = 0
  7.  
  8. ' Comprobamos si hay algún año bisiesto. 86400 segundos es un días
  9. For i = AInicio To AFinal
  10. if i mod 4 = 0 then
  11. bis = bis + 86400
  12. else
  13. bis = bis + 0
  14. end if
  15. Next ' i
  16. sumadiasBis = bis
  17.  
  18. Response.Write "Fecha de Inicio " & fInicio & "<br />Fecha Final " & fFinal & "<br /><br />Restan<br />"
  19.  
  20. ' Calculamos los segundos entre las dos fechas
  21. segundos = DateDiff("s", fInicio, fFinal)
  22.  
  23. anyos = Fix((segundos-sumadiasBis)/31536000)
  24. Response.Write anyos & " a&ntilde;os<br />"
  25. segundosRestante = (segundos-sumadiasBis) mod (31536000)
  26.  
  27. meses = Fix(segundosRestante/2592000)
  28. Response.Write meses & " meses<br />"
  29. segundosRestante = segundosRestante mod 2592000 ' Suma un día mas por cada años bisiesto
  30. ' segundosRestante = (segundosRestante-sumadiasBis) mod 2592000 ' No suma un día mas por cada año bisiesto
  31.  
  32. dias = Fix(segundosRestante/86400)
  33. Response.Write dias & " d&iacute;as"

DanX03 25/01/2010 11:35

Respuesta: FAQ's del foro de ASP
 
Eliminar el contenido total de una carpeta dentro del servidor

Código ASP:
Ver original
  1. set fso=server.CreateObject("Scripting.filesystemobject")
  2.   'si existen las carpetas se eliminan para despues volver a crearlas
  3.   if fso.folderexists(server.MapPath("graficas")) then
  4.     fso.deletefolder(server.MapPath("graficas"))
  5.     set nfolder=fso.createfolder(server.MapPath("graficas"))   
  6.   else
  7.     'caso contrario solo se crean las carpetas
  8.     set nfolder=fso.createfolder(server.MapPath("graficas"))
  9.   end if
  10.  
  11.   if fso.folderexists(server.MapPath("graficas2")) then
  12.     fso.deletefolder(server.MapPath("graficas2"))
  13.     set nfolder=fso.createfolder(server.MapPath("graficas2"))  
  14.   else
  15.     set nfolder=fso.createfolder(server.MapPath("graficas2"))
  16.   end if
  17.  
  18.   set fso=nothing
  19.   set nfolder=nothing

Adler 18/02/2010 07:05

Respuesta: FAQ's del foro de ASP
 
Resaltar las porciones de código que están entre etiquetas

Parecido a lo que hace este foro cuando usamos los highlight

Código ASP:
Ver original
  1. <%@LANGUAGE="VBSCRIPT"%>
  2. <% Option Explicit %>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
  7. <title></title>
  8. <style type="text/css">
  9. .contenedor {
  10. background: #EEEEEE;
  11. border:1px solid rgb(120,120,120);
  12. width:400px;
  13. overflow:auto;
  14. }
  15.  
  16. #lenguaje {
  17. background: orange;
  18. font: 12px verdana;
  19. color: #000000;
  20. padding-left: 4px;
  21. width:100px;
  22. height:18px;
  23. }
  24.  
  25. .contenido1, .contenido2 {
  26. font: 12px monospace;
  27. color: #000000;
  28. padding-top: 1px;
  29. padding-bottom: 1px;
  30. }
  31.  
  32. .contenido1 {
  33. background: #FFFFFF;
  34. }
  35.  
  36. .contenido2 {
  37. background: transparent;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <%
  43. Function EnvuelveCod(cadena)
  44. Dim Reg1, RempCorchete, Reg2, RempEtiquetas, Reg3, RempLengaje, arrlang, contador, arretiqueta
  45. Dim enumeraYcolorea_linea, n, encabezado, array_codigo, i, resto, estilo, RempSaltoLinea
  46.  
  47. ' Cambia caracteres especiales por sus entidades HTML
  48. cadena = Server.HTMLEncode(cadena)
  49. cadena = Replace(cadena, "<", "&lt;", 1, -1, 1)
  50. cadena = Replace(cadena, ">", "&gt;", 1, -1, 1)
  51. cadena = Replace(cadena, "{", "{", 1, -1, 1)
  52. cadena = Replace(cadena, "}", "}", 1, -1, 1)
  53. cadena = Replace(cadena, "$", "$", 1, -1, 1)
  54. cadena = Replace(cadena, "%", "%", 1, -1, 1)
  55. cadena = Replace(cadena, "(", "(", 1, -1, 1)
  56. cadena = Replace(cadena, ")", ")", 1, -1, 1)
  57. cadena = Replace(cadena, "\", "\", 1, -1, 1)
  58. cadena = Replace(cadena, "|", "|", 1, -1, 1)
  59. cadena = Replace(cadena, ":", ":", 1, -1, 1)
  60. cadena = Replace(cadena, "?", "?", 1, -1, 1)
  61. cadena = Replace(cadena, "¿", "&iquest;", 1, -1, 1)
  62. cadena = Replace(cadena, "!", "!", 1, -1, 1)
  63. cadena = Replace(cadena, "+", "+", 1, -1, 1)
  64. cadena = Replace(cadena, "*", "*", 1, -1, 1)
  65. cadena = Replace(cadena, ",", ",", 1, -1, 1)
  66. cadena = Replace(cadena, "-", "-", 1, -1, 1)
  67. cadena = Replace(cadena, "_", "_", 1, -1, 1)
  68. cadena = Replace(cadena, "=", "=", 1, -1, 1)
  69. cadena = Replace(cadena, "'", "'", 1, -1, 1)
  70. cadena = Replace(cadena, ".", ".", 1, -1, 1)
  71. cadena = Replace(cadena, "^", "^", 1, -1, 1)
  72. cadena = Replace(cadena,"¡","&iexcl;", 1, -1, 1)
  73. cadena = Replace(cadena,"ñ","&ntilde;", 1, -1, 1)
  74. cadena = Replace(cadena,"Ñ","&Ntilde;", 1, -1, 1)
  75. cadena = Replace(cadena,"á","&aacute;", 1, -1, 1)
  76. cadena = Replace(cadena,"Á","&Aacute;", 1, -1, 1)
  77. cadena = Replace(cadena,"é","&eacute;", 1, -1, 1)
  78. cadena = Replace(cadena,"É","&Eacute;", 1, -1, 1)
  79. cadena = Replace(cadena,"í","&iacute;", 1, -1, 1)
  80. cadena = Replace(cadena,"Í","&Iacute;", 1, -1, 1)
  81. cadena = Replace(cadena,"ó","&oacute;", 1, -1, 1)
  82. cadena = Replace(cadena,"Ó","&Oacute;", 1, -1, 1)
  83. cadena = Replace(cadena,"ú","&uacute;", 1, -1, 1)
  84. cadena = Replace(cadena,"Ú","&Uacute;", 1, -1, 1)
  85. cadena = Replace(cadena , "&quot;", """", 1, -1, 1)
  86.  
  87. ' Reemplaza los corchetes por entidades cuendo no equivalen a las etiquetas de código
  88. Set Reg1= New RegExp
  89. Reg1.IgnoreCase = True
  90. Reg1.Global = True
  91. Reg1.Pattern = "\[(?!(\/*)code)(.*)(\])"
  92. RempCorchete = Reg1.Replace(cadena, "[$2]")
  93.  
  94. ' Este reemplazo hay que hacerlo aquí, para que no afecte al cierre de las etiquetas
  95. cadena = Replace(RempCorchete, "/", "/", 1, -1, 1)
  96.  
  97. ' Reemplaza las etiquetas de código por el caracter "|". Se puede escoger cualquier otro caracter
  98. Set Reg2= New RegExp
  99. Reg2.IgnoreCase = True
  100. Reg2.Global = True
  101. Reg2.Pattern = "(\r?[^a-z0-9&]?\[.*?\]\r?[^a-z0-9&]?)"
  102. RempEtiquetas = Reg2.Replace(cadena, "|")
  103.  
  104. ' Reemplaza las etiquetas de códogo y todo el texto que no está envuelto en ellas.
  105. ' Solo mantenemos el lenguaje (atributo) de las etiquetas en caso que lo tengan y se le añade el caracter "|" .
  106. ' Se puede escoger cualquier otro caracter
  107. Set Reg3= New RegExp
  108. Reg3.IgnoreCase = True
  109. Reg3.Global = True
  110. Reg3.Pattern = "([^\[]*)(\[(?:[^""\]]+))([""]?)(\s*)(.*?)\4\3(\][^\[]*)(\[[^\[]+)"
  111. RempLengaje = Reg3.Replace(cadena, "$5|")
  112.  
  113. ' Separamos el lenguaje
  114. arrlang = Split(Trim(RempLengaje),"|")
  115.  
  116. contador = 0
  117.  
  118. ' Este reemplazo hay que hacerlo aquí
  119. RempEtiquetas = Replace(RempEtiquetas, """", "&quot;", 1, -1, 1)
  120.  
  121. ' Separamos el texto plano del código
  122. arretiqueta = Split(RempEtiquetas,"|")
  123.             enumeraYcolorea_linea = ""
  124.  
  125.     For n = 0 to UBound(arretiqueta)
  126.         ' Es texto plano
  127.         IF (Int(n) mod 2 = 0 ) then
  128.             enumeraYcolorea_linea = enumeraYcolorea_linea & arretiqueta(n)
  129.        
  130.         ' Es código
  131.         ELSE
  132.             ' En la etiqueta de código no se especifica lenguaje
  133.             If (arrlang(contador) = "" or arrlang(contador) = null) then
  134.             encabezado = ""
  135.              ' Se especifica lenguaje
  136.             Else
  137.             encabezado = "<div id=""lenguaje"">" & arrlang(contador) & "</div>"
  138.             End If
  139. contador = contador +1
  140.             enumeraYcolorea_linea = enumeraYcolorea_linea & "<pre><div class=""contenedor"">" & encabezado & "<ol type=""1"">"
  141.  
  142.             array_codigo = Split(arretiqueta(n), vbCrLf) ' Dividimos cada linea de código
  143.  
  144.         For i = 0 to UBound(array_codigo)
  145.             resto = (abs(i) mod 2)
  146.             select Case resto ' Coloreamos cada linea
  147.                     case 0: estilo = "contenido1"
  148.                    case 1: estilo = "contenido2"
  149.             end select
  150.             enumeraYcolorea_linea = enumeraYcolorea_linea & "<li class="""&estilo&""">" &  array_codigo(i) & "</li>"
  151.         Next 'i
  152.             enumeraYcolorea_linea = enumeraYcolorea_linea & "</ol></div></pre>"
  153.  
  154.         END IF
  155.     Next 'n
  156.  
  157. ' Reemplamos los saltos de linea
  158. RempSaltoLinea = Replace(enumeraYcolorea_linea, vbCrLf, "<br />" & vbCrLf, 1, -1, 1)
  159.  
  160. Set RempLengaje = Nothing
  161. Set RempEtiquetas = Nothing
  162. Set RempCorchete = Nothing
  163. EnvuelveCod = RempSaltoLinea
  164. End Function
  165.  
  166.  
  167. ' Función para subir a la bd el html generado
  168. Response.Write EnvuelveCod(Trim(Request.Form("txtarea")))
  169.  
  170. ' Recibe el html de la bd
  171. ' Response.Write Request.Form("txtarea")
  172. %>
  173. </body>
  174. </html>

Uso


Cita:

Código montado por [Adler]
[cod e="javascript"]funcion funcion() {
document.write ("hola");
}[/cod e]

Las etiquetas de código pueden contener el lenguaje usado o no

[cod e="php"]<?php
$arr = Array(1,2,3,"a");
echo $arr[0];
?>
[/cod e]

[cod e]<%
Dim bienvenida
bienvenida = "mundo"
response.write "hola" & bienvenida
%>
[/cod e]

También podemos hacer que no se ejecuten las entidades HTML

[cod e="php"]
<?php
$cadena = str_replace("<", "&lt;", $cadena);
$cadena = str_replace(">", "&gt;", $cadena);
$cadena = str_replace("{", "& #123;", $cadena);
$cadena = str_replace("}", "& #125;", $cadena);
$cadena = str_replace("$", "& #36;", $cadena);
$cadena = str_replace("%", "& #37;", $cadena);
$cadena = str_replace("(", "& #40;", $cadena);
$cadena = str_replace(")", "& #41;", $cadena);
$cadena = str_replace("\\", "& #92;", $cadena);
$cadena = str_replace("|", "& #124;", $cadena);
$cadena = str_replace(":", "& #58;", $cadena);
$cadena = str_replace("?", "& #63;", $cadena);
$cadena = str_replace("¿", "&iquest;", $cadena);
$cadena = str_replace("!", "& #33;", $cadena);
$cadena = str_replace("+", "& #43;", $cadena);
$cadena = str_replace("*", "& #42;", $cadena);
$cadena = str_replace(",", "& #44;", $cadena);
$cadena = str_replace("-", "& #45;", $cadena);
$cadena = str_replace("_", "& #95;", $cadena);
$cadena = str_replace("=", "& #61;", $cadena);
$cadena = str_replace("'", "& #39;", $cadena);
$cadena = str_replace(".", "& #46;", $cadena);
$cadena = str_replace("^", "& #94;", $cadena);
$cadena = str_replace("¡","&iexcl;", $cadena);
$cadena = str_replace("ñ","&ntilde;", $cadena);
$cadena = str_replace("Ñ","&Ntilde;", $cadena);
$cadena = str_replace("á","&aacute;", $cadena);
$cadena = str_replace("Á","&Aacute;", $cadena);
$cadena = str_replace("é","&eacute;", $cadena);
$cadena = str_replace("É","&Eacute;", $cadena);
$cadena = str_replace("í","&iacute;", $cadena);
$cadena = str_replace("Í","&Iacute;", $cadena);
$cadena = str_replace("ó","&oacute;", $cadena);
$cadena = str_replace("Ó","&Oacute;", $cadena);
$cadena = str_replace("ú","&uacute;", $cadena);
$cadena = str_replace("Ú","&Uacute;", $cadena);
?>
[/cod e]

Suerte


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.