códigos de error de JSON en PHP

24 08 2016

No me llevo bien con los datos serializados, creo haber dicho antes que odio XML. Bajo esta premisa debe quedar claro que también aborrezco JSON.

Hace poco me encontré con una incógnita para mi inmarcesible mientras trataba de elucidar por que no obtenía los resultados esperados en PHP. Era que json_last_error() devolvía un número. UN NÚMERO!

Luego de una extensa búsqueda subo aquí la tabla que contiene el significado de los códigos de error de JSON en PHP:

0 = JSON_ERROR_NONE
1 = JSON_ERROR_DEPTH
2 = JSON_ERROR_STATE_MISMATCH
3 = JSON_ERROR_CTRL_CHAR
4 = JSON_ERROR_SYNTAX
5 = JSON_ERROR_UTF8

Es relevante recordar que deben usar esto solo como referencia y no condicionar su código a estos valores.

 

 





Disqus y una integracion de comentarios en mi pagina de 404

22 12 2013

Al tratar de publicar unos anuncios en olx(http://olx.com.pe) ingrese a http://olx.pe que me redirigió a http://geek.pe, donde encontré una entrada sobre como integrar Disqus a tu pagina. Fue muy fácil integrarla a mi pagina de 404 (no quería escribir toda una pagina solo para probarlo, tenia flojera y solo use el esqueleto. Como funciono, reemplace el código de mi pagina por este) y si que funciono.

Solo fue cuestión de registrarme, añadir mi pagina desde Disqus y subir el código. Listo!
Pueden probarlo en http://jukebox.webcindario.com/xyz (cambien xyz por lo que sea que No este en esa web, es una pagina de 404 legitima)

Con respecto a la configuración, no son cuestiones paranormales en las que entrare a tallar, por lo que puedes jugar con ellas a libertad y encontrar satisfacción.

http://geek.pe/como-integrar-el-sistema-de-comentarios-disqus-a-tu-web-o-blog/





alimentando a newrelic

30 07 2013

Tuve toda una frustrante tarde hace un par de días para configurar el agente de newrelic en mi lxle 12.04 con lampp, pero quede mas que satisfecho con la abundante data que obtuve una vez puse todo en orden.
Primero con instalarlo, llegue a la conclusión de que seria mas rápido (y lo fue) bajar el tar.gz y luego de desempaquetarlo correr el script de e instalarlo, pero fue mas que eso, puesto que me decía que no tengo php instalado (no me percate que significaba esto hasta mas tarde) así que alegremente instale php para la linea de comandos. Fue una de las cosas mas inútiles que hice en toda esa tarde, puesto que debía de volver a instalar el demonio pero para este php, para darme cuenta de que no se mostraban los datos en la web, puesto que esta utiliza el php de la carpeta de lampp. instale nuevamente el agente, pero esta vez con la dirección de php de la carpeta de lampp y, tragedia!!!
NO estaba configurado para iniciarse junto a php, debí editar el archivo php.ini de lampp y buscar iniciar manualmente el demonio. montado todo esto me doy con la grata sorpresa de que al ingresar a mi localhost ya enviaba data a newrelic.

El siguiente paso lógico para darle uso a mis 14 días de PRO gratuito, era montar una tarea repetitiva y ver los datos en la web de newrelic, lo tenia todo, todo menos idea de como. Y a esto es a lo que va este script: cada update_inc segundos, wget accede a el archivo iter.php y esto genera data en una cuenta de newrelic correctamente configurada.

iter=0
update_inc=15

while :
do

  clear
  ((iter=$iter+1))
  printf "\t%s iteraciones\n" $iter}
  pass=$[ $RANDOM % 3 ]
  wget --output-file=/home/iter_res.txt --post-data=$pass -S --spider http://localhost/iter.php
  sleep ${update_inc}
done
exit 0

iter.php puede ser cualquier cosa, desde un hola mundo hasta un lector de captchas
y el archivo txt es solo para saber que pasa algo.

En mi caso me puse a darle un trabajo ligero como cadenas aleatorias:

<?php
$random_from_dev=$_POST;

$sha_rand=sha1(uniqid(mt_rand(), true));


function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, strlen($characters) - 1)];
    }
    return $randomString;
}
$forirand=generateRandomString();

function generateShuffleString($length = 10) {
    return substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
}
$shuffleString = generateShuffleString();

print_r($random_from_dev);

echo $sha_rand."\n";
echo $forirand."\n";
echo $shuffleString."\n";
?>





new relic

29 07 2013

La publicidad me invade y es irresistible, no puedo defenderme ante la presión del vapor que mueve al pequeño steampunk que llevo dentro, menos puedo dejar de ir a donde sea que me mande ese banner: un polo gratis por probar newrelic. Y que zorra es newrelic? llego a una pagina de diseño nerdy en la que veo algo que NO esperaba, un vídeo de MC frontalot. Sera esto tan bueno como parece? veo el vídeo y le doy a crear una cuenta, luego creo una cuenta y la carga de la universidad me hace olvidar de ella por una semana, pero un correo de newrelic aparece en mi bandeja justo al comenzar mis vacaciones. Era el momento.
Comienzo a investigar mas, hasta enviar información que luego disfruto como siempre quise (servida al instante)

Esto es grande, si tienes la necesidad de tener estadísticas de tu sitio y no quieres hacerla complicada, pero tampoco te gusta que sean 2 clicks y listo: usa newrelic (luego quédate mirando vídeos de frontalot)

Por que si, 2013 es el año del nerd.





gravatar al estilo robohash

19 02 2013

http://robohash.org/nombre@correo.com?gravatar=yes la forma mas sencilla que conozco de obtener el gravatar de alguien o en su defecto obtener una imagen(robohash) que lo identifique basándonos en su dirección de correo.
La salida es directamente una imagen:
robohash

La url es mas corta que con gravatar y también admite modificadores(tamaño)





actualizacion forzada

18 09 2012

No me había dado cuenta, quizá estuve muy ocupado por meses como para presionar el botón de firebug y ver que muchos formularios fallaban no por un problema con GET o POST o mas bien dicho el procesamiento de los mismos, sino por que el formulario apuntaba a “”.

“”, la vacuidad , se recargaba la pagina(que era la intención inicial, pero sin los datos), recién hoy me di cuenta que por el alojamiento web que tengo(gratuito) ya no me deja usar $PHP_SELF por lo que debo usar  $_SERVER[‘PHP_SELF’], Es algo que iba  a suceder una forma u otra, pero que me obliga a actualizar scripts que había pensado concluidos(grave error,  no existe el script perfecto y nunca pararas de actualizarlo) y a pensar si seria sano comenzar a dedicarle un tiempo fijo a la semana a los que necesiten revisión para que sigan funcionando.

Los cursos en la MUT aumentan complejidad en cada ciclo y completarlos me aleja de la computadora, en este momento intento mantener vivo mi blog con unas cuantas entradas durante mis “vacaciones” y lo digo así por que en realidad este es el espacio entre un ciclo y otro que suceden acelerados para normalizar las clases perdidas por huelgas.  Si comienza el ciclo quizá ya no me quede tiempo para esto, si tomo en cuenta otras cosas que quiero hacer ademas de estudiar, como por ejemplo, vivir.





clean query

12 09 2012

Estaba revisando php.net, para solucionar algunas cosas de apuntesfcr cuando en la sección sobre $_GET me puse a revisar los comentarios que siempre tienen útiles scripts.  Hubo uno que llamo mi atención pues por mucho tiempo he hecho caso omiso a recomendaciones sobre usar htmlentities en los datos que se mandan por GET o por POST(oh no!!! ahora cualquiera va a hacer desastres en mi espacio web aprovechándose de eso).

El script en cuestión es pequeño por que realiza un sola cosa,  le hice algunas correcciones por que no funciono a la primera:

<?php
function cleanQuery($elem)
{
if(!is_array($elem))
$elem = htmlentities($elem,ENT_QUOTES,"UTF-8");
else
foreach ($elem as $key => $value)
$elem[$key] = cleanQuery($value);//antes $this->cleanQuery($value);
return $elem;
}
$_CLEAN = array();//estoy seguro de usarlo aqui, pero no tan seguro de definir los siguientes array, sera necesario???
if(!empty($_GET)){$_CLEAN['GET'] = array();$_CLEAN['GET'] = cleanQuery($_GET);}
if(!empty($_POST)){$_CLEAN['POST'] = array();$_CLEAN['POST'] = cleanQuery($_POST);}

//y si quisiera algo especifico? Es un array 2D, asi que: $_CLEAN['GET']['variable']
?>

No se que le pasa mi pobre teclado, debe ser el uso lo que me esta dejando sin la barra espaciadora(y algunas teclas que no quieren responder)





AdventusReminder gadget 1.0

1 12 2011

[ADVERTENCIA: Los gadgets fueron descontinuados, pues M$ los considera inseguros. Si están hechos con la suficiente astucia metafisicamente negativa, podrían implantar software indeseado en tu sistema (este no es el caso, si revisas el gadget, es solo una pagina web con una imagen)]

Si tienes windows vista o 7, tan simple como bajar este archivo(no abras el link, usa el boton derecho de tu mouse y guarda el archivo!!!), abrir el zip y darle doble click al gadgetLo demás es por si usas xp o si quieres hacer otra versión

Mi script para navidad me sigue gustando, pero no se si a alguien mas le gustara.
Pero se que poner cosas a disposición de otros no tiene como requisito que alguien las necesite(“voy a ayudarte lo necesites o no” XD) Pero me parece que tenerlo en una pagina no es suficiente, ni siquiera tenerlo para insertar en tus paginas, me di cuenta que lo necesitaba en mi escritorio.
Por eso busque primero a un programador de calidad(por flojera) pero me dijo que había formas mas fáciles de mostrar una imagen en el escritorio, por lo que busque como hacer un gadget para windows, básicamente un manifiesto .xml, una pagina .html en la que podría luego poner JS y las imágenes estáticas necesarias en un archivo .gadget que no es mas que un .zip con otra extensión.

<?xml version="1.0" encoding="utf-8" ?>
<gadget>
    <name>Adventus Reminder</name>
    <namespace>microsoft.windows</namespace>
    <version>1.0.0.0</version>
    <author name="FCR">
    <logo src="logo.png" />
    </author>
    <description>Adventus Reminder http://multiple.webcindario.com/works/ar/ar.php?getyours=1</description>
    <icons>
        <icon height="48" width="48" src="icon.png" />
    </icons>
    <hosts>
        <host name="sidebar">
            <base type="HTML" apiVersion="1.0.0" src="page.html" />
            <permissions>Full</permissions>
            <platform minPlatformVersion="1.0" />
        </host>
    </hosts>
</gadget>

page.html

<html> 

<head> 

<style>

      body

        {

               margin: 0;

               width: 125px;

               height: 62px;

               font: 'normal 8pt Arial';

               line-height: 12pt;

               text-align:center;

      }

 

</style>
 

</head>
 

<body>

<g:background src="http://multiple.webcindario.com/works/ar/ar.php">

</g:background>

</body>

</html>

Si tienes windows vista o 7, solo debes bajar este archivo y darle doble click

Ahora debo ponerlo en mi PC con windows Xp pero debo primero instalar una barra lateral para xp

[NOTA]: No necesitas quitarlo cuando pase la época de adviento, pues solo producirá una imagen transparente








A %d blogueros les gusta esto: