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

Error lectura de variable

Estas en el tema de Error lectura de variable en el foro de ASP Clásico en Foros del Web. Vuelvo a la carga xD Pues ahora mi problema es rarisimo, os explico un poco. Esto es un modificar contraseña, entonces quiero que el usuario ...
  #1 (permalink)  
Antiguo 15/05/2007, 04:25
Avatar de Shilfild  
Fecha de Ingreso: marzo-2007
Mensajes: 120
Antigüedad: 18 años
Puntos: 0
Error lectura de variable

Vuelvo a la carga xD

Pues ahora mi problema es rarisimo, os explico un poco. Esto es un modificar contraseña, entonces quiero que el usuario introduzca la contraseña nueva.
Me han pedido que pida también la contraseña actual, asique lo he metido en el código que es este:

Código:
<%@LANGUAGE="JAVASCRIPT"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<!-- #INCLUDE file="../Intranet/web/ADOJAVAS.inc" -->

<script language="JavaScript">
function comprobar()
{ 
campos=''
if (formmodif.txtpass.value=='')
	campos=campos+"\n\n * Introduzca una Contraseña"
if (formmodif.txtpass2.value!=formmodif.contra.value)
	alert(+contra)
	campos=campos+"\n\n * No coinciden las contraseñas"
if (campos==''){
		//enviar
		formmodif.submit()
	}else{
		// Se envía a la función campos, los campos que se necesitan
		if (campos!='') {peticion(campos)}
	}
}
 
// En la variable campos están los campos requeridos
function peticion(campos)
{
alert(""+campos)
}

</script>
	<tr valign="top">
		<td><form name="formmodif" id="formmodif" method="post" action="guardarmod.asp">
      <table width="450"  border="0" align="center" cellpadding="0" cellspacing="0" class="tb_form">
        <tr valign="top"> 
          <td><p><strong>Contrase&ntilde;a actual</strong></p>
            </td>
          <td><input name="txtpass2" type="text" id="txtpass2" size="40" /></td>
        </tr>
		 <tr valign="top"> 
          <td><p><strong>Contrase&ntilde;a nueva</strong></p>
            </td>
          <td><input name="txtpass" type="text" id="txtpass" size="40" /></td>
        </tr>
		 <tr valign="top"> 
      </table>
	  	<%cone=Server.CreateObject("ADODB.Connection")
		cone.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="+Server.MapPath("portaljoven.mdb"))
		rstIntranet=new ActiveXObject("ADODB.RecordSet")
		var logeo=(Request.Cookies("login"))
		sentencia="Select user_pass from usuarios where user_id='"+logeo+"'"
		rstIntranet.Open(sentencia,cone,adOpenStatic,adCmdTable)
		var contra=rstIntranet("user_pass");
		Response.Write(contra) 
		%>
      <p> 
        <input type="reset" name="Reset" value="Borrar">
  		<input name="cmdenviar" type="button" onClick="comprobar()" value="Modificar">
      </p>
      <p>&nbsp;</p>
	</table></form>
	</table>
	</table>

</body>
</html>
El problema viene aquí:

Código:
if (formmodif.txtpass2.value!=formmodif.contra.value)
	alert(+contra)
	campos=campos+"\n\n * No coinciden las contraseñas"
Después de probar mil cosas (ya no me acuerdo ni como) ha salido que la variable formmodif.contra.value era numerica, cuando yo había introducido un texto cualquiera, La select funciona ya que el Response.Write(contra) lo hace correctamente, después de insertar la comprobación no llega hasta la página en la que se modifica la tabla, alguien me puede ayudar? Gracias
  #2 (permalink)  
Antiguo 15/05/2007, 13:36
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Error lectura de variable

hola shilfild, he mirado tu codigo e intente recrearlo en mi computadora, pero lo que me cuadra aki es ...
var contra=rstIntranet("user_pass");

usas una variable(contra) para comparar la contraseña desde el texto box(txtpass2), solo que, contra no esta dentro de una variable o similar

por ejemplo, en esta parte pudieras crear eso... mira... ya que lees la variable
Código PHP:
 <%cone=Server.CreateObject("ADODB.Connection")
        
cone.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="+Server.MapPath("portaljoven.mdb"))
        
rstIntranet=new ActiveXObject("ADODB.RecordSet")
        var 
logeo=(Request.Cookies("login"))
        
sentencia="Select user_pass from usuarios where user_id='"+logeo+"'"
        
rstIntranet.Open(sentencia,cone,adOpenStatic,adCmdTable)
        var 
contra=rstIntranet("user_pass");%> 
se la asignas a un campo oculto
Código PHP:
         <input type="hidden" value="<%=contra%>" name="contra" id="contra"/> 
no se si sea factible asi para tus propositos, pero es una idea, ademas el script no te daria error

suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 17/05/2007, 01:00
Avatar de Shilfild  
Fecha de Ingreso: marzo-2007
Mensajes: 120
Antigüedad: 18 años
Puntos: 0
Re: Error lectura de variable

Ahora buscaré información sobre campos ocultos ya que nunca los he utilizado, lo único que pretendo hacer es meter el resultado de la select (una contraseña) para compararla con la contraseña que ha metido el usuario actualmente en la caja de texto y si coinciden poder modificar.

Lo dicho, a buscar xD y gracias por tu idea, ya te contaré.

He encontrado esto, pero parece ser que no funciona, no sé si es que la gente habla por hablar o qué... seguiré buscando n,n

var contr='<%=contra%>'

Última edición por Shilfild; 17/05/2007 a las 01:26
  #4 (permalink)  
Antiguo 17/05/2007, 01:32
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Error lectura de variable

ojala que pescando informacion en la inmensa red, puedas llegar mas rapido a tu solucion

suerte

p.d. aki te esperamos
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 17/05/2007, 01:57
Avatar de Shilfild  
Fecha de Ingreso: marzo-2007
Mensajes: 120
Antigüedad: 18 años
Puntos: 0
Re: Error lectura de variable

O.K pregunta nueva, Si tengo que verificar en JavaScript, y la variable le tiene que llegar desde ASP, se puede hacer? He leido que había que recoger la variable en JavaScript de esta manera: var contr='<%=contra%>', pero no funciona, no veo nada claro lo del hidden field, y mi pregunta es, aunque lo meta cómo un hidden seguiré teniendo problemas al compararlo en JavaScript no?, no sería más fácil que me pusiera a investigar cómo se haría esa select en JavaScript la metiera en una variable y la comparararía en la función? Estaría todo en el mismo lenguaje, alguna sugerencia al respecto?
  #6 (permalink)  
Antiguo 17/05/2007, 02:46
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Error lectura de variable

realmente no creo que haya problemas, mira...

<input type="hidden" />
el campo HIDDEN, el atributo que tiene, es que no se muestra en pantalla, es invisible, y la unica manera de saber que existe es mirando el codigo,

ahora bien, si tu le asignas un valor
<input type="hidden" VALUE="<%=contra%>" id="contra" name="contra"/>

podras leerlo, ya sea con ID, para javascript
o con NAME, para un request.FORM()

no es tan dificil

ahora respecto a pasar tu variable de ASP a JAVASCRIPT, pues es algo similar a esto... mira
<script>
var variableServidor = <%=variableServidor%>
</script>
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 17/05/2007, 03:55
Avatar de Shilfild  
Fecha de Ingreso: marzo-2007
Mensajes: 120
Antigüedad: 18 años
Puntos: 0
Re: Error lectura de variable

Problema solucionado, dejo aquí el código y unos comentarios por si les pueden llegar a ayudar a gente que no tenga ni idea xD

Código:
	<%cone=Server.CreateObject("ADODB.Connection")
		cone.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="+Server.MapPath("portaljoven.mdb"))
		rstIntranet=new ActiveXObject("ADODB.RecordSet")
		var logeo=(Request.Cookies("login"))
		sentencia="Select user_pass from usuarios where user_id='"+logeo+"'"
		rstIntranet.Open(sentencia,cone,adOpenStatic,adCmdTable)
		var contra=rstIntranet("user_pass");
		Response.Write(contra);
	  
		
		%> 
		<input type="hidden" VALUE="<%=contra%>" id="contrahi" name="contrahi"/>
Metemos la variable que queremos en contra.
Después, creamos una variable hidden (no se vé) y le asignamos el valor (value) Que conste, que está fuera de ASP (fuera de los tags <% y %>)

Llegamos a la comprobación en JavaScript

Código:
<script language="JavaScript">

function comprobar()
{ 
var contra=formmodif.contrahi.value
campos=''
if (formmodif.txtpass.value=='')
	campos=campos+"\n\n * Introduzca una Contraseña"
if (formmodif.txtpass2.value!=formmodif.contrahi.value)
	campos=campos+"\n\n * No coinciden las contraseñas"
El campo hidden está relacionado con el nombre del formulario (formmodif) por lo que para poder usarlo podemos meterlo en una variable de esta manera: var contra=formmodif.contrahi.value o utilizarlo directamente en el if.

Última edición por Shilfild; 17/05/2007 a las 05:35
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:55.