Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/09/2011, 14:17
Avatar de freesoftwarrior
freesoftwarrior
 
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 19 años
Puntos: 10
Se corta la cadena cuando envío datos de una página a otra

Buenas tardes:
Tengo el siguiente problema. Tengo esta página ASP

Cita:
<html>
<head>
<title>Untitled</title>
</head>

<script language="JavaScript" type="text/javascript">
function ventana1()
{
LeftPosition=(screen.width)?(screen.width-550)/2:100;
TopPosition=(screen.height)?(screen.height-250)/2:100;

cadena1="edeufy>dchvuq)bgjppf>5pwbg'ufgps>4pwbg'92 #-82#-72#-62#-52#-42@{lswbp'4>f'np@muuf'np@bwvu";

ventana=window.open("test.asp?"+cadena2, "libros123", "left="+LeftPosition+",top="+TopPosition+",width=5 50,height=250,scrollbars=0,directories=0,toolbar=0 ,location=0,status=0,resizable=0,menubar=0");
}
</script>

<body>

<a onclick="ventana1();">ventana</a>

</body>
</html>


El valor de cadena1 es logrado con una rutina de encriptación que he desarrollado. Esta rutina no tiene nada que ver con el problema que tengo por si acaso. Sigo. Tengo esta otra página TEST.asp

Cita:
<html>
<head>
<title>Untitled</title>
</head>

<body>

<%
dato1=Request.ServerVariables("QUERY_STRING")
dato2=Replace(dato1,"%3E",">")
response.write(dato2)

%>

</body>
</html>


Ahora bien, en la ventana adicional aparece, en la barra de navegación, la cadena completa sin que le falte ningún carácter (hablo de la cadena de la variable cadena1). Sin embargo, el resultado en test.asp es el siguiente


Cita:
edeufy>dchvuq)bgjppf>5pwbg'ufgps>4pwbg'92

La línea con el replace es porque el carácter ">" es "entendido" como "%3E".
Pero el caso es que cuando llega a "#" como que ejecuta un "enter" o retorno de carro (o algo así). Se corta la cadena.

¿Cómo puedo evitar que esto pase?
Probé inclusive esto


Cita:
<%
dato1=Request.ServerVariables("QUERY_STRING")
dato2=Server.HTMLEncode(dato1)
dato3=Replace(dato2,"%3E",">")
response.write(dato3)

%>

Pero igual... también proble utilizar el HTMLEncode luego del replace y es lo mismo.

Espero que alguien pueda darme una ayuda sobre este punto

Un saludo desde Lima, Perú