Annonce

  •  » Plugins
  •  » [Résolu] Modif FluxBB pour inscription directement dans la galerie.

#1 2012-11-20 00:56:11

thomorph
Membre
Mulhouse
2010-01-02
318

[Résolu] Modif FluxBB pour inscription directement dans la galerie.

Salut à tous,

ça fait un moment que j'ai le plugin register fluxBB pour synchro les utilisateurs de ma galerie avec mon forum.
Je voulais faire les modifications de register et login.php pour que mes utilisateurs voulant s'inscrire sur le forum soient redirigés vers la galerie.
Cependant j'obtient ce message d'erreur quand je veux m'inscrire
Parse error: syntax error, unexpected '/' in /mnt/113/sdb/a/4/achr68/forum/login.php on line 286

De plus si je veux me log ça r'envoi bien à la galerie mais la page ne s'affiche pas.

Serais ce car je suis chez Free?

Hors ligne

#2 2012-11-20 23:26:03

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

Bonsoir,

Je regarde çà dès que possible.

Hors ligne

#3 2012-11-20 23:42:03

thomorph
Membre
Mulhouse
2010-01-02
318

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

j'avais fais les modifs, la je suis revenu a la config par défaut.
Ps: une différence entre la manip décrite et la réalité que j'ai remarqué: <a href="login.php?action=forget" tabindex="5"><?php echo $lang_login['Forgotten pass']</a> moi j'avais un 6 dans ma config, j'ai essayé 5 ou 6 pas de changement.

Merci

Hors ligne

#4 2012-11-21 12:47:56

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

Tout dépend de la version de FluxBB utilisée. Chez moi, j'ai la dernière 1.5.1 et je me suis aperçu qu'il y a des trucs qui ne fonctionnent plus comme avant. J'espère avoir le temps de jeter un oeil ce soir.

Hors ligne

#5 2012-11-21 12:50:19

thomorph
Membre
Mulhouse
2010-01-02
318

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

1.4.8 me concernant

Hors ligne

#6 2012-11-21 19:17:51

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

Je suppose qu'il s'agit du forum http://achr68.free.fr/forum ?

J'ai fait une tentative d'inscription et j'arrive sur "Ces forums n'acceptent pas de nouveaux utilisateurs". Normal puisque tu es revenu sur les fichiers par défaut de FluxBB.

Peux-tu modifier à nouveau ton fichier ../forum/lang/french/register.php pour que je puisse me rendre compte du problème ?

A la place de :

Code:

'No new regs'      =>  'Ces forums n\'acceptent pas de nouveaux utilisateurs.',

Il faut mettre :

Code:

'No new regs'      =>  '<a href="http://[chemin vers la galerie]/register.php" > Cliquez ici pour vous inscrire </a>',

Parce que, pour moi, je n'ai pas trouvé de problèmes pendant mes tests (les trucs qui ne fonctionnaient plus depuis mon forum 1.5.1 étaient dus à une erreur de ma part lors de la mise à jour).

Hors ligne

#7 2012-11-22 16:33:51

thomorph
Membre
Mulhouse
2010-01-02
318

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

Avant EDIT: Il semblerait que mes cours tardifs à la Fac auront eu raison de ma vigilance l'autre jour.

En fait tout marche, j'ai refais les manip et plus de problème...
Mais ça me semble bizar de m'être trompé sur les 2 fichiers.

Encore désolé du dérangement.

Merci

PS: j'ai voulu me deconnecter du forum et j'ai de nouveau eu

Parse error: syntax error, unexpected '/' in /mnt/113/sdb/a/4/achr68/forum/login.php on line 286

Maintenant même en voulant me connecter sur le forum ça me le fait.
Alors que pas de problème au 1er essai.

Dernière modification par thomorph (2012-11-22 16:38:35)

Hors ligne

#8 2012-11-22 17:34:45

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

J'ai fait un essai d'inscription en passant par ton forum et, quand j'ai voulu ensuite m'identifier, j'ai eu l'erreur que tu mentionnes. Mais je pense que le problème ne vient pas du plugin Register_FluxBB mais de ton installation de FluxBB.

Vérifies la ligne 286 de ton fichier ./forum/login.php. Elle devrait contenir ceci :

Code:

<p class="actions"><span><a href="register.php" tabindex="5"><?php echo $lang_login['Not registered'] ?></a></span> <span><a href="login.php?action=forget" tabindex="6"><?php echo $lang_login['Forgotten pass'] ?></a></span></p>

Si c'est OK, alors vérifies ton fichier de traduction ./forum/lang/french/login.php. Il doit y avoir une coquille dedans qui génère un "/" quelque part. Le mieux serait de réinjecter le fichier login.php du package de langue FR d'origine que tu peux récupérer ici : http://fluxbb.org/resources/translation … 1.4.8.zip. Mais tu perdras les éventuelles modifs que tu y auras apporté.

Hors ligne

#9 2012-11-22 17:39:15

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

[HS] Je pense à un truc en voyant ton forum : Il n'est pas recommandé d'afficher la version de FluxBB. Comme c'est une version un peu ancienne, elle peut comporter des failles de sécurité connues et tu facilites le boulot d'un éventuel pirate ;-) [/HS]

Hors ligne

#10 2012-11-22 19:59:33

thomorph
Membre
Mulhouse
2010-01-02
318

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

Mais la ligne de code que tu m'as donné 286 c'est la que je fais la 2e modif du fichier non? donc je dois avoir

Code:

<?php

/**
 * Copyright (C) 2008-2012 FluxBB
 * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB
 * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
 */

if (isset($_GET['action']))
  define('PUN_QUIET_VISIT', 1);

define('PUN_ROOT', dirname(__FILE__).'/');
require PUN_ROOT.'include/common.php';


// Load the login.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/login.php';

$action = isset($_GET['action']) ? $_GET['action'] : null;

if (isset($_POST['form_sent']) && $action == 'in')
{
  $form_username = pun_trim($_POST['req_username']);
  $form_password = pun_trim($_POST['req_password']);
  $save_pass = isset($_POST['save_pass']);

  $username_sql = ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb') ? 'username=\''.$db->escape($form_username).'\'' : 'LOWER(username)=LOWER(\''.$db->escape($form_username).'\')';

  $result = $db->query('SELECT * FROM '.$db->prefix.'users WHERE '.$username_sql) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
  $cur_user = $db->fetch_assoc($result);

  $authorized = false;

  if (!empty($cur_user['password']))
  {
    $form_password_hash = pun_hash($form_password); // Will result in a SHA-1 hash

    // If there is a salt in the database we have upgraded from 1.3-legacy though havent yet logged in
    if (!empty($cur_user['salt']))
    {
      if (sha1($cur_user['salt'].sha1($form_password)) == $cur_user['password']) // 1.3 used sha1(salt.sha1(pass))
      {
        $authorized = true;

        $db->query('UPDATE '.$db->prefix.'users SET password=\''.$form_password_hash.'\', salt=NULL WHERE id='.$cur_user['id']) or error('Unable to update user password', __FILE__, __LINE__, $db->error());
      }
    }
    // If the length isn't 40 then the password isn't using sha1, so it must be md5 from 1.2
    else if (strlen($cur_user['password']) != 40)
    {
      if (md5($form_password) == $cur_user['password'])
      {
        $authorized = true;

        $db->query('UPDATE '.$db->prefix.'users SET password=\''.$form_password_hash.'\' WHERE id='.$cur_user['id']) or error('Unable to update user password', __FILE__, __LINE__, $db->error());
      }
    }
    // Otherwise we should have a normal sha1 password
    else
      $authorized = ($cur_user['password'] == $form_password_hash);
  }

  if (!$authorized)
    message($lang_login['Wrong user/pass'].'<a href="../achr68.free.fr/piwigo/password.php">'.$lang_login['Forgotten pass'].'</a>');

  // Update the status if this is the first time the user logged in
  if ($cur_user['group_id'] == PUN_UNVERIFIED)
  {
    $db->query('UPDATE '.$db->prefix.'users SET group_id='.$pun_config['o_default_user_group'].' WHERE id='.$cur_user['id']) or error('Unable to update user status', __FILE__, __LINE__, $db->error());

    // Regenerate the users info cache
    if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
      require PUN_ROOT.'include/cache.php';

    generate_users_info_cache();
  }

  // Remove this users guest entry from the online list
  $db->query('DELETE FROM '.$db->prefix.'online WHERE ident=\''.$db->escape(get_remote_address()).'\'') or error('Unable to delete from online list', __FILE__, __LINE__, $db->error());

  $expire = ($save_pass == '1') ? time() + 1209600 : time() + $pun_config['o_timeout_visit'];
  pun_setcookie($cur_user['id'], $form_password_hash, $expire);

  // Reset tracked topics
  set_tracked_topics(null);

  redirect(htmlspecialchars($_POST['redirect_url']), $lang_login['Login redirect']);
}


else if ($action == 'out')
{
  if ($pun_user['is_guest'] || !isset($_GET['id']) || $_GET['id'] != $pun_user['id'] || !isset($_GET['csrf_token']) || $_GET['csrf_token'] != pun_hash($pun_user['id'].pun_hash(get_remote_address())))
  {
    header('Location: index.php');
    exit;
  }

  // Remove user from "users online" list
  $db->query('DELETE FROM '.$db->prefix.'online WHERE user_id='.$pun_user['id']) or error('Unable to delete from online list', __FILE__, __LINE__, $db->error());

  // Update last_visit (make sure there's something to update it with)
  if (isset($pun_user['logged']))
    $db->query('UPDATE '.$db->prefix.'users SET last_visit='.$pun_user['logged'].' WHERE id='.$pun_user['id']) or error('Unable to update user visit data', __FILE__, __LINE__, $db->error());

  pun_setcookie(1, pun_hash(uniqid(rand(), true)), time() + 31536000);

  redirect('index.php', $lang_login['Logout redirect']);
}


else if ($action == 'forget' || $action == 'forget_2')
{
  if (!$pun_user['is_guest'])
    header('Location: index.php');

  if (isset($_POST['form_sent']))
  {
    // Start with a clean slate
    $errors = array();

    require PUN_ROOT.'include/email.php';

    // Validate the email address
    $email = strtolower(trim($_POST['req_email']));
    if (!is_valid_email($email))
      $errors[] = $lang_common['Invalid email'];

    // Did everything go according to plan?
    if (empty($errors))
    {
      $result = $db->query('SELECT id, username, last_email_sent FROM '.$db->prefix.'users WHERE email=\''.$db->escape($email).'\'') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());

      if ($db->num_rows($result))
      {
        // Load the "activate password" template
        $mail_tpl = trim(file_get_contents(PUN_ROOT.'lang/'.$pun_user['language'].'/mail_templates/activate_password.tpl'));

        // The first row contains the subject
        $first_crlf = strpos($mail_tpl, "\n");
        $mail_subject = trim(substr($mail_tpl, 8, $first_crlf-8));
        $mail_message = trim(substr($mail_tpl, $first_crlf));

        // Do the generic replacements first (they apply to all emails sent out here)
        $mail_message = str_replace('<base_url>', get_base_url().'/', $mail_message);
        $mail_message = str_replace('<board_mailer>', $pun_config['o_board_title'], $mail_message);

        // Loop through users we found
        while ($cur_hit = $db->fetch_assoc($result))
        {
          if ($cur_hit['last_email_sent'] != '' && (time() - $cur_hit['last_email_sent']) < 3600 && (time() - $cur_hit['last_email_sent']) >= 0)
            message($lang_login['Email flood'], true);

          // Generate a new password and a new password activation code
          $new_password = random_pass(8);
          $new_password_key = random_pass(8);

          $db->query('UPDATE '.$db->prefix.'users SET activate_string=\''.pun_hash($new_password).'\', activate_key=\''.$new_password_key.'\', last_email_sent = '.time().' WHERE id='.$cur_hit['id']) or error('Unable to update activation data', __FILE__, __LINE__, $db->error());

          // Do the user specific replacements to the template
          $cur_mail_message = str_replace('<username>', $cur_hit['username'], $mail_message);
          $cur_mail_message = str_replace('<activation_url>', get_base_url().'/profile.php?id='.$cur_hit['id'].'&action=change_pass&key='.$new_password_key, $cur_mail_message);
          $cur_mail_message = str_replace('<new_password>', $new_password, $cur_mail_message);

          pun_mail($email, $mail_subject, $cur_mail_message);
        }

        message($lang_login['Forget mail'].' <a href="mailto:'.$pun_config['o_admin_email'].'">'.$pun_config['o_admin_email'].'</a>.', true);
      }
      else
        $errors[] = $lang_login['No email match'].' '.htmlspecialchars($email).'.';
      }
    }

  $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_login['Request pass']);
  $required_fields = array('req_email' => $lang_common['Email']);
  $focus_element = array('request_pass', 'req_email');
  define ('PUN_ACTIVE_PAGE', 'login');
  require PUN_ROOT.'header.php';

// If there are errors, we display them
if (!empty($errors))
{

?>
<div id="posterror" class="block">
  <h2><span><?php echo $lang_login['New password errors'] ?></span></h2>
  <div class="box">
    <div class="inbox error-info">
      <p><?php echo $lang_login['New passworderrors info'] ?></p>
      <ul class="error-list">
<?php

  foreach ($errors as $cur_error)
    echo "\t\t\t\t".'<li><strong>'.$cur_error.'</strong></li>'."\n";
?>
      </ul>
    </div>
  </div>
</div>

<?php

}
?>
<div class="blockform">
  <h2><span><?php echo $lang_login['Request pass'] ?></span></h2>
  <div class="box">
    <form id="request_pass" method="post" action="login.php?action=forget_2" onsubmit="this.request_pass.disabled=true;if(process_form(this)){return true;}else{this.request_pass.disabled=false;return false;}">
      <div class="inform">
        <fieldset>
          <legend><?php echo $lang_login['Request pass legend'] ?></legend>
          <div class="infldset">
            <input type="hidden" name="form_sent" value="1" />
            <label class="required"><strong><?php echo $lang_common['Email'] ?> <span><?php echo $lang_common['Required'] ?></span></strong><br /><input id="req_email" type="text" name="req_email" size="50" maxlength="80" /><br /></label>
            <p><?php echo $lang_login['Request pass info'] ?></p>
          </div>
        </fieldset>
      </div>
      <p class="buttons"><input type="submit" name="request_pass" value="<?php echo $lang_common['Submit'] ?>" /><?php if (empty($errors)): ?> <a href="javascript:history.go(-1)"><?php echo $lang_common['Go back'] ?></a><?php endif; ?></p>
    </form>
  </div>
</div>
<?php

  require PUN_ROOT.'footer.php';
}


if (!$pun_user['is_guest'])
  header('Location: index.php');

// Try to determine if the data in HTTP_REFERER is valid (if not, we redirect to index.php after login)
if (!empty($_SERVER['HTTP_REFERER']))
{
  $referrer = parse_url($_SERVER['HTTP_REFERER']);
  // Remove www subdomain if it exists
  if (strpos($referrer['host'], 'www.') === 0)
    $referrer['host'] = substr($referrer['host'], 4);

  // Make sure the path component exists
  if (!isset($referrer['path']))
    $referrer['path'] = '';

  $valid = parse_url(get_base_url());
  // Remove www subdomain if it exists
  if (strpos($valid['host'], 'www.') === 0)
    $valid['host'] = substr($valid['host'], 4);

  // Make sure the path component exists
  if (!isset($valid['path']))
    $valid['path'] = '';

  if ($referrer['host'] == $valid['host'] && preg_match('%^'.preg_quote($valid['path'], '%').'/(.*?)\.php%i', $referrer['path']))
    $redirect_url = $_SERVER['HTTP_REFERER'];
}

if (!isset($redirect_url))
  $redirect_url = 'index.php';

$page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_common['Login']);
$required_fields = array('req_username' => $lang_common['Username'], 'req_password' => $lang_common['Password']);
$focus_element = array('login', 'req_username');
define('PUN_ACTIVE_PAGE', 'login');
require PUN_ROOT.'header.php';

?>
<div class="blockform">
  <h2><span><?php echo $lang_common['Login'] ?></span></h2>
  <div class="box">
    <form id="login" method="post" action="login.php?action=in" onsubmit="return process_form(this)">
      <div class="inform">
        <fieldset>
          <legend><?php echo $lang_login['Login legend'] ?></legend>
          <div class="infldset">
            <input type="hidden" name="form_sent" value="1" />
            <input type="hidden" name="redirect_url" value="<?php echo pun_htmlspecialchars($redirect_url) ?>" />
            <label class="conl required"><strong><?php echo $lang_common['Username'] ?> <span><?php echo $lang_common['Required'] ?></span></strong><br /><input type="text" name="req_username" size="25" maxlength="25" tabindex="1" /><br /></label>
            <label class="conl required"><strong><?php echo $lang_common['Password'] ?> <span><?php echo $lang_common['Required'] ?></span></strong><br /><input type="password" name="req_password" size="25" tabindex="2" /><br /></label>

            <div class="rbox clearb">
              <label><input type="checkbox" name="save_pass" value="1" tabindex="3" /><?php echo $lang_login['Remember me'] ?><br /></label>
            </div>

            <p class="clearb"><?php echo $lang_login['Login info'] ?></p>
            <p class="actions"><span><a href="register.php" tabindex="5"><?php echo $lang_login['Not registered'] ?></a></span> <span><a href="../achr68.free.fr/piwigo/password.php" tabindex="5"><?php echo $lang_login['Forgotten pass']</a></span></p>
          </div>
        </fieldset>
      </div>
      <p class="buttons"><input type="submit" name="login" value="<?php echo $lang_common['Login'] ?>" tabindex="4" /></p>
    </form>
  </div>
</div>
<?php

require PUN_ROOT.'footer.php';

Dernière modification par thomorph (2012-11-22 20:45:12)

Hors ligne

#11 2012-11-22 21:25:58

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

Ok, j'ai compris ce qui ne va pas : Il y a une erreur dans l'exemple que j'ai donné dans la partie "A propos de l'enregistrement d'utilisateur sur le forum FluxBB " pour effectuer les modifications dans les fichiers de FluxBB.

Au lieu de :

à la ligne 216:
<a href="login.php?action=forget" tabindex="5"><?php echo $lang_login['Forgotten pass']</a>
par :
<a href="../[VotreRacineDePiwigo]/password.php" tabindex="5"><?php echo $lang_login['Forgotten pass']</a>

il faut lire :

à la ligne 216:
<a href="login.php?action=forget" tabindex="5"><?php echo $lang_login['Forgotten pass']</a>
par :
<a href="../[VotreRacineDePiwigo]/password.php" tabindex="5"><?php echo $lang_login['Forgotten pass'] ?></a>

J'ai simplement oublié de fermer la balise php "?>". C'est une erreur grossière que je n'ai pas reproduite dans mes galeries et forums de test. Etrange que personne ne s'en soit rendu compte avant, depuis le temps que c'est ainsi...

Donc, pour corriger ton problème, dans ton fichier ./forum/login.php, remplace :

Code:

<span><a href="../achr68.free.fr/piwigo/password.php" tabindex="5"><?php echo $lang_login['Forgotten pass']</a></span></p>

Par :

Code:

<span><a href="../achr68.free.fr/piwigo/password.php" tabindex="5"><?php echo $lang_login['Forgotten pass'] ?></a></span></p>

Et çà devrait rouler. ;-)

De mon côté, je vais publier une correction du plugin.

Hors ligne

#12 2012-11-22 21:46:17

thomorph
Membre
Mulhouse
2010-01-02
318

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

C'est parfait, merci bien.

(PS, tu penses que je devrais passer le forum en 1.5? y a vraiment des nouveauté?)

Hors ligne

#13 2012-11-22 21:51:03

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

Des nouveautés, il y en a toujours quelques unes. Mais il y a surtout des failles de sécurités bouchées.
Rien que pour çà, je suis les mises à jour de FluxBB de très près.

En plus, la version 2.x (tant attendue !) va finir par arriver avec, cette fois, un lot important de changements. Pour la migration, plus il y aura d'écarts et plus cela risque d'être compliqué.

Hors ligne

#14 2012-11-22 21:51:45

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

Peux-tu passer le topic en résolu si tout est OK pour toi, stp ?

Hors ligne

#15 2012-11-22 21:59:05

thomorph
Membre
Mulhouse
2010-01-02
318

Re: [Résolu] Modif FluxBB pour inscription directement dans la galerie.

Ce qui me dérange un peu c'est justement la modif de fichiers entre les versions. Enfin je vais voir
Merci encore

Hors ligne

  •  » Plugins
  •  » [Résolu] Modif FluxBB pour inscription directement dans la galerie.

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact