Support de smfgratuit

Réservé aux forums smf officiel => Aide pour nos réalisations => Discussion démarrée par: Marc le 04 Juillet 2007 à 13:12:19



Titre: [Bug smf 1.1.3] Blocage de la modification ajax dans les posts
Posté par: Marc le 04 Juillet 2007 à 13:12:19
Et oui, on nous qualifie de pirates, de mezants, de gens irrespectueux de la license, mais bon y'a tout de même des choses bizarres.
Alors dans le patch la modification du fichier Sources/post.php n'existe pas, pourquoi?, surtout que visiblement il s'agit bien là d'une securisation sur les permissions d'acces pour la reponse rapide...... :-X

Dans la distribution smf 1.1.2 nous avons le code suivant:
Citation
   $request = db_query("
      SELECT IFNULL(mem.realName, m.posterName) AS posterName, m.posterTime, m.body, m.ID_TOPIC, m.subject
      FROM ({$db_prefix}messages AS m, {$db_prefix}boards AS b)
         LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
      WHERE m.ID_MSG = " . (int) $_REQUEST['quote'] . "
         AND b.ID_BOARD = m.ID_BOARD
         AND $user_info[query_see_board]


      LIMIT 1", __FILE__, __LINE__);
   $context['close_window'] = mysql_num_rows($request) == 0;

Bizarre pas de modification dans le patch mais dans la version d'installation de smf 1.1.3 on trouve ceci
Citation
   $moderate_boards = boardsAllowedTo('moderate_board');

   $request = db_query("
       SELECT IFNULL(mem.realName, m.posterName) AS posterName, m.posterTime, m.body, m.ID_TOPIC, m.subject, t.locked
       FROM ({$db_prefix}messages AS m, {$db_prefix}boards AS b, {$db_prefix}topics AS t)
          LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
       WHERE m.ID_MSG = " . (int) $_REQUEST['quote'] . "
          AND b.ID_BOARD = m.ID_BOARD
          AND t.ID_TOPIC = m.ID_TOPIC
         AND $user_info[query_see_board]" . (!isset($_REQUEST['modify']) || (!empty($moderate_boards) && $moderate_boards[0] == 0) ? '' : '
          AND (t.locked = 0' . (empty($moderate_boards) ? '' : ' OR b.ID_BOARD IN (' . implode(', ', $moderate_boards)) . ')' . ')') . "
      LIMIT 1", __FILE__, __LINE__);
   $context['close_window'] = mysql_num_rows($request) == 0;

Et enfin la version corrigé par MkC (votre serviteur  ;D )
Citation
   $moderate_boards = boardsAllowedTo('moderate_board');

   $request = db_query("
       SELECT IFNULL(mem.realName, m.posterName) AS posterName, m.posterTime, m.body, m.ID_TOPIC, m.subject, t.locked
       FROM ({$db_prefix}messages AS m, {$db_prefix}boards AS b, {$db_prefix}topics AS t)
          LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
       WHERE m.ID_MSG = " . (int) $_REQUEST['quote'] . "
          AND b.ID_BOARD = m.ID_BOARD
          AND t.ID_TOPIC = m.ID_TOPIC
         AND $user_info[query_see_board]" . (!isset($_REQUEST['modify']) || (!empty($moderate_boards) && $moderate_boards[0] == 0) ? '' : '
          AND (t.locked = 0' . (empty($moderate_boards) ? '' : ' OR b.ID_BOARD IN (' . implode(', ', $moderate_boards)) . ')') . "
      LIMIT 1", __FILE__, __LINE__);
   $context['close_window'] = mysql_num_rows($request) == 0;