Entre Blogs Portal

Publicado por Fernando Tellado | 28 Agosto 2008

Parche al error de Akismet 2.1.7 (actualizado)

El lector de Ayuda WordPress g30rg3_x, administrador/blogger de g30rg3x.com ha encontrado el posible error con la actualización del plugin Akismet en su versión 2.1.7. Según el mismo relata en los comentarios es debido a esto …

El problema se introdujo en este cambio (líneas 718/727)
http://plugins.trac.wordpress.org/changeset/61062/akismet/trunk/akismet.php

La solucion es obviamente quitar ese cambio…
o sea, cambiar la linea 727 que se encuentra con:

if ( ! ( isset( $_GET['recheckqueue'] ) || isset( $_POST['action'] ) ) )

Por

if ( !isset( $_GET['recheckqueue'] ))

Por ahora no puedo sacar un parche por que me encuentro viendo la repercusiones que causa este movimiento a WP 2.7 (para ver si rompo algo con la compatibilidad con WP 2.7).
Así que por mientras lo que lo necesiten un parche temporal para borrar sus miles de comentarios spam ahí lo tienen.

En la linea de ejemplo de la 727 no es $_POST['action'] si no $_REQUEST['action'] así que no se asusten si no ven ese POST xD…

Ahora corrigiendo mi parche, para mantener todavía así la compatibilidad para WP 2.7 sugiero en lugar de usar el parche anterior este…

Como siempre es cambiar la linea 727 por:
if ( ! ( isset( $_GET['recheckqueue'] ) || isset( $_GET['action'] ) ) )

Como ven solo estamos cambiando el REQUEST por GET.
La explicación “lógica” del fallo (para los que lo quieran comprender)…
El fallo ocurre debido a que al encontrarse definido action en una variable POST (cuando borramos o recuperamos) la tabla de verdad queda Falso Verdadero lo que da verdadero y como se niega se convierte este Verdadero en falso causando que en lugar de proceder con el borrado se ejecute el código de akismet_recheck_queue() evitando que el código de borrado y recuperado jamas se ejecute.

IMPORTANTE

Como el mismo dice, es mejor que no lo apliques a no ser que sea un verdadero problema para ti acumular spam “capturado” en su carpeta hasta que el equipo de Akismet lo solucione.

Por nuestra parte ya he comunicado a Automattic el problema y la posible solución, así que si sacan un parche esta noche es gracias a vosotros, y en concreto al fiera del código g30rg3_x ;)

También te puede interesar:

11 comentarios | Escribe un comentario

  1. g30rg3_x (13 comentarios) - 28/08/2008 a las 21:03

    Mande otro mejor y con explicacion en la nota, checalo…

    por cierto me estoy fijando que se te fue un “)” que entro mal codificado como &#41 :P.

    Saludos

  2. CalinSoft (18 comentarios) - 28/08/2008 a las 21:22

    si no se por que deberia ser
    esto

    if ( ! ( isset( $_GET['recheckqueue'] ) || isset( $_REQUEST['action'] ) ) )

    por
    if ( ! ( isset( $_GET['recheckqueue'] ) ) )

    sin la entiedad &#41

  3. Fernando Tellado (1244 comentarios) - 28/08/2008 a las 21:23

    Creo que ya lo he apañado, a ver si ahora que da como dices g30rg3_x. Lo del ) es un error tonto, a mi me pasa a diario ;)

  4. g30rg3_x (13 comentarios) - 28/08/2008 a las 21:32

    Si se me fue…

    es un problema tratar de meter código sin que te lo “toquen demasiado”, ya empece un poco la difusión de la corrección
    http://wordpress.org/support/topic/199866?replies=14#post-839883

    Asi como que me encuentro ahora elaborando el diff para ponerlo en el trac de akismet.

    Saludos fernando.
    PD: Por cierto no soy lector de ayuda wordpress xD, soy lector de planeta wordpress asi que te leo a través de el así como comento a veces con el usuario anonimo (U anonimos) o bien con mi nickname en este caso.

    Saludos

  5. Fernando Tellado (1244 comentarios) - 28/08/2008 a las 21:41

    Bien hecho compadre , que sepan que hay personal hispano que está alerta y encima, como tu, sabe dar soluciones ;)

    Y lo del anonimato no pasa nada, hasta en las mejores familias pasa :D

    P.D.: si quieres quito lo de que eres lector, no problem ;)

  6. g30rg3_x (13 comentarios) - 28/08/2008 a las 21:50

    No te preocupes no mas te aviso :P
    Por cierto acaba de salir (cuestión de segundos al escribir este comentario) la versión 2.1.8…

    Aqui esta el cambio.
    http://plugins.trac.wordpress.org/changeset/62048/akismet/trunk/akismet.php
    Solo lo hicieron mas restrictivo que el mio.

    Saludos

  7. Fernando Tellado (1244 comentarios) - 28/08/2008 a las 21:52

    Seguro que es casualidad :mrgreen:

    Gracias ;)

  8. thinway (1 comentarios) - 29/08/2008 a las 11:07

    Parece que ya está disponible la versión 2.1.8 con supuestamente este problema arreglado. ¿Alguien lo ha comprobado?

  9. Fernando Tellado (1244 comentarios) - 29/08/2008 a las 12:36

Sitios que enlazan a esta entrada

Escribe un comentario




XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ayuda WordPress está alojado en Mediatemple - Tu también puedes

LO ÚLTIMO EN LOS FOROS

Cargando...

IN YOUR LANGUAGE

Spanish flagItalian flagChinese (Simplified) flagPortuguese flagEnglish flagGerman flagFrench flagJapanese flagRussian flagSwedish flagCatalan flagHebrew flag
By N2H