Reliant les comptes Office de forum de la première page de mon site Web

  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Mar 14, 2012
  • Messages: 11
  • Status: Offline

Message Mars 14th, 2012, 8:20 pm

Hey guys. Je cherche à obtenir mon conseil forum sur mon site Web en collaboration avec le site principal. Je voudrais pour l'utilisateur d'avoir l'option de connexion sur le site principal, pas seulement sur les forums. J'aimerais aller plus loin et pouvoir en vedette une dernière section de fils sur la page d'accueil du site principal (pas la page d'accueil des forums).

J'exécute phpbb3 pour les forums sur mon site Web. Je suis familier non web programmation beaucoups plus que la programmation web, mais je crois que je suis parfaitement capable de lire comment je peux le faire et mettre en œuvre sur mon site Web.

Peut quelqu'un me pointer dans la bonne direction ? Ce serait purement php travail que je suppose ? Et aussi si quelqu'un sait d'un guide général pour ce genre de chose, un lien serait merveilleux.

Merci pour tous les gars de conseils, l'apprécie vraiment.

EDIT - Merci pour l'aide actuelle tous, heres ce que j'ai actuellement essaie avec ce site...

Fondamentalement, je tiens ma page d'accueil d'effectuer les opérations suivantes :
1 - Vérifier si le visiteur sur la page d'accueil est consigné dans les forums
2 - Si oui, afficher cette information sur la page d'accueil
3 - Si non, afficher que le visiteur n'est pas connecté dans les forums sur la page d'accueil
4 - Fournir un journal dans la boîte et enregistrer le lien sur la page d'accueil pour les forums (cela se fait grâce à natas ont déjà :D )
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Mars 14th, 2012, 8:20 pm

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

Message Mars 14th, 2012, 8:54 pm

Heres le code à utiliser pour l'un de mes sites, peut-être que vous pouvez l'utiliser comme rough guide.

EDIT : Ceci permet seulement aux utilisateurs d'enregistrer à partir d'une page « Accueil » de votre site de forums et d'enregistrer automatiquement pour les forums.

Code: [ 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
  • Inscription: Mar 28, 2009
  • Messages: 305
  • Loc: AFK
  • Status: Offline

Message Mars 14th, 2012, 9:17 pm

Permettre aux utilisateurs de se connecter :

Code: [ 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
  • Inscription: Mar 14, 2012
  • Messages: 11
  • Status: Offline

Message Mars 14th, 2012, 9:39 pm

Je vous remercie tellement natas. Je travaillerai avec le code que vous m'a donné et rapporter les résultats.

Prends soin de toi
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Mar 14, 2012
  • Messages: 11
  • Status: Offline

Message Mars 14th, 2012, 10:12 pm

Hey Natas (ou quiconque veut aider), j'ai fait quasiment un copier/coller sur le premier code vous posté sur ma page d'accueil. J'ai enregistré ma page d'accueil comme un fichier php et juste inséré le code juste où je le voulais.

Bien sûr, j'ai changé l'info importante (nom d'hôte, utilisateur de la base de données, etc.). Mais j'obtiens l'erreur suivante sur ma page en ligne maintenant...


Avertissement : Ne peut pas modifier les informations d'en-tête - en-têtes déjà envoyés par (sortie a commencé à /hermes/web06/b2402/moo.stonerlifestylecom/index.php:8) in /hermes/web06/b2402/moo.stonerlifestylecom/index.php on line 110

Maintenant je ne pas modifier la partie « exécuter votre test ici » vous avez dans le code. Je suppose que j'obtiens cette erreur à cause de cela ? Je parle de ce code ici :
Code: [ 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.   }


Merci pour toutes les réponses.
  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Inscription: Mar 28, 2009
  • Messages: 305
  • Loc: AFK
  • Status: Offline

Message Mars 14th, 2012, 10:18 pm

Mon code ne visait pas vraiment à être copie/collé. Si l'on se penche sur elle, je ne pas même supprimé les crochets d'ouverture sur la ligne 1. Lol.

Ces en-têtes sont justes les redirections dans le cas d'une erreur, vous pouvez gérer des erreurs mais que vous le souhaitez. La raison pour laquelle que vous voyez des erreurs « en-têtes déjà envoyés » est une sorte de deal de tampon de sortie. (Mal être honnête. Je ne pas vraiment comprends il).

J'ajouterai seulement
ob_start() ;

vers le haut de mes pages et qui semble résoudre le problème.

Vous pouvez consulter le site Web PHP pour obtenir de plus amples renseignements.
Custom Web Design
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Mar 14, 2012
  • Messages: 11
  • Status: Offline

Message Mars 14th, 2012, 10:42 pm

J'ai décidé d'exécuter votre deuxième code, et qui fonctionne merveilleusement. Je pense que les enregistrement de ma page d'accueil n'est pas un gros problème pour moi, je reliera vient se pour inscrire dans le cadre de la connexion.

Je voudrais vraiment apprendre une manière d'afficher que l'utilisateur est connecté sur les forums alors que sur la page d'accueil. Cela serait relativement simple à faire ? Si oui comment j'irais à ce sujet ?

Fondamentalement, je tiens ma page d'accueil d'effectuer les opérations suivantes :
1 - Vérifier si le visiteur sur la page d'accueil est consigné dans les forums
2 - Si oui, afficher cette information sur la page d'accueil
3 - Si non, afficher que le visiteur n'est pas connecté dans les forums sur la page d'accueil
4 - Fournir un journal dans la boîte et enregistrer le lien sur la page d'accueil pour les forums (cela se fait grâce à natas ont déjà :D )
  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Inscription: Mar 28, 2009
  • Messages: 305
  • Loc: AFK
  • Status: Offline

Message Mars 14th, 2012, 10:58 pm

Ajoutez ceci vers le haut de n'importe quelle page que vous souhaitez accéder aux informations de session PHPBB

Code: [ 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.   ?>


Pour vérifier si un utilisateur est connecté :

Code: [ 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
  • Inscription: Mar 14, 2012
  • Messages: 11
  • Status: Offline

Message Mars 15th, 2012, 12:59 am

Je vous remercie tellement Natas, j'ai pu tout ce que je veux exécuter exécuter avec succès. La seule chose que j'ai laissé est comment je renvoyons le nom d'utilisateur d'un visiteur du site si ils sont connectés ?

J'avoir le code suivant fonctionne ici pour cette partie, mais juste ne sais pas comment je peux écho retour le nom des utilisateurs.

Code: [ 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
  • Inscription: Mar 28, 2009
  • Messages: 305
  • Loc: AFK
  • Status: Offline

Message Mars 15th, 2012, 6:35 am

$user - &gt; données ["username"]
ou
$user - &gt; données ["username_clean"]

Je ne me souviens pas
Custom Web Design
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Mar 14, 2012
  • Messages: 11
  • Status: Offline

Message Mars 15th, 2012, 11:27 am

$user - &gt; données ["username"] initialement affichent une erreur au sommet avec des avertissements au sujet des informations d'en-tête déjà envoyés ou quelque chose. Mais soudain après une course à travers des tests pour voir si il fonctionne correctement (qui elle l'a fait) les erreurs étaient juste tous disparu.

J'ai pédalé à travers les pages plus de quelques fois pour tester tout cela et il n'a pas été une erreur depuis la première fois que je l'ai essayé. Bizarre mais agréable.

Donc je suppose que j'ai obtenu tout ce dont j'ai besoin résolus.

Ont une merveilleuse journée natas tous, surtout !
  • StonerLifestyle
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Mar 14, 2012
  • Messages: 11
  • Status: Offline

Message Mars 16th, 2012, 10:55 am

Désolé un gars de chose dernier...je suis au hasard vu cette erreur sur ma page d'accueil lorsque vous n'êtes pas connecté pourtant. Une fois que vous vous connectez, il va plus loin...

[phpBB Debug] PHP Warning : en fichier [ROOT]/includes/session.php en ligne 1035 : Impossible de modifier les informations d'en-tête - en-têtes déjà envoyés par (sortie a commencé à /hermes/web06/b2402/moo.stonerlifestylecom/index.php:8)
[phpBB Debug] PHP Warning : en fichier [ROOT]/includes/session.php en ligne 1035 : Impossible de modifier les informations d'en-tête - en-têtes déjà envoyés par (sortie a commencé à /hermes/web06/b2402/moo.stonerlifestylecom/index.php:8)
[phpBB Debug] PHP Warning : en fichier [ROOT]/includes/session.php en ligne 1035 : Impossible de modifier les informations d'en-tête - en-têtes déjà envoyés par (sortie a commencé à /hermes/web06/b2402/moo.stonerlifestylecom/index.php:8)

EDIT : Je note que la page d'accueil est encore pleinement fonctionnelle avec les messages d'erreur apparaître juste sur le dessus de l'écran.
  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Inscription: Mar 28, 2009
  • Messages: 305
  • Loc: AFK
  • Status: Offline

Message Mars 16th, 2012, 11:11 am

Vous pourrait juste au large de rapport d'erreurs:)

Code: [ Select ]
error_reporting("E_ALL");

Mais c'est kinda ignorer le problème.

Chaque fois que je reçois cette erreur d'en-tête, je juste ajouter ceci vers le haut de ma page.

Code: [ Select ]
ob_start();


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

Message Mars 16th, 2012, 12:19 pm

J'ai inséré la ob_start() ; la ligne en divers endroits sur la page d'accueil et le fichier session.php et ne pouvaient pas obtenir le message d'erreur de quitter.

J'ai essayé également insérer le message d'erreur sur la chose comme un essai sur l'index et qui n'a pas fait le message d'erreur soit quitter...

Je dois placer le code dans le fichier/la zone erronée du fichier ?
  • natas
  • PHP Ninja
  • Proficient
  • No Avatar
  • Inscription: Mar 28, 2009
  • Messages: 305
  • Loc: AFK
  • Status: Offline

Message Mars 16th, 2012, 1:13 pm

A u les placer à l'intérieur des balises PHP et en haut de votre page d'accueil ?
Custom Web Design
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Mars 16th, 2012, 1:13 pm

Afficher de l'information

  • Total des messages de ce sujet: 20 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 189 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC