Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/02/2005, 01:39
terraqueotenaz
 
Fecha de Ingreso: enero-2004
Ubicación: Chihuahua, México
Mensajes: 146
Antigüedad: 20 años, 4 meses
Puntos: 0
De acuerdo Listo¡¡¡

Hola,

Bueno, el link que me dieron es más bien sobre código php. Aunque yo estoy utilizando asp, recurrí a este foro por lo de los conocimientos del foro phpbb.

Pues tomand los consejos de yoseman hice lo siguiente:

submit.htm
Código:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Usuario</title>
</head>
<body>
<form action="foro/login.php" method="post">
<input type="hidden" name="redirect" value="../check.asp">
Usuario:&nbsp;<input type="text" name="username" size="10" /><br>
Contrase&ntilde;a:&nbsp;<input type="password" name="password" size="10" maxlength="32" /><br />
&nbsp;&nbsp; &nbsp;&nbsp;Entrar automáticamente en cada visita
	  <input class="text" type="checkbox" name="autologin" />
	  &nbsp;&nbsp;&nbsp;
	  <input type="submit" class="mainoption" name="login" value="Login" />
</form>
</body>
</html> 
Esto ingresa el nombre de usuario y password en la bd del foro.
Loguea al usuario y lo redirecciona inmediatamente a la página: check.asp.
---El campo hidden de redirect es muy valioso porque nos permite recobrar la session id genrada por el foro. -----

checar.asp?sid=2892838sd829230 (algo así) aparece en checar.asp

checar.asp
Código:
<% 
numsess=request.querystring("sid")
If numsess="" then
	response.write "<center>No se ha logueado"
	response.write "<form>"
	response.write "<input type='button' value='Return to Form' onclick=history.go(-1)>"
	response.write "</form></center>"
Else
Session("sessionid")= numsess
Response.Write "<SCRIPT LANGUAGE='JavaScript'>ss = 'usuarios.asp'; redirectionTime = '5000';redirectionURL = ss; function redirectionTimer() { self.setTimeout('self.location.href = redirectionURL;',redirectionTime); }</script><html><head></head><body onLoad='redirectionTimer()'><body>"
Response.Write "Tu numero de sesion es " & Session("sessionid")
%></body>
</html><%
End If
%> 
Recoge el string y lo valida, después, cree una sesión, que es la que usaré para el sitio asp, y que tiene el mismo valor que la sesión generada por el foro.

Para estas alturas, uno ya se puede ver que está logueado en el foro.

¿Pero qué pasa cuando por algún motivo vuelves a la páginas check.asp, es decir, a tu sitio asp? Bueno, pues te dirá que no estás logueado porque ya no traes arrastrando el string.

Por eso cree una redirección en la página check.asp hacia micuenta.asp, que será el área deonde el usuario ve toda su información (que por cierto, la recojo también de la bd del foro)

usuarios.asp

Código:
<%
autorizado = Session("sessionid")
If autorizado= "" then
	response.write "<center>No se ha logueado"
	response.write "<form>"
	response.write "<input type='button' value='Return to Form' onclick=history.go(-1)>"
	response.write "</form></center>"
Else
dim conn 
dim conn_string 
conn_string = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;"_ 
						& " DATABASE=forum;UID=user;PWD=pass; OPTION=16387"
Set conn = Server.CreateObject("ADODB.Connection") 
conn.Open(conn_string) 
strQuery = "SELECT phpbb_users.username FROM phpbb_users, phpbb_sessions WHERE phpbb_users.user_id=phpbb_sessions.session_user_id   AND phpbb_sessions.session_id= '" & autorizado & "'"
Set RS = conn.Execute(strQuery) 
%><html>
<head>
<title>New Page 2</title>
</head>
<body>
<%
Response.Write "Bienvenido " & RS("username") & " estas logueado en sitio y foro. "
%><br> 
</body>
</html>
<%
RS.Close
Set RS = Nothing
End If
%> 

Espero que los interesados puedan cooperar a mejorar esto, pues todos queremos la sincronización del nuestros foros phpbb con nuestros sitios asp.

Más adelante tendremos que agregar la manera de cerrar la sesión.

Gracias por su interés y tiempo.
__________________
¡Que todo sea para bien del hombre!
www.dechihuahua.com
Comunidad Chihuahuense
----------- (50%)
Sólo hasta que el Hombre siente la energía universal, sabe de lo que está hecho.

Última edición por terraqueotenaz; 21/03/2005 a las 03:29 Razón: Edité el post para corregir el problema