Conexión de cuentas de Junta de foro a la portada de mi sitio Web

  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Mar 14, 2012
  • Mensajes: 11
  • Status: Offline

Nota Marzo 14th, 2012, 8:20 pm

Hola chicos. Estoy deseando para llegar mi Junta Foro en mi sitio Web trabajando junto con el sitio principal. Me gustaría que el usuario tiene la opción de inicio de sesión en el sitio principal, no sólo en los foros. Le gustaría ir más allá y poder cuentan con una última sección de subprocesos en la página principal del sitio principal (no la página principal de los foros).

Estoy ejecutando phpbb3 de los foros en mi sitio Web. Conozco a alot de programación web no más de programación web, pero creo que estoy plenamente capaz de leer sobre cómo puedo hacer esto y ponerlo en mi página Web.

¿Puede alguien punto me en la dirección correcta? ¿Esto sería un trabajo php puramente que supongo? Y también si alguien sabe de una guía general para este tipo de cosas un vínculo sería maravillosa.

Gracias por todos los chicos de asesoramiento, realmente lo agradecería.

Editar - gracias por la ayuda actual todos, heres lo actualmente estoy tratando de hacer con este sitio...

Básicamente me gustaría que mi página de inicio para hacer lo siguiente:
1 - Comprobar si el visitante en la página principal se registra en los foros
2 - En caso afirmativo, mostrar esta información en la página de inicio
3 - Si no, mostrar que el visitante no se registra en los foros de la página de inicio
4 - Proporcionar un cuadro de inicio de sesión y registrar el vínculo en la página de inicio de los foros (ya tienen esta hecha gracias a natas :D )
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Marzo 14th, 2012, 8:20 pm

  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Registrado: Mar 28, 2009
  • Mensajes: 305
  • Loc: AFK
  • Status: Offline

Nota Marzo 14th, 2012, 8:54 pm

Heres el código que uso para uno de mis sitios, tal vez se puede utilizar como guía.

EDIT: Esto sólo permite a los usuarios registrar desde una página "Inicio" de su sitio fuera de los foros y registrarse automáticamente en los foros.

Código: [ Select ]
{
    // username and password and email sent from form
    $username=$_POST['username'];
    $password=$_POST['password'];
    $user_email=$_POST['email'];
    
    // CHECK YOUR $_POST VARIABLES TO MAKE SURE THEY'RE VALID.
    
    if ($tests==false) // TOTALLY GENERIC, YOU WILL HAVE TO RUN YOUR OWN TESTS
    {
        header("location: error.php");
    }
    else    
    {
        // PHPBB requires this so it doesn't kick you out of the pages or produce an error
        define('IN_PHPBB', true);
        $phpbb_root_path = 'forums/';
        $phpEx = substr(strrchr(__FILE__, '.'), 1);
        include($phpbb_root_path . 'common.php');
        include($phpbb_root_path . 'includes/functions_user.php');
        include($phpbb_root_path . 'includes/ucp/ucp_register.php');


        // Forum Database Variables
        $host="yourhost.yourhostdomain.com"; // Host name
        $dbusername="username"; // Mysql username
        $dbpassword="databasepassword"; // Mysql password
        $db_name="databasename"; // Database name
        $users_tbl="phpbb_users"; // Table name for PHPBB Users
        $group_tbl="phpbb_user_group"; // Table Name for PHPBB Groups

        // Connect to server and select database
        mysql_connect("$host", "$dbusername", "$dbpassword")or die("cannot connect");
        mysql_select_db("$db_name")or die("cannot select DB");

        // A check to see if the username is unique
        $sql="SELECT * FROM $users_tbl WHERE username='$username'";
        $result=mysql_query($sql);
        $count=mysql_num_rows($result);
    
        // A check to see if the email is unique
        $sql2="SELECT * FROM $users_tbl WHERE user_email='$user_email'";
        $result2=mysql_query($sql2);
        $count2=mysql_num_rows($result2);

        if($count==1)
        {
            header("location: error.php");
        }
        elseif($count2==1)
        {
            header("location: error.php");
        }
        else
        {

    $sql_ary = array(
      'username'     => $username,
      'username_clean'  => $username_clean,
      'user_password'   => phpbb_hash($password),
      'user_pass_convert' => 0,
      'user_email'    => $user_email,
      'user_email_hash'  => crc32(strtolower($user_email)) . strlen($user_email),
      'group_id'     => 2,
      'user_type'     => 0,
    );
  user_add($sql_ary);
        }
    }
}
  1. {
  2.     // username and password and email sent from form
  3.     $username=$_POST['username'];
  4.     $password=$_POST['password'];
  5.     $user_email=$_POST['email'];
  6.     
  7.     // CHECK YOUR $_POST VARIABLES TO MAKE SURE THEY'RE VALID.
  8.     
  9.     if ($tests==false) // TOTALLY GENERIC, YOU WILL HAVE TO RUN YOUR OWN TESTS
  10.     {
  11.         header("location: error.php");
  12.     }
  13.     else    
  14.     {
  15.         // PHPBB requires this so it doesn't kick you out of the pages or produce an error
  16.         define('IN_PHPBB', true);
  17.         $phpbb_root_path = 'forums/';
  18.         $phpEx = substr(strrchr(__FILE__, '.'), 1);
  19.         include($phpbb_root_path . 'common.php');
  20.         include($phpbb_root_path . 'includes/functions_user.php');
  21.         include($phpbb_root_path . 'includes/ucp/ucp_register.php');
  22.         // Forum Database Variables
  23.         $host="yourhost.yourhostdomain.com"; // Host name
  24.         $dbusername="username"; // Mysql username
  25.         $dbpassword="databasepassword"; // Mysql password
  26.         $db_name="databasename"; // Database name
  27.         $users_tbl="phpbb_users"; // Table name for PHPBB Users
  28.         $group_tbl="phpbb_user_group"; // Table Name for PHPBB Groups
  29.         // Connect to server and select database
  30.         mysql_connect("$host", "$dbusername", "$dbpassword")or die("cannot connect");
  31.         mysql_select_db("$db_name")or die("cannot select DB");
  32.         // A check to see if the username is unique
  33.         $sql="SELECT * FROM $users_tbl WHERE username='$username'";
  34.         $result=mysql_query($sql);
  35.         $count=mysql_num_rows($result);
  36.     
  37.         // A check to see if the email is unique
  38.         $sql2="SELECT * FROM $users_tbl WHERE user_email='$user_email'";
  39.         $result2=mysql_query($sql2);
  40.         $count2=mysql_num_rows($result2);
  41.         if($count==1)
  42.         {
  43.             header("location: error.php");
  44.         }
  45.         elseif($count2==1)
  46.         {
  47.             header("location: error.php");
  48.         }
  49.         else
  50.         {
  51.     $sql_ary = array(
  52.       'username'     => $username,
  53.       'username_clean'  => $username_clean,
  54.       'user_password'   => phpbb_hash($password),
  55.       'user_pass_convert' => 0,
  56.       'user_email'    => $user_email,
  57.       'user_email_hash'  => crc32(strtolower($user_email)) . strlen($user_email),
  58.       'group_id'     => 2,
  59.       'user_type'     => 0,
  60.     );
  61.   user_add($sql_ary);
  62.         }
  63.     }
  64. }
Custom Web Design
  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Registrado: Mar 28, 2009
  • Mensajes: 305
  • Loc: AFK
  • Status: Offline

Nota Marzo 14th, 2012, 9:17 pm

Permitir a los usuarios iniciar sesión:

Código: [ Select ]
<form action="./phpBB3/ucp.php?mode=login" method="post">
    <label for="username">Username:</label>&nbsp;
    <input type="text" name="username" id="username" size="20" title="Username" />
    <label for="password">Password:</label>&nbsp;
    <input type="password" name="password" id="password" size="20" title="Password" />
    <input type="hidden" name="redirect" value="whereyouwanttheusertoendup.php" />
    <input type="submit" name="login" value="LOGIN" />
</form>
  1. <form action="./phpBB3/ucp.php?mode=login" method="post">
  2.     <label for="username">Username:</label>&nbsp;
  3.     <input type="text" name="username" id="username" size="20" title="Username" />
  4.     <label for="password">Password:</label>&nbsp;
  5.     <input type="password" name="password" id="password" size="20" title="Password" />
  6.     <input type="hidden" name="redirect" value="whereyouwanttheusertoendup.php" />
  7.     <input type="submit" name="login" value="LOGIN" />
  8. </form>
Custom Web Design
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Mar 14, 2012
  • Mensajes: 11
  • Status: Offline

Nota Marzo 14th, 2012, 9:39 pm

Gracias natas tanto. Voy a trabajar con el código que me dieron e informar con resultados.

Cuídate
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Mar 14, 2012
  • Mensajes: 11
  • Status: Offline

Nota Marzo 14th, 2012, 10:12 pm

Oye Natas (o quien quiera ayudar), bastante hice algunos copiar y pegar en el primer código que publicado en mi página de inicio. He salvado mi página de inicio como un archivo de php y acaba de insertar el derecho de código donde quería.

Por supuesto, he cambiado la información importante (nombre de host, usuario de base de datos, etc.). Pero obtengo el siguiente error en mi página en línea ahora...


Advertencia: Cannot modify header information - headers already sent by (output started at /hermes/web06/b2402/moo.stonerlifestylecom/index.php:8) in /hermes/web06/b2402/moo.stonerlifestylecom/index.php on line 110

Ahora no modificar la parte de "ejecuta su propia prueba aquí" que había en el código. ¿Estoy suponiendo que estoy recibiendo este error a causa de esto? Estoy hablando de este código aquí:
Código: [ Select ]
if ($tests==false) // TOTALLY GENERIC, YOU WILL HAVE TO RUN YOUR OWN TESTS
  {
    header("location: error.php");
  }
  1. if ($tests==false) // TOTALLY GENERIC, YOU WILL HAVE TO RUN YOUR OWN TESTS
  2.   {
  3.     header("location: error.php");
  4.   }


Gracias por todas las respuestas.
  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Registrado: Mar 28, 2009
  • Mensajes: 305
  • Loc: AFK
  • Status: Offline

Nota Marzo 14th, 2012, 10:18 pm

Mi código no era realmente para copiar/pegar. Mirando hacia ella, no incluso quité los paréntesis de apertura en línea 1. lol.

Los encabezados son redirecciones sólo en el caso de un error, puede manejar errores sin embargo lo desea. La razón por la que está viendo "headers already sent" errores es debido a algún tipo de trato de búfer de salida. (Mal ser honesto. No realmente entiendo).

Acaba de agregar
ob_start ();

la parte superior de mis páginas y parece resolver el problema.

Tal vez desee comprobar el sitio Web de PHP para obtener más información.
Custom Web Design
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Mar 14, 2012
  • Mensajes: 11
  • Status: Offline

Nota Marzo 14th, 2012, 10:42 pm

Decidí ejecutar el código de segundo, y que funciona de maravilla. Creo que registrar en mi página de inicio no es una gran cosa para mí, yo sólo vinculará a registrar en el inicio de sesión.

Realmente me gustaría aprender una forma de mostrar que el usuario esté conectado a los foros de la página de inicio. ¿Esto sería relativamente fácil de hacer? Si es así ¿cómo sería pasar sobre él?

Básicamente me gustaría que mi página de inicio para hacer lo siguiente:
1 - Comprobar si el visitante en la página principal se registra en los foros
2 - En caso afirmativo, mostrar esta información en la página de inicio
3 - Si no, mostrar que el visitante no se registra en los foros de la página de inicio
4 - Proporcionar un cuadro de inicio de sesión y registrar el vínculo en la página de inicio de los foros (ya tienen esta hecha gracias a natas :D )
  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Registrado: Mar 28, 2009
  • Mensajes: 305
  • Loc: AFK
  • Status: Offline

Nota Marzo 14th, 2012, 10:58 pm

Añadir esto a la parte superior de cualquier página que desee tener acceso a información de la sesión PHPBB

Código: [ Select ]
  <?php
  define('IN_PHPBB', true);
  $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
  $phpEx = substr(strrchr(__FILE__, '.'), 1);
  include($phpbb_root_path . 'common.' . $phpEx);
  $user->session_begin();
  $auth->acl($user->data);
  $user->setup();
  ?>
  1.   <?php
  2.   define('IN_PHPBB', true);
  3.   $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
  4.   $phpEx = substr(strrchr(__FILE__, '.'), 1);
  5.   include($phpbb_root_path . 'common.' . $phpEx);
  6.   $user->session_begin();
  7.   $auth->acl($user->data);
  8.   $user->setup();
  9.   ?>


Para comprobar si un usuario se registra en:

Código: [ Select ]
<?php
if ($user->data['user_id'] == ANONYMOUS)
{
  echo "USER IS NOT LOGGED IN"; // or whatever else you want it to say
}

else
{
  echo "USER IS LOGGED IN"; // same here, edit the output as you wish
}

?>
  1. <?php
  2. if ($user->data['user_id'] == ANONYMOUS)
  3. {
  4.   echo "USER IS NOT LOGGED IN"; // or whatever else you want it to say
  5. }
  6. else
  7. {
  8.   echo "USER IS LOGGED IN"; // same here, edit the output as you wish
  9. }
  10. ?>
Custom Web Design
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Mar 14, 2012
  • Mensajes: 11
  • Status: Offline

Nota Marzo 15th, 2012, 12:59 am

Gracias tanto Natas, he podido todo lo que desea ejecutar ejecutar correctamente. ¿Lo único que me queda es cómo me eco de nuevo el nombre de usuario del visitante del sitio si registran?

Tener el siguiente código trabajando aquí para esta parte, pero simplemente no saben cómo me puedo echo atrás el nombre de los usuarios.

Código: [ Select ]
<?php
if ($user->data['user_id'] == ANONYMOUS) {
?>
  <form action="./forum/ucp.php?mode=login" method="post">
  <label for="username">Username:</label>
  &nbsp;
  <input type="text" name="username" id="username" size="20" title="Username" />
  <label for="password"><br>
  Password:</label>
  &nbsp;
  <input type="password" name="password" id="password" size="20" title="Password" />
  <input type="hidden" name="redirect" value="./index.php" />
  <br>
  <input type="submit" name="login" value="LOGIN" />
  </form>         

<?php }
else
{
 echo $user->data['user_name']; //This line does not work, I was just testing things
 echo "You are logged in."; // same here, edit the output as you wish
}
?>
  1. <?php
  2. if ($user->data['user_id'] == ANONYMOUS) {
  3. ?>
  4.   <form action="./forum/ucp.php?mode=login" method="post">
  5.   <label for="username">Username:</label>
  6.   &nbsp;
  7.   <input type="text" name="username" id="username" size="20" title="Username" />
  8.   <label for="password"><br>
  9.   Password:</label>
  10.   &nbsp;
  11.   <input type="password" name="password" id="password" size="20" title="Password" />
  12.   <input type="hidden" name="redirect" value="./index.php" />
  13.   <br>
  14.   <input type="submit" name="login" value="LOGIN" />
  15.   </form>         
  16. <?php }
  17. else
  18. {
  19.  echo $user->data['user_name']; //This line does not work, I was just testing things
  20.  echo "You are logged in."; // same here, edit the output as you wish
  21. }
  22. ?>
  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Registrado: Mar 28, 2009
  • Mensajes: 305
  • Loc: AFK
  • Status: Offline

Nota Marzo 15th, 2012, 6:35 am

$user - &gt; data ["usuario"]
o
$user - &gt; data ["username_clean"]

No puedo recordar
Custom Web Design
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Mar 14, 2012
  • Mensajes: 11
  • Status: Offline

Nota Marzo 15th, 2012, 11:27 am

$user - &gt; data ["usuario"] muestra inicialmente algún error en la parte superior con advertencias sobre alguna información de encabezado ya está enviando o algo. Pero repentinamente después de una carrera a través de pruebas para ver si funciona correctamente (lo que hizo) los errores fueron simplemente todo pasado.

Apagarse y he volverse a través de las páginas más de unas cuantas veces para probar todo y no ha habido un error desde la primera vez que lo probé. Raro pero agradable.

Así que supongo que tengo todo lo que necesito resolver.

Tener un día maravilloso todo, especialmente natas!
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Mar 14, 2012
  • Mensajes: 11
  • Status: Offline

Nota Marzo 16th, 2012, 10:55 am

Siento un chicos de lo pasado...estoy viendo al azar este error en mi página de inicio cuando usted no está conectado todavía. Una vez que inicie sesión, desaparece...

[phpBB Debug] PHP Warning: en archivo [ROOT]/includes/session.php en línea 1035: Cannot modify header information - headers already sent by (output started at /hermes/web06/b2402/moo.stonerlifestylecom/index.php:8)
[phpBB Debug] PHP Warning: en archivo [ROOT]/includes/session.php en línea 1035: Cannot modify header information - headers already sent by (output started at /hermes/web06/b2402/moo.stonerlifestylecom/index.php:8)
[phpBB Debug] PHP Warning: en archivo [ROOT]/includes/session.php en línea 1035: Cannot modify header information - headers already sent by (output started at /hermes/web06/b2402/moo.stonerlifestylecom/index.php:8)

EDIT: se nota que la página de inicio sigue siendo completamente funcional con los mensajes de error sólo aparece en la parte superior de la pantalla.
  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Registrado: Mar 28, 2009
  • Mensajes: 305
  • Loc: AFK
  • Status: Offline

Nota Marzo 16th, 2012, 11:11 am

Sólo puede activar fuera de notificación de errores:)

Código: [ Select ]
error_reporting("E_ALL");

Pero eso es un poco ignorar el problema.

Cada vez que me sale ese error de encabezado, sólo agrego esto a la parte superior de la página.

Código: [ Select ]
ob_start();


http://php.net/manual/en/function.ob-start.php
Custom Web Design
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Mar 14, 2012
  • Mensajes: 11
  • Status: Offline

Nota Marzo 16th, 2012, 12:19 pm

Se ha insertado el ob_start (); línea en varios lugares en la página de inicio y el archivo session.php y podría no obtener el error mensaje a salir.

También intenté insertar el mensaje de error fuera cosa como una prueba sobre el índice y no hizo el mensaje de error dejar bien...

¿Debo colocar el código en el archivo/área mal de archivo?
  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Registrado: Mar 28, 2009
  • Mensajes: 305
  • Loc: AFK
  • Status: Offline

Nota Marzo 16th, 2012, 1:13 pm

¿¿Colocarlos u dentro de etiquetas PHP y en la cima de su página de inicio?
Custom Web Design
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Marzo 16th, 2012, 1:13 pm

Publicar Información

  • Total de mensajes en este tema: 20 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 105 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC