Foros del Web » Programando para Internet » PHP »

Login de usuario de foro

Estas en el tema de Login de usuario de foro en el foro de PHP en Foros del Web. Hola, estoy realizando una web y me ha surgido una duda. Tengo un sistema de login conectado a la base de datos del foro, ya ...
  #1 (permalink)  
Antiguo 06/07/2009, 09:09
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 1
Login de usuario de foro

Hola,

estoy realizando una web y me ha surgido una duda. Tengo un sistema de login conectado a la base de datos del foro, ya que quiero tener conectado mi web y el foro (mismos usuarios). El problema que me encuentro es que cuando hago login, me abre la página del foro diciéndome que me he logueado con éxito y yo lo que quiero conseguir es que se quede en la web y que ponga un mensaje como "el usuario ha ingresado con éxito" y que al refrescar me aparezca el nombre del usuario y la opcion de "logout".

Si no me he explicado bien lo siento jajaj es que en php estoy muy verde aun.

Un saludo y gracias de antemano!
  #2 (permalink)  
Antiguo 06/07/2009, 09:12
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Login de usuario de foro

De verdad que me perdi. Podrias escribir un ejemplo de lo que persona hace que no te sale? Ejemplo la persona visito mi pagina web se logueo en el foro y aparece en el foro perfectamente logueado pero cuando va a la pagina principal no sale logueado. Es para poder ver lo que pasa. Tambien te sugiero que escribas el codigo para poder ver donde esta el error
  #3 (permalink)  
Antiguo 06/07/2009, 09:44
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Login de usuario de foro

Hola, perdona pero sabia que no me habia explicado muy bien jejeje

El código de mi archivo login.php es este:

Código HTML:
<!--formulario de login-->

<?
include ("sesiones_foro.php");
if($user->data['is_registered']) // Si el usuario ya está registrado...
{
$avvy = "SELECT * FROM phpbb_users WHERE user_id =" . $user->data['user_id'];
$result = mysql_query($avvy) or die (mysql_error());

while($row = mysql_fetch_array($result))
{
$user_cache[$poster_id] = array(
				'avatar'		=> ($user->optionget('viewavatars')) ? get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $row['user_avatar_width'], $row['user_avatar_height']) : '',		);
$username = $row['username'];
$link = $user_cache[$poster_id]['avatar'];
}

$patron="/home/";
$patrona="einstein/";
$patronb="public_html/";
if (preg_match("/home/", $link)) {
    $link=str_replace($patron,"",$link);
}
if (preg_match("/einstein/", $link)) {
    $link=str_replace($patrona,"",$link);
}
if (preg_match("/public_html/", $link)) {
    $link=str_replace($patronb,"",$link);
}

echo "<div>";
echo "<br><h4>";echo $username;echo "</h4>";
echo "".$link."<br>";
echo "<a href='".$phpbb_url_path."ucp.php'>Ir a Panel de Control</a><br>";
echo "<a href=".$phpbb_url_path.'ucp.php?mode=logout' . '&sid=' . $user->data['session_id'] . " target='_self'><font color='red'>Logout</font></a>";
echo "</div>";
}

else{
echo "<div>"; // principio del formulario de logueo en el foro -->
?>

<form action="<?php echo $phpbb_url_path?>login.php" target="_top" method="post" enctype="multipart/form-data" >

<div style="float:left; width:250px; color:#FFFFFF; padding-left:40px;">
<p  class="linea"><br />Usuario del foro: <input type="text" id="s" name="username" value="" size="20" class="text" /></p>
</div>
<div  style="float:left; width:250px; color:#FFFFFF; padding-left:40px;">
<p class="linea"><br/>Contraseña: <input type="password" id="p" name="password" value="" size="20" maxlength="16" class="text"></p>
<br />
</div>
<div  style="float:left; width:150px; color:#FFFFFF; padding-left:40px; padding-top:25px;">
<input id="x" name="login" type="submit" value="Login" class="button" style="font-size:10px; font-family:Verdana,Helvetica; font-weight:bold; color:white; background:#638cb5; border:0px; width:80px; height:19px"/>
<input type="hidden" name="autologin" id="autologin" class="checkbox" value="ON" />
<input type="hidden" name="redirect" value="/">
</div>

</form>

</div>
<?
}
?> 
Lo que me pasa es q cuando pongo el nombre de usuario y la contraseña y le doy a enviar, se me va a la página de logueo del foro y se refresca automáticamente la pagina y aparece la index.html, y lo que yo desearia es que me apareciera simplemente un mensaje de "se ha ingresado correctamente" y que luego apareciera en esa zona el nombre del usuario, el avatar y un boton de logout.

Esto ya lo tengo porque me aparece cuando abro una nueva pestaña en el explorador poniendo la index.php, pero no quiero que me haga toda esa transición. Me pasa lo mismo cuando hago logout, que me manda a la página logout del foro y lo que yo quiero es que aparezca un mensaje de "se ha desconetado correctamente" y que al refrescar aparezca de nuevo el formulario de login.

Espero que ahora se entienda mejor. Un saludo y gracias!
  #4 (permalink)  
Antiguo 06/07/2009, 09:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Login de usuario de foro

Ok si lo que quieres es que no se refresque la pagina cuando se logue y aparezca el mensaje debes usar javascript especificamente ajax.

Si lo que quieres es que cuando se logue lo envie a una pagina que le diga se ha logueado exitosamente y luego lo envie a otra pagina, debes enviar los datos a una pagina de php en esa pagina aparezca el mensaje de que se conecto y tambien creas una variables de sesiones para que cuando lo redirijas en la pagina de index salga que esta logueado y luego con javascript lo rediriges a la pagina que deseas. Puedes usar setTimeout() de javascript para llamar una funcion que lo redirija a una pagina despues de x segundos. o puedes usar un meta tag que lo redirija despues de x segundos.

<META http-equiv="refresh" content="3;URL=index.php">
  #5 (permalink)  
Antiguo 06/07/2009, 09:57
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Login de usuario de foro

no entiendo muy bien como debo hacerlo. Te lo explico un poco mas detallado a ver si me lo puedes explicar un poco mejor.

Yo esta página login.php la abro dentro de un iframe que forma parte de un menu desplegable, es decir, tengo un boton que dice "login", cuando pulso sobre el se me abre un desplegable (que tengo con un javascript) y dentro he incorporado el iframe que enlaza al login.php. Claro, cuando me dirige a las paginas del foro se me ven dentro de ese iframe, ya de aqui que quiero que me vaya a unas paginas o que aparezcan los textos que yo quiero.

El código es este:

cabecera.php

Código HTML:
<div class="conteinerNav">
	<ul class="nav">
	<li><a href="#">Login</a>

	<ul>
		<li>
		<iframe width="950" height="120" src="cabecera/login.php" frameborder="0">
Si ves este mensaje, significa que tu navegador no soporta esta característica o está deshabilitada. Pero puedes acceder a esta información aquí tag HTML a</a>.
		</iframe>
		</li>
	</ul>
	</li> 
  #6 (permalink)  
Antiguo 06/07/2009, 10:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Login de usuario de foro

Ok como estas trabajando dentro de un iframe, cuando redirijas debes usar javascript para que redirija la pagina principal

window.parent.document.location='index.php';

Verifica si te ayuda
  #7 (permalink)  
Antiguo 07/07/2009, 04:35
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 1
Ese código donde debo meterlo? creo que me queda un poco grande jajaja porque no me entero mucho. iré probando a ver si logro solucionarlo.

gracias!

bueno, como veo que sigo buscando pero no encuentro el como, escribo aqui íntegro los archivos que tengo que creo son los que se requieren para solucionarlo.

index.php

Código PHP:
<?php
include ("cabecerapie/sesiones_foro.php");
?>

....

<body>

<div id="global">

      <div id="barra">
    <?
    
include ('cabecerapie.php') ;
    
cabecera ();
    
?> 
    </div>

    <div id="contenedor"></div>
    <div id="pie">
    <?
    pie 
();
    
?>
    </div>

</div>
  

 <script type="text/javascript"
    src=""></script> <script
    type="text/javascript">
      // Load jQuery
      google.load("jquery", "1.2");  
    </script> <script src="cabecerapie/jquery.clickme.js" language="javascript"
    type="text/javascript"></script> <script type="text/javascript">
        $(document).ready(function() {
            $(".nav").clickMe();
        }); 
    </script>

</body>
</html>
cabecerapie.php

Código PHP:
<?
function cabecera (){
?>
<!-- Código HTML de la cabecera -->

<div class="conteinerNav">
    <ul class="nav">
    <li><a href="#">Login</a>

    <ul>
        <li>
        <iframe width="950" height="120" src="cabecerapie/login.php" frameborder="0">
Si ves este mensaje, significa que tu navegador no soporta esta característica o está deshabilitada. Pero puedes acceder a esta información aquí tag HTML a</a>.
        </iframe>
        </li>
    </ul>
    </li>
    <li><a href="#">Registro</a>
    <ul>
        <li><iframe width="990" height="200" src="cabecerapie/registro.php" frameborder="0">
Si ves este mensaje, significa que tu navegador no soporta esta característica o está deshabilitada. Pero puedes acceder a esta información aquí tag HTML a</a>.
        </iframe></li>
    </ul>

    </li>
    <li><a href="#">¡Participa!</a>
    <ul>
        <li><iframe width="990" height="350" src="cabecerapie/participa.php" frameborder="0">
Si ves este mensaje, significa que tu navegador no soporta esta característica o está deshabilitada. Pero puedes acceder a esta información aquí tag HTML a</a>.
        </iframe></li>
    </ul>

    </li>
</ul>
</div>
<!-- end conteinerNav -->

<?
}
function 
pie (){
?>

<!-- C?¡ódigo HTML del pié de página -->

<?
}
?>
cabecerapie/login.php

Código PHP:
<?
include ("sesiones_foro.php");
if(
$user->data['is_registered']) // Si el usuario ya está registrado...
{
$avvy "SELECT * FROM phpbb_users WHERE user_id =" $user->data['user_id'];
$result mysql_query($avvy) or die (mysql_error());

while(
$row mysql_fetch_array($result))
{
$user_cache[$poster_id] = array(
                
'avatar'        => ($user->optionget('viewavatars')) ? get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $row['user_avatar_width'], $row['user_avatar_height']) : '',        );
$username $row['username'];
$link $user_cache[$poster_id]['avatar'];
}

$patron="/home/";
$patrona="einstein/";
$patronb="public_html/";
if (
preg_match("/home/"$link)) {
    
$link=str_replace($patron,"",$link);
}
if (
preg_match("/einstein/"$link)) {
    
$link=str_replace($patrona,"",$link);
}
if (
preg_match("/public_html/"$link)) {
    
$link=str_replace($patronb,"",$link);
}

echo 
"<div>";
echo 
"<br><h4>";echo $username;echo "</h4>";
echo 
"".$link."<br>";
echo 
"<a href='".$phpbb_url_path."ucp.php'>Ir a Panel de Control</a><br>";
echo 
"<a href=".$phpbb_url_path.'ucp.php?mode=logout' '&sid=' $user->data['session_id'] . " target='_self'><font color='red'>Logout</font></a>";
echo 
"</div>";
}

else{
echo 
"<div>"// principio del formulario de logueo en el foro -->
?>

<form action="<?php echo $phpbb_url_path?>login.php" target="_top" method="post" enctype="multipart/form-data" >

<div style="float:left; width:250px; color:#FFFFFF; padding-left:40px;">
<p  class="linea"><br />Usuario del foro: <input type="text" id="s" name="username" value="" size="20" class="text" /></p>
</div>
<div  style="float:left; width:250px; color:#FFFFFF; padding-left:40px;">
<p class="linea"><br/>Contraseña: <input type="password" id="p" name="password" value="" size="20" maxlength="16" class="text"></p>
<br />
</div>
<div  style="float:left; width:150px; color:#FFFFFF; padding-left:40px; padding-top:25px;">
<input id="x" name="login" type="submit" value="Login" class="button" style="font-size:10px; font-family:Verdana,Helvetica; font-weight:bold; color:white; background:#638cb5; border:0px; width:80px; height:19px"/>
<input type="hidden" name="autologin" id="autologin" class="checkbox" value="ON" />
<input type="hidden" name="redirect" value="/">
</div>

</form>

</div>
<?
}
?>
A ver si ahora queda mas claro y si me puedes indicar exactamente que zonas he de modificar y voy probando.

Gracias!!!

edito: Ya he conseguido que una vez haces el login vuelve a la index.php con el usuario ya registrado, mostrando el avatar y la info que decia. La cuestion ahora seria eliminar la página que aparece intermedia del foro.

Última edición por FRACTO; 07/07/2009 a las 10:09
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 18:42.