Hace poco implanté un sistema de identificación de usuarios en la web, que utilizaba las bases de datos del foro PHPBB3 que tengo instalado.
Para ello, seguí este post:
http://www.forosdelweb.com/f121/login-sesion-sitio-con-phpbb3-pagina-externa-phpbb3-541462/
Conseguí hacer funcionar el sistema de login o registro en la web, sin embargo, no he conseguido hacer que para que determinados invitados puedan acceder a determinadas secciones tengan que registrarse o iniciar sesión.
Aquí les muestro los códigos de los archivos login.php y sesiones.php que tengo en mi caso particular:
sesiones.php
Código PHP:
<?php
define('foro', true); // se define que se va a usar phpbb.
$phpbb_root_path = '/home/a3921749/public_html/foro/'; // el path directo del servidor a phpbb3, varia algo dependiendo del servidor, si hay errores con esto en el mismo error sale el path correcto.
$phpbb_url_path = 'http://www.nintpkmn.tk/foro/'; // la url hacia tu phpbb3
$phpEx = substr(strrchr(__FILE__, '.'), 1); // tipo de extension
include($phpbb_root_path . 'common.' . $phpEx); // incluimos el common.php que es muy importante para la bd
include($phpbb_root_path . 'config.' . $phpEx); //include de config.php importante tambien en bd usuarios y pass
// iniciamos sesion
$user->session_begin();
$auth->acl($user->data);
?>
Código PHP:
<center><?php
if($user->data['is_registered'])
{
//en foro suponemos que el prefijo de la tabla es foro
$avvy = "SELECT * FROM forousers WHERE user_id =" . $user->data['user_id'];
$result = mysql_query($avvy) or die (mysql_error());
while($row = mysql_fetch_array($result))
{
$link = $row['user_avatar'];
$width = $row['user_avatar_width'];
$height = $row['user_avatar_height'];
}?>
<a href="http://nintpkmn.tk/foro/memberlist.php?mode=viewprofile&u=<?php echo $user->data['user_id'];?> " target="_self"></a>
<table width="145" height="392" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td align="center" valign="top">
<table width="145" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center">Hola <a href="http://nintpkmn.tk/foro/memberlist.php?mode=viewprofile&u=<?php echo $user->data['user_id'];?> " target="_self"> <?php echo $user->data['username'];?> </a>!</td>
</tr>
</table>
<table width="135" height="255" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="250" align="center" valign="middle"><img src="http://nintpkmn.tk/foro/download/file.php?avatar=<? echo $link?> " border="0" width="<? echo $width?> " height=" <? echo $height?>" alt='Avatar' /></td>
</tr>
</table>
<table width="145" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="middle" class="Estilo5"><span class="Estilo20"><a href="http://nintpkmn.tk/foro/ucp.php" >Visita tu<br />
Panel de control</a><br />
<?php echo( "<a href=" . $phpbb_url_path . 'ucp.php?mode=logout&redirect=../index.php' . '&sid=' . $user->data['session_id'] . " >Cerrar Sesion</a>");?>.</td>
</tr>
</table>
<table width="145" height="72" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td align="center" valign="top">0</td>
</tr>
</table></td>
</tr>
</table>
<?php
} else {
?>
<table width="145" height="392" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="145" align="center" valign="top"><p>
<form action="http://nintpkmn.tk/foro/ucp.php?mode=login" target="_top" method="post" enctype="multipart/form-data">
<img src="http://subirimg.com/images/ep667alll.jpg" alt="." width="135" height="250" /> Usuario:
<input name="username" type="text" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 110px; BORDER-BOTTOM: 0px" value="" size="10" />
<br />
Contraseña:<br />
<input type="password" name="password" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 110px; BORDER-BOTTOM: 0px" size="10" maxlength="32" >
<br />
<input type="checkbox" name="autologin" id="autologin" class="checkbox" value="ON" />
Autologin
<input type="hidden" name="redirect" value="../index.php">
<div><a href="http://nintpkmn.tk/foro/ucp.php?mode=register" title="Léete las condiciones y decide si quieres pertenecer a la comunidad NinTpKmn." >Soy nuevo</a></div>
<div><a href="http://nintpkmn.tk/foro/ucp.php?mode=sendpassword" title="Danos tu nombre de usuario y tu correo electrónico y te la mandamos." >Recordar password </a></div>
<input type="submit" value=" Entrar " name="login" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 60px; BORDER-BOTTOM: 0px">
</form></td>
</tr>
</table>
<?php }
?></center>
Me gustaría consultarles si se les ocurre o conocen algún código que obligue a un usuario no logeado a ser "redireccionado" al archivo login.php ; y en el caso de que sí esté logeado, que pueda acceder sin problemas.
He de decirles que no entiendo mucho el lenguaje PHP, pero cualquier comentario, sugerencia o ayuda, les estaré muy agradecido.
Un saludo a tod@s!