no recuerdo si este es mi primer posteo, por las dudas me presento, soy Pablo de Mar del Plata, Argentina y administro varios sitios con distintos gestores de foros, en este caso:
URL: http://www.mdq4x4.com.ar/foro/
Plantilla(s) usuada(s): subsilver2
MODs instalados: ninguno
Versión de phpBB: 3.0.7-PL1
Servidor: http://www.sectorhosting.com/ (pago)
me encontré con un problema cuando el administrador del servicio de Hosting decidió por seguridad deshabilitar la función de PHP base64_decode(), con esto dejo de andar el PHPBB y el foro no se veía bien ya que al dar errores no cargaba los css, deshabilité los errores y lo veía mejor pero no se reemplazaban las etiquetas PHPBB por su correspondiente función.
Primera solución, buscar en este foro, pero no encontré nada

Segunda solución, hacer entender al admin del hosting que necesitaba esa función, no hubo caso, todavía estoy esperando... tuvo ataques de troyanos eval(base64_decode... y hasta que no lo solucionen queda deshabilitado.
Tercera solución, reescribir esa función a mano y reemplazarla donde se utilizara, googlee pero no encontré nada hecho en PHP, supongo que es porque ya es una función del lenguaje y nadie se le ocurriría reescribirla, encontré una C y la "adapté" a PHP, tuve que cambiarla bastante, el C estaba muy bien utilizado por lo tanto no era fácil de "traducir", me quedó así:
Código: Seleccionar todo
<?php
//* Funcion Decode Base64 en PHP
function decode64($encStr) {
$base64s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
$decOut = "" ;
$i = 0 ;
for ($i=0; $i < strlen($encStr); $i+=4) {
$bits = str_pad(decbin(strpos($base64s, $encStr[$i])),6,"0",STR_PAD_LEFT).str_pad(decbin(strpos($base64s, $encStr[$i+1])),6,"0",STR_PAD_LEFT).str_pad(decbin(strpos($base64s, $encStr[$i+2])),6,"0",STR_PAD_LEFT).str_pad(decbin(strpos($base64s, $encStr[$i+3])),6,"0",STR_PAD_LEFT);
$decOut .= chr(bindec(substr($bits,0,8))).chr(bindec(substr($bits,8,8))).chr(bindec(substr($bits,16,8)));
}
if (ord($encStr[$i-2]) == 61) {
return substr($decOut, 0, strlen($decOut)-2);
}
else
if (ord($encStr[$i-1]) == 61) {
return substr($decOut, 0, strlen($decOut)-1);
}
else {
return $decOut;
}
}
?>
/viewtopic.php
/includes/functions_content.php
/includes/functions_posting.php
/includes/functions_privmsgs.php
con esos hasta ahora me alcanzó no se si deberé agregarla a algun lugar mas si lo encuentro lo haré.
Espero que les sirva para salir del paso.
