Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Añadir datos a login externo

Foros donde podréis dejar vuestras dudas sobre phpBB 3.0.x
Cerrado

0
No hay votos
 
Votos totales: 0

hiroshima5
Observador/a
Mensajes: 8
Registrado: 18 Ago 2010, 20:33

Añadir datos a login externo

#1

Mensaje por hiroshima5 »

URL: www.yetsii.es
Versión phpBB: phpBB3 (3.0.7-PL1)
MODs Instalados: Ninguno
Plantilla(s) usada(s): Prosilver
Servidor: Linux
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Primero un saludo a todo el foro ya que acabo de registrame en el despues de mucho tiempo siguiendoos y aprendiendo lo que se puede.

Bien, el tema esta en que quiero hacer un login externo para el foro, siguiendo algunos manuales (gracias a los creadores) y entre unas cosas y otras he hecho estos dos script en php

sesiones.php

Código: Seleccionar todo

<?php 
 
define('IN_PHPBB', true); // se define que se va a usar phpbb. 
$phpbb_root_path = 'URL PATH'; // 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 = 'URL PHPBB3'; // 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); 
 ?> 
y login.php

Código: Seleccionar todo

<?php include("sesiones.php"); 
if($user->data['is_registered']) 
{ 
//en phpbb3_ suponemos que el prefijo de la tabla es phpbb3_ 

$conexion = mysql_connect($dbhost, $dbuser, $dbpasswd); mysql_select_db($dbuser);
unset($dbpasswd);
$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)) 
{ 
$link = $row['user_avatar']; 
$width = $row['user_avatar_width']; 
$height = $row['user_avatar_height']; 

mysql_close($conexion);
}?> 
<a href="<?php echo $phpbb_url_path?>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">Bienvenido <?php echo $user->data['username'];?>
			<META HTTP-EQUIV="Refresh" CONTENT="2; URL=URL INDEX.PHP">
			</td> 
          </tr> 
        </table> 
      
        
        
	</td> 
  </tr> 
</table> 
 
 
 
<?php 
} else { 
 ?> 
 <form action="<?php echo $phpbb_url_path?>ucp.php?mode=login" target="_top" method="post" enctype="multipart/form-data"> 
 
 <table border="0" cellpadding="0" cellspacing="2"> 
 
  <tr align="center"> 
    <td> 
      Usuario: 
      <input name="username" type="text" maxlenght="50" value="" /> 
    </td>
    <td>
	  Contrase&ntilde;a:
      <input type="password" name="password" maxlength="32"  > 
    </td>
	<td>
	  
      <input type="submit" value=" Entrar " name="login" > 
	</td>
    <td>	
      <input type="checkbox" name="autologin" id="autologin" class="checkbox" value="ON"/>Autologin 
      <input type="hidden" name="redirect" value="../index.php"> 
    </td>
	<td>
      <a href="<?php echo $phpbb_url_path?>ucp.php?mode=register" title="Lꦴe las condiciones y decide si quieres pertenecer a esta comunidad." >Soy nuevo</a>
	  &nbsp;
	  <a href="<?php echo $phpbb_url_path?>ucp.php?mode=sendpassword" title="Danos tu nombre de usuario y tu correo electr&oacute;nico y te mandamos una nueva" >Recordar password </a>
	</td>
	
 
        
	</td> 
  </tr> 
</table> 
 </form>
 
 
 
<?php } 
 
?> 
Bien mi duda es como podría poner la fecha de la ultima visita del usuario una vez que se loguee, lo he intentado de mil maneras pero debe ser por el lang que no soy capaz de dar con la tecla para que funcione la función formatdate que viene en /includes/functions.php, a ver si alguien que entienda algo de php me echa un cable.

Otra duda, en login.php he tenido que hacer otra conexión con la base de datos pero no se supone que ya hay una conexión anterior hecha desde common.php?? ¿no habría manera de usar esa misma conexión directamente?

Un saludo y gracias

Avatar de Usuario
leviatan21
Ex Staff
Mensajes: 8279
Registrado: 26 Mar 2008, 20:06
Género:
Edad: 55

Re: Añadir datos a login externo

#2

Mensaje por leviatan21 »

La variable para la última fecha es :

Código: Seleccionar todo

    // Last visit date/time
    $s_last_visit = ($user->data['user_id'] != ANONYMOUS) ? $user->format_date($user->data['session_last_visit']) : '';
 
Y para mostrarlo con el idioma debes hacer algo como :

Código: Seleccionar todo

<?php echo sprintf($user->lang['YOU_LAST_VISIT'], $s_last_visit);?>
Normas de phpBB España | Normas de Soporte
No doy soporte por privado : tenga en cuenta que su problema, también puede ser el problema de otro usuario.
Cualquier mensaje privado no solicitado será ignorado :twisted:

"Education is what remains after one has forgotten everything he learned in school" - Albert Einstein

hiroshima5
Observador/a
Mensajes: 8
Registrado: 18 Ago 2010, 20:33

Re: Añadir datos a login externo

#3

Mensaje por hiroshima5 »

No me aparece nada, tengo que haber cargado antes los archivos de idioma no? como los cargo?

Avatar de Usuario
leviatan21
Ex Staff
Mensajes: 8279
Registrado: 26 Mar 2008, 20:06
Género:
Edad: 55

Re: Añadir datos a login externo

#4

Mensaje por leviatan21 »

hiroshima5 escribió:No me aparece nada, tengo que haber cargado antes los archivos de idioma no? como los cargo?
Si debes inicializar algunas cosas referentes al usuario:
Luego de :

Código: Seleccionar todo

$auth->acl($user->data); 
Agrega :

Código: Seleccionar todo

$user->setup(); 
Normas de phpBB España | Normas de Soporte
No doy soporte por privado : tenga en cuenta que su problema, también puede ser el problema de otro usuario.
Cualquier mensaje privado no solicitado será ignorado :twisted:

"Education is what remains after one has forgotten everything he learned in school" - Albert Einstein

hiroshima5
Observador/a
Mensajes: 8
Registrado: 18 Ago 2010, 20:33

Re: Añadir datos a login externo

#5

Mensaje por hiroshima5 »

perfecto, ya funciona!! agregue para el que le pudiera interesar en login.php

Código: Seleccionar todo

$s_last_visit = ($user->data['user_id'] != ANONYMOUS) ? $user->format_date($user->data['session_last_visit']) : '';
lang['YOU_LAST_VISIT'], $s_last_visit);?>
Aunque hay un problema con la codificación ya que sale

Su última visita fue: Mié Ago 18, 2010 7:27 pm

¿Tiene arreglo?

y ya que estamos podria ponerse tambien si hay mensajes privados nuevos? digamos algo así

Mensajes (2/26)

Gracias de nuevo leviatan estas hecho un crack

Avatar de Usuario
leviatan21
Ex Staff
Mensajes: 8279
Registrado: 26 Mar 2008, 20:06
Género:
Edad: 55

Re: Añadir datos a login externo

#6

Mensaje por leviatan21 »

hiroshima5 escribió: Aunque hay un problema con la codificación ya que sale

Su última visita fue: Mié Ago 18, 2010 7:27 pm
Eso depende de tu código html inicial, debería ser algo como :
hiroshima5 escribió:y ya que estamos podria ponerse tambien si hay mensajes privados nuevos? digamos algo así

Mensajes (2/26)

Gracias de nuevo leviatan estas hecho un crack
La información de Mensajes privados depende de este código :

Código: Seleccionar todo

    $l_privmsgs_text = $l_privmsgs_text_unread = '';
    $s_privmsg_new = false;

    // Obtain number of new private messages if user is logged in
    if (!empty($user->data['is_registered']))
    {
        if ($user->data['user_new_privmsg'])
        {
            $l_message_new = ($user->data['user_new_privmsg'] == 1) ? $user->lang['NEW_PM'] : $user->lang['NEW_PMS'];
            $l_privmsgs_text = sprintf($l_message_new, $user->data['user_new_privmsg']);

            if (!$user->data['user_last_privmsg'] || $user->data['user_last_privmsg'] > $user->data['session_last_visit'])
            {
                $sql = 'UPDATE ' . USERS_TABLE . '
                    SET user_last_privmsg = ' . $user->data['session_last_visit'] . '
                    WHERE user_id = ' . $user->data['user_id'];
                $db->sql_query($sql);

                $s_privmsg_new = true;
            }
            else
            {
                $s_privmsg_new = false;
            }
        }
        else
        {
            $l_privmsgs_text = $user->lang['NO_NEW_PM'];
            $s_privmsg_new = false;
        }

        $l_privmsgs_text_unread = '';

        if ($user->data['user_unread_privmsg'] && $user->data['user_unread_privmsg'] != $user->data['user_new_privmsg'])
        {
            $l_message_unread = ($user->data['user_unread_privmsg'] == 1) ? $user->lang['UNREAD_PM'] : $user->lang['UNREAD_PMS'];
            $l_privmsgs_text_unread = sprintf($l_message_unread, $user->data['user_unread_privmsg']);
        }
    } 
Para mostrar esa información la variable que la contiene es $l_privmsgs_text

Código: Seleccionar todo

echo $l_privmsgs_text;?>
Normas de phpBB España | Normas de Soporte
No doy soporte por privado : tenga en cuenta que su problema, también puede ser el problema de otro usuario.
Cualquier mensaje privado no solicitado será ignorado :twisted:

"Education is what remains after one has forgotten everything he learned in school" - Albert Einstein

Cerrado

Volver a “Foros de Soporte 3.0.x”