Annonce

Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

thomorph
2012-11-22 22:25:14

merci pour tout

Eric
2012-11-22 22:18:44

Justement ! La future version 2 de FluxBB embarquera un système de plugins. Un peu à la manière de Piwigo. Donc plus besoin de faire de mods qui peuvent être énormes et très pénibles à maintenir en cas de mise à jour.

Il y a déjà des plugins actuellement disponibles pour les version 1.5 de FluxBB mais il manque encore pas mal de points d'entrée (les hooks) pour pouvoir développer des plugins sans avoir à modifer le core du forum.

Donc, avec FluxBB 2, on pourra imaginer créer un plugin de bridge entre le forum et Piwigo et Register_FluxBB pourra s'y appuyer sans qu'il ne soit nécessaire de bidouiller dans le code. Mais çà, c'est une histoire que je n'écrirai probablement pas, ayant décidé de ne plus maintenir ce plugin (sauf bugs avérés, bien sur !).

thomorph
2012-11-22 21:59:05

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

Eric
2012-11-22 21:51:45

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

Eric
2012-11-22 21:51:03

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é.

thomorph
2012-11-22 21:46:17

C'est parfait, merci bien.

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

Eric
2012-11-22 21:25:58

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.

thomorph
2012-11-22 19:59:33

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';
Eric
2012-11-22 17:39:15

[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]

Eric
2012-11-22 17:34:45

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é.

thomorph
2012-11-22 16:33:51

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.

Eric
2012-11-21 19:17:51

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).

thomorph
2012-11-21 12:50:19

1.4.8 me concernant

Eric
2012-11-21 12:47:56

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.

thomorph
2012-11-20 23:42:03

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

Pied de page des forums

Propulsé par FluxBB

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