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

Como hacer el cambio de formulario a campo de texto normal al validar.

Estas en el tema de Como hacer el cambio de formulario a campo de texto normal al validar. en el foro de ASP Clásico en Foros del Web. Buenas noches, En el título no sabía como explicarlo muy bien pero creo que aquí podré explicarlo mejor. Tengo una plantilla para una página de ...
  #1 (permalink)  
Antiguo 14/08/2008, 13:24
 
Fecha de Ingreso: junio-2008
Mensajes: 145
Antigüedad: 16 años
Puntos: 0
Como hacer el cambio de formulario a campo de texto normal al validar.

Buenas noches,

En el título no sabía como explicarlo muy bien pero creo que aquí podré explicarlo mejor. Tengo una plantilla para una página de un videoclub, lo único que cambia en la web mientras vas navegando es el div editable central, todo lo demás es fijo.

El caso es que tengo pensado incluir un foro y quiero que sólo puedan accedar los usuarios que esten registrados. En la plantilla tengo un formlulario de acceso típico: usuario, contraseña y botón de enviar. Lo que me gustaría conseguir es que una vez te hayas registrado correctamente, ese formulario desapareciera (quizás poniendolo en hidden o de otra forma aún no lo se) y sólo apareciese el nombre de usuario y debajo un link con la opción de desconectar, cerrar sesión o algo así.

No tengo claro si tengo que hacer versiones alternativas de todas las páginas de la web en las que aparezca el nombre de usuario recuperado de una variable de sesión y ese link que finalizaría la sesión y redirigiría al usuario a la versión "normal" de esa web o si se puede seguir haciendo con la plantilla que tengo.

Este es el formulario, aún le falta el contenido del action.

Código HTML:
<div class="menu4">
          	<form class="formulario" action="" method="post" target="_self">
    Usuario<br/>
      <input name="usuario" type="text" id="usuario" size="13" />
     Contraseña
      <input name="pwd" type="text" id="pwd" size="13" style="margin-bottom:5px;" />
      <input  type="submit"  name="button4" id="button4" value="Acceder" />
      </form>
    </div> 
¿Se os ocurre cuál es la mejor manera de hacer algo como lo que quiero?
  #2 (permalink)  
Antiguo 14/08/2008, 13:43
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Respuesta: Como hacer el cambio de formulario a campo de texto normal al validar.

Hola

Esta es una formas básica de hacerlo

+ El form lo insertas en un sub y este a su vez en un include
+ En ese mismo include otro sub en el que irán los datos del usuario, vinculo para salir del sistema, etc
+ En cada pagina incluyes el includes
+ Lo llamas con una condicinal
if Not IsEmpty(session("usuario")
llama al sub con los datos del usuario
else
llama al sub con el from
end if

Cuando un usuario se logee, se creará una sesion que será la que indique si se ha de mostrar el form o los datos del usuario

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 16/08/2008, 11:25
 
Fecha de Ingreso: junio-2008
Mensajes: 145
Antigüedad: 16 años
Puntos: 0
Respuesta: Como hacer el cambio de formulario a campo de texto normal al validar.

Hola Adler,

Gracias por responder, lo hice como me dijiste y funciona bien.

El problema lo tengo ahora en otra cosa, seguro que es una tontería pero no lo veo. Cuando pones un nombre de usuario y/o contraseña incorrectos quiero que aparezca la típica frase de: "Nombre de usuario o contraseña incorrectos" justo antes del formulario que te permite ingresar de nuevo tus datos. El problema es que he debido de escribir mal algo.

Este es el código que aparece en la plantilla, el que llama a los subs.
Código HTML:
 <div class="menu4">
     <% if Not IsEmpty(session("usuario")) then
			if (session("usuario") = usu) then
			conectado()
			else if (session("usuario") = fallo) then
			fallo()
			end if
			end if
		else
			formulario()
		end if %>
      
    </div> 
Me da como error, no coinciden los tipos fallo cuando hago la llamad al sub (fallo())
Esa web tiene el include al archivo acceder.asp cuyo contenido son las 3 subs.

Código HTML:
<% sub formulario()%>
<form class="formulario" action="validar.asp" method="post" target="_self">
    Usuario<br/>
      <input name="usuario" type="text" id="usuario" size="13" />
     Contraseña
      <input name="pwd" type="text" id="pwd" size="13" style="margin-bottom:5px;" />
      <input  type="submit"  name="button4" id="button4" value="Acceder" />
      </form>
<%end sub%>

<%sub conectado()
%>
<div class="normal">Bienvenid@ <%=session("usuario")%></div>
<div class="normal2"><a href="includes/desconectar.asp" target="_self">Finalizar sesión</a></div>
<%end sub%>

<%sub fallo()%>
<div class="normal">El nombre de usuario o contraseña son incorrectos</div>
<div class="normal">Por favor, vuelva a intentarlo</a></div>
<form class="formulario" action="validar.asp" method="post" target="_self">
    Usuario<br/>
      <input name="usuario" type="text" id="usuario" size="13" />
     Contraseña
      <input name="pwd" type="text" id="pwd" size="13" style="margin-bottom:5px;" />
      <input  type="submit"  name="button4" id="button4" value="Acceder" />
      </form>

<%end sub%> 
Y el otro archivo que falta es el que comprueba que los datos de entrada son correctos, el validar.asp

Código HTML:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
<!--#include file="includes/AbrirBD.asp"-->
<!--#include file="includes/acceder.asp"-->

</head>

<%
 	usu = request.Form("usuario")
   pass = request.Form("pwd")
   
   sql = "Select * from USUARIOS where usuario = '"&usu&"'"

'Ejecutar la instruccion contra la base de datos Cole'
tabla.open sql, conexion

if tabla.eof then
	response.Write "No existe ningun usuario con ese nombre"
else
	if tabla.fields("pass") = pass and tabla.fields("usuario") = usu then
		session("usuario")=usu
		response.Redirect("index.asp")
	else
		session("usuario")=fallo
		response.Redirect("index.asp")
	end if
end if
%>


<body>
<a href="index.asp">Volver</a>
</body>

<%tabla.close
conexion.close%>
</html> 
Añado también el archivo desconectar.asp porque supongo que también importará.
Código HTML:
<% 
Session.Contents.Remove("usuario")
response.redirect("../index.asp")
%> 
¿Sabéis cual puede ser el fallo?

Última edición por haga41; 16/08/2008 a las 11:59
  #4 (permalink)  
Antiguo 16/08/2008, 12:37
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Respuesta: Como hacer el cambio de formulario a campo de texto normal al validar.

Hola

Prueba así

Cita:
<div class="menu4">
<% if Not IsEmpty(session("usuario")) then
if (session("usuario") = usu) then
Call conectado()
else
if (session("usuario") = fallo) then
Call fallo()
end if
end if
else
Call formulario()
end if %>

</div>
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 16/08/2008, 13:16
 
Fecha de Ingreso: junio-2008
Mensajes: 145
Antigüedad: 16 años
Puntos: 0
Respuesta: Como hacer el cambio de formulario a campo de texto normal al validar.

Hola Adler,

Gracias por responerme tan rápido, en probado tu código y me da el error: "No coinciden los tipos fallo" en validar.asp. En vez de poner session("usuario") = fallo, he puesto fallos y va ahora funciona pero no llama a la función fallo sino que llama a la función formulario ya que no me salen las frases avisando de que te has equivocado que deberían de salir. Este es el código que tengo ahora.

También me ocurre que si meto bien las datos de usuario y contraseña, no sale el formulario pero tampoco sale el mensaje de bienvenida con el nombre de usuario que me solía salir y el link a la opción de finalizar sesión.

plantilla.dwt.asp
Código HTML:
<div class="menu4">
    <% if Not IsEmpty(session("usuario")) then
		if (session("usuario") = usu) then
			Call conectado()
			else
			if (session("usuario") = fallos) then
			Call fallo()
			end if
			end if
			else
			Call formulario()
		end if %>
      
    </div> 
validar.asp
Código HTML:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
<!--#include file="includes/AbrirBD.asp"-->
<!--#include file="includes/acceder.asp"-->

</head>

<%
 	usu = request.Form("usuario")
   pass = request.Form("pwd")
   
   sql = "Select * from USUARIOS where usuario = '"&usu&"'"

'Ejecutar la instruccion contra la base de datos Cole'
tabla.open sql, conexion

if tabla.eof then
	response.Write "No existe ningun usuario con ese nombre"
else
	if tabla.fields("pass") = pass and tabla.fields("usuario") = usu then
		session("usuario")= usu
		response.Redirect("index.asp")
	else
		session("usuario")= fallos
		response.Redirect("index.asp")
	end if
end if
%>


<body>
<a href="index.asp">Volver</a>
</body>

<%tabla.close
conexion.close%>
</html> 
acceder.asp
Código HTML:
<% sub formulario()%>
<form class="formulario" action="validar.asp" method="post" target="_self">
    Usuario<br/>
      <input name="usuario" type="text" id="usuario" size="13" />
     Contraseña
      <input name="pwd" type="text" id="pwd" size="13" style="margin-bottom:5px;" />
      <input  type="submit"  name="button4" id="button4" value="Acceder" />
      </form>
<%end sub%>

<%sub conectado()
%>
<div class="normal">Bienvenid@ <%=session("usuario")%></div>
<div class="normal2"><a href="includes/desconectar.asp" target="_self">Finalizar sesión</a></div>
<%end sub%>

<%sub fallo()%>
<div class="normal">El nombre de usuario o contraseña son incorrectos</div>
<div class="normal">Por favor, vuelva a intentarlo</a></div>
<form class="formulario" action="validar.asp" method="post" target="_self">
    Usuario<br/>
      <input name="usuario" type="text" id="usuario" size="13" />
     Contraseña
      <input name="pwd" type="text" id="pwd" size="13" style="margin-bottom:5px;" />
      <input  type="submit"  name="button4" id="button4" value="Acceder" />
      </form>

<%end sub%> 
  #6 (permalink)  
Antiguo 16/08/2008, 14:07
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Respuesta: Como hacer el cambio de formulario a campo de texto normal al validar.

Hola

Prueba ahora

plantilla.dwt.asp

Código PHP:
<div class="menu4">
    <&
#37; if Not IsEmpty(session("usuario")) then
               
if (session("usuario") = "ok"then
               Call conectado
()
               elseif (
session("usuario") = "ko"then
               Call fallo
()
               
end if
            else
            
Call formulario()
        
end if %>
      
    </
div
validar.asp

Código PHP:
<%
     
usu request.Form("usuario")
   
pass request.Form("pwd")
   
   
sql "Select * from USUARIOS where usuario = '"&usu&"'"

'Ejecutar la instruccion contra la base de datos Cole'
tabla.open sqlconexion

if tabla.eof then
    response
.Write "No existe ningun usuario con ese nombre"
else
    if 
tabla.fields("pass") = pass and tabla.fields("usuario") = usu then
        session
("usuario")= "ok"
        
response.Redirect("index.asp")
    else
        
session("usuario")= "ko"
        
response.Redirect("index.asp")
    
end if
end if
%> 
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 16/08/2008 a las 14:13
  #7 (permalink)  
Antiguo 16/08/2008, 14:22
 
Fecha de Ingreso: junio-2008
Mensajes: 145
Antigüedad: 16 años
Puntos: 0
Respuesta: Como hacer el cambio de formulario a campo de texto normal al validar.

Hola de nuevo,

Ahora va perfecto, muchas gracias.
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 11:44.