Ends primeta Evobas testing phase "Control your slugs"

Evobas has completed the first phase of testing, although alpha "Control your slugs" is ongoing expecting a winner.

Now he is preparing the second alpha "Semos green", with significant improvements in the level of gameplay, and that will change the shift system for real-time system.

I put some avatars of some species of the current players.

Share



Testing of payments with PayPal

I add an annex to the tutorial automatic generator Paypal payment notices about testing to see if our script works properly or not.

There are two feasible ways, in my opinion, to test the process.
1 Testing from the sandbox / developer PayPal.
2 Perform the test with two PayPal accounts and refund the amounts directly.
(Recommended)

1 Testing from the sandbox / developer PayPal.

First of all say that the data provided in the sandbox, data are fictitious and therefore no real validity. Another point I must make is that faithfully recreates the environment of PayPal, and more to be a point in its favor is a counter, since the accounts and other customization we may find it quite cumbersome.

For testing from the sandbox / development of PayPal, we have to follow the link on the footer of PayPal, Programmers.
The site is in English and I think the alternatives are French and German.
We registranos in section Testing / Sing Up and access our account.
Once inside we can create pre-builders users either seller or buyer, to spare us the tedious log-hand accounts. As I said language alternatives are few and these will be in English, French or German.
The Sandbox lets you see the fictitious mails in paragraph dedicated to having such data.
To test you simply logearte with fictitious data for your users and make purchases.
We strongly do not recommend this method for testing unless you have unlimited patience of a saint, since the site seems to be always congested and navigation becomes tedious.

2 Perform the test with two PayPal accounts and refund the amounts directly.

You simply create an account with another seller and buyer (personal mismamente) or arrange with a friend testing. The buyer purchases account for testing serves you as disposable as are 0.01 cents, and the seller the amount reintegras amount, which the transaction is carried back and not lose as 0.01 cents the amount and rate of the operation is returned.
del ingreso, pulsas en reintegrar (esta casi al final del informe), seleccionas la cantidad, reintegras y listo. To withdraw an entry from My Account you click on the details of the entry, reimburse you click on (this near the end of the report), you select the amount, reintegras and ready.

I hope to serve utility, documentation, chapter 14 - page 89, provides some other way more to shopping carts and more.

Share



Automatic Generator notices Paypal payments

Well, today I will explain the process to know when you have made a payment in your PayPal account.
Can you tell me, after simple, sneak mail.
But the question is this, automate the receipt of the notices to generate a custom report or trigger actions in our database and so on, the possibilities are quite extensive.


Well the first thing we need to do is to have a PayPal account.
To activate Instant Payment Notification, you need to access your account.
y bajo la cabecera Preferencias de venta clicamos en Preferencias de Notificación de pago instantánea . Since you access the My Account section and under the heading Profile Preferences Preferences click in selling Instant Payment Notification.
Once inside click on edit.
Activate the check box and assign a URL, which will be the destination of the messages.

To say that you can also activate Instant Payment Notification adding notify_url field = url, but I think it very advisable to do (unless you have multiple email accounts assigned to your paypal account) as it is a field that can be viewing by anyone.

Once you have activated the IPN, we generate the donation buttons / payment and add them to our website.

After the "visual infrastructure sale" but we need to make the file receiver notices.

Saying PayPal web available to a number of sample scripts for the following languages:
ASP.Net/C#
ASP.Net/VB
ASP / VBScript
Cold Fusion
Java / JSP
PERL
PHP
(We need to be logged in to view paypal, for documentation too)
The documentation can be found in the well

If you can not access I will upload somewhere.

I will continue using the example of PHP 4.1 offering on the web, and I will comment
then I will give an example with a database and each what suits your needs.
To say that despite my effort to save banks and others in the examples for a better view very perrete has eaten tabulations to publish the tutorial ¬¬ '

PHP 4.1

//comentado por Roberto Herrero para su blog http://blog-indomita.blogspot.com/
// read the post from PayPal system and add 'cmd'
//es la variable señuelo que hay que devolver a PayPal para que compruebe su veracidad
$req = 'cmd=_notify-validate';

//recogemos todos los datos POST que nos envía paypal y los guardamos en el mismo orden
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}

// post back to PayPal system to validate
//creamos la petición de llamada para avisar de la recepción
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
//en la documentación dice que pongas www.paypal.es pero supongo que es un errata, con .es no funciona así que deja el .com
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

// assign posted variables to local variables
//tomamos los valores del POST anterior
//nombre que hemos asignado al crear el botón
$item_name = $_POST['item_name'];
//número personal que hemos asignado al crear el botón
$item_number = $_POST['item_number'];
//estado del pago la buena noticia es que este en Completed xD
$payment_status = $_POST['payment_status'];
//ojo aquí que el payment_amount es el mc_gross no liarse que al mirar la documentación puede dar a confusiones
//la cantidad del ingreso
$payment_amount = $_POST['mc_gross'];
//igual que antes ojito xD
//la moneda del ingreso
$payment_currency = $_POST['mc_currency'];
//identificador alfanumérico que PayPal le asigna
$txn_id = $_POST['txn_id'];
//cuenta a la que se ha ingresado
$receiver_email = $_POST['receiver_email'];
//emisor del pago
$payer_email = $_POST['payer_email'];

if (!$fp) {
// HTTP ERROR
//no hemos podido conectar con paypal
} else {
//tenemos respuesta de paypal
fputs ($fp, $header . $req);
//leémos los datos recibidos, realmente estamos buscando si los datos que hemos recogido con anterioridad son válidos, ya que algún graciosillo/lamercillo puede estar intentando tomarnos el pelo
while (!feof($fp)) {
$res = fgets ($fp, 1024);
//comprobación verificada
if (strcmp ($res, "VERIFIED") == 0) {
// check the payment_status is Completed
//ahora tenemos que comprobar que el payment_status es Completed, en la documentación pone Completado pero ni caso xD
// check that txn_id has not been previously processed
//comprobamos en nuestra base de datos que no sea una transacción ya procesada, ¿por qué? para evitar malas intenciones de terceros no tiene sentido procesar algo que ya hemos procesado
// check that receiver_email is your Primary PayPal email
//comprobamos si el email de la transacción es el nuestro
// check that payment_amount/payment_currency are correct
//comprobamos que tanto la cantidad como la moneda son las correctas
// process payment
//si todo ha ido bien ya podemos procesar el pago/donación

//la comprobación es incorrecta
}else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
//aquí puedes guardar un log para ir investigando quién esta jugando con tu sistema
}
}
//cerramos
fclose ($fp);
}

Ejemplo con base de datos MySql
Requisitos previos:
* Conocer como crear el conector $link .
Te dejo el tutorial por si te interesa: Tutorial Conexión a MySql desde PHP
* La base de datos debe tener tantos campos como parametros desees guardar, en este caso guardaremos la fecha(datetime) y una cadena(varchar o text) con todos los parámetros, amén del identificador(varchar) único que otorga PayPal para la transacción

//comentado por Roberto Herrero para su blog http://www.miblog.indomita.org/
//recomiendo añadir un parámetro personal a la url que utilizaremos para gestionar los pagos, nuestro señuelo y si esta encriptado pos mejor
//con comprobar si la variable ha sido enviada creo que es suficiente,
pero si eres un paranoico y no te fias de los mamones que navegan por la red
puedes añadir && $_GET["antimamones"]==md5("nointentesjodermequetevasaenterar")
//el parámetro que pases por GET recuerda que tienes que agregarlo en el perfil de url IPN del comienzo de este manual.
if(isset($_GET["antimamones"]))
nuevo_ingreso();


    function nuevo_ingreso(){
      //esto ya lo he comentado antes así que paso xD
      // read the post from PayPal system and add 'cmd'
      $req = 'cmd=_notify-validate';

      foreach ($_POST as $key => $value) {
        $value = urlencode(stripslashes($value));
        $req .= "&$key=$value";
      }

    // post back to PayPal system to validate
    $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
    $fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

    // assign posted variables to local variables
    $item_name = $_POST['item_name'];
    $item_number = $_POST['item_number'];
    $payment_status = $_POST['payment_status'];
    $payment_amount = $_POST['mc_gross'];
    $payment_currency = $_POST['mc_currency'];
    $txn_id = $_POST['txn_id'];
    $receiver_email = $_POST['receiver_email'];
    $payer_email = $_POST['payer_email'];
    //podemos añadir el campo custom en nuestros botones (en el código una vez generados) con la información que deseemos, esto viene bien para identificar al usuario
    $custom = $_POST['custom'];


    //creamos una conexión a nuestra base de datos
    conecta($link); 
    if (!$fp) {
      // HTTP ERROR
    } else {
      //recorremos respuesta      
      fputs ($fp, $header . $req);

      while (!feof($fp)) {
        $res = fgets ($fp, 1024);
        if (strcmp ($res, "VERIFIED") == 0) {
       // check the payment_status is Completed
       if(strcmp ($payment_status, "Completed")==0){
         //la transacción esta completada
        // check that txn_id has not been previously processed

       //la función es_idenfiticador_alfanumerico comprueba que no inyecten sentencias SQL (usease antimamoneo) esta definida al final
       if(es_identificador_alfanumerico($txn_id)) {
         //comprobamos si no la hemos procesado ya
        $r=mysql_query("select count(txn_id) as repes from ingresos_recibidos where txn_id='".$txn_id."'",$link);
        $f=mysql_fetch_array($r);
        $repetida=(int)$f["repes"];
       }else{ $repetida=1;}
      //en el caso de que no sea válido tendremos valor 1
      if($repetida==0){
      //no es una transacción repetida
      // check that receiver_email is your Primary PayPal email
      if(strcmp ($receiver_email, "micorreo@loquesea.com")==0){
      //es un correo válido
      // check that payment_amount/payment_currency are correct
      //ahora pasamos a comprobar que tipo de pago ha realizado tenemos que anidar los diferentes casos de alguna manera, en el ejemplo lo he hecho con 2 casos
     //obtengo el usuario que ha hecho el ingreso del campo custom
     //supongo que tendrás tu propia clase de acceso y recogida de datos, si no la tienes lo que pongo es funcional
     $r=mysql_query("select usuario from tabla_usuarios where usuario=".((int)$custom), $link);
     $f=mysql_fetch_array($r);
     $usuario=(int)$f["usuario"];
     //caso 1: el pago es de 1.99 la moneda el EURO que son los valores que debería de tener el elemento identificador personal 1
     if($payment_amount==1.99&&strcmp($payment_currency, "EUR")==0
    &&$item_number==1&&$usuario>0){
    //aquí van las operaciones de guardado de informe y las que desencadenas al recibir un pago
    //ingresamos los datos
    $cadena=sprintf("guardando informe
    item_name=%s

    item_number=%s

    custom=%s

    payment_status=%s

    mc_gross=%s

    mc_currency=%s

    txn_id=%s

    receiver_email=%s

    payer_email=%s",
    $item_name,$item_number,$custom,$payment_status,$payment_amount,$payment_currency,$txn_id,$receiver_email,$payer_email);
    mysql_query("insert into ingresos_recibidos (cadena,txn_id,fecha) values ('".$cadena."'
    ,'".$txn_id."','".date("Y-m-d H:i:s")."')",$c);
    //actualizamos las gracias que le damos al usuario
    (mil gracias)

    mysql_query("update tabla_usuarios set gracias=gracias+1000 where usuario=".$usuario,$link);
    //caso 2: el pago es de 6.99 la moneda el EURO que son los valores que debería de tener el elemento identificador personal 2
    }elseif($payment_amount==6.99&&strcmp($payment_currency, "EUR")==0
    &&$item_number==2&&$usuario>0){
    //aquí van las operaciones de guardado de informe y las que desencadenas al recibir un pago
    //lo mismo que antes aunque yo recomiendo hacerse una funcioncita o algo que evite repetir código
    //actualizamos las gracias que le damos al usuario
    (un millón de gracias)
    mysql_query("update tabla_usuarios set gracias=gracias+1000000 where usuario=".$usuario,$link);
    }
    }
    }
    }
    }elseif (strcmp ($res, "INVALID") == 0) {
    // log for manual investigation
    }
    }
    fclose ($fp);
    }
    }

    //funcion antimamoneo, realmente no se el rango total de caractéres raros que envia paypal así que habría que adaptarla xD
    function es_identificador_alfanumerico($cadena){
      return ereg("^[A-Za-z0-9_]*$",$cadena);
    }

No he probado el código y seguramente tenga algun pequeño fallo (falta de paréntesis, ; o alguna } )

Reitero de que es un código orientativo y que cada uno tiene que adaptarlo y optimizarlo.
Paypal ofrece otros métodos IPN que incluyen conexión https y demás en el servidor.
El código del ejemplo no necesita una conexión segura para llevarse a cabo.
Si alguien ve algun agujero de seguridad le agradecería que me lo comunicase para modificarlo.

Anexo: Realizar pruebas de pagos con PayPal

Espero que a alguien le sirva de ayuda.

Share



Juego web KOBOX

Kobox es un juego web multijugador gratuito que te permite ponerte en la piel de un boxeador.
Podrás desafiar a otros boxeadores para ascender en la clasificación y así obtener mejores contratos de marcas comerciales.
Pero para ello tendrás que decidir que cualidades de tu cuerpo entrenar, los golpes a perfeccionar y el equipamiento y gimnasio a utilizar.

Es un juego que esta bastante verde pero que pese a su sencillez dicen que va enganchando.
Los combates son en tiempo real, así que puedes verlos en directo, se actualizan automáticamente cada minuto.

Share



¿Eres más listo que un chimpancé?

Share



Internet Explorer 8 dispondrá de 3 métodos de render

El equipo de desarrollo de este navegador ha publicado un post en el cual explican que la mejora en compatibilidad con estándares ha hecho que en IE8 existan hasta tres formas distintas de ‘dibujar’ las páginas que visitemos. La idea: que IE8 saque el máximo partido de la página.

Los cambios en los estándares Web han sido una de las trabas principales a las que los diseñadores de sitios web y los propios desarrolladores de los navegadores se han enfrentado. Mucho se ha hablado del limitado soporte de estándares de IE6, algo que se ha corregido en IE7 – sobre todo en lo que se refiere a CSS – pero que en IE8 tomará aún mayor importancia.

Como indica en su post del blog oficial de IE8, Chris Wilson – IE Platform Architect – la intención de su equipo es la de que este nuevo navegador renderice a la perfección cualquier página: de este modo, si la página no utiliza las capacidades ‘avanzadas’ de la programación con etiquetas “<>” se redibujará mediante los modos “ Quirks mode ” o “ Standards Mode ” que la muestran como si estuviésemos navegando con IE7. En caso de que se utilicen esas características avanzadas, IE8 aprovechará sus nuevas funciones para sacar partido de esas etiquetas .

Fuente : theinquirer.es

Fuente Origen : IEBlog

Share



W3C anuncia el primer borrador público de HTML 5

El Consorcio internacional World Wide Web ( W3C ), anuncia que el grupo de trabajo de HTML ha publicado el primer borrador público de la quinta versión mayor del lenguaje de marcado más extendido, y fundamento del World Wide Web.

Tim Berners-Lee, autor de la primera versión del HTML y director del W3C, indicó “que tras nueve meses de trabajo el ansiado hito se había logrado”, remarcando que “HTML es un estándar muy importante”.


“Me alegra ver que la comunidad de desarrolladores incluyendo los proveedores de los navegadores, están trabajando juntos para crear el mejor camino para la Web”, añadió Berners-Lee.

“Algunas de las características más interesantes de la nueva versión son APIs para dibujar gráficos en dos dimensiones o la inserción y control de contenido de audio y video”. Se ha publicado una actualización con las diferencias sobre HTML 4 que se puede encontrar AQUí .

El W3C, que integra más de 400 organizaciones, insta a los desarrolladores a unirse al grupo de trabajo de HTML 5, para asegurar que la nueva versión satisfaga las necesidades de sus clientes.

Fuente: theinquirer.es

Share



¿Dónde blogeas?

¿Cuál es tu lugar favorito para bloggear?
En el escritorio de casa un 51%, en la cama un 14%, viendo la televisión un 12%, en el trabajo un 10%.
A opinión personal me parece bastante baja la cifra del trabajo, me da que el porcentaje debería de ser muy superior xD
Yo lo hago desde mi ordenador personal en el escritorio de casa.
Y a ti, ¿en dónde te gusta hacerlo?
Fuente: BaluArt.net

Share



Wubi hace Linux aún más fácil

Según explican los promotores de este proyecto en su propia web, Wubi es un instalador no oficial de Ubuntu para Windows , que te permitirá entrar “en el mundo de Linux con un solo clic”.



Gracias a este programa es posible instalar y desinstalar Ubuntu como cualquier otra aplicación de Windows. Basta con descargar y hacer doble clic , sin necesidad de grabar el instalador en un CD.


La instalación no sólo incluye el sistema operativo. También llegan junto a Ubuntu las aplicaciones más comunes , como el paquete de programas ofimáticos Open Office, el editor de imágenes Gimp, navegador Firefox, juegos, cliente de mensajería instantánea…



Una vez instalado el sistema, basta reiniciar el ordenador y un menú aparecerá en pantalla para permitir elegir con qué sistema operativo se quiere arrancar la máquina : Ubuntu o Windows. Funciona en varias versiones del sistema de Microsoft, desde Windows 98 a Windows Vista.


Fuente : www.20minutos.es
Página oficial :
http://wubi-installer.org/

Share



Counter Strike y EverQuest prohibidos en Brasil

Estupefacción e incredulidad nos ha causado leer que la justicia federal brasileña ha prohibido la venta de estos videojuegos y ordenado su retirada del mercado, por considerar que “estimulan la violencia y refuerzan actitudes agresivas”.

Esos juegos “traen permanentes estímulos a la subversión del orden social, atentando contra el estado democrático y de derecho y contra la seguridad pública, por lo que se impone su prohibición y retirada del mercado”, sentenció el juez Carlos Alberto Simoes, en un fallo divulgado en internet.

Counter Strike, un MOD del original Half Life, es un shooter táctico militar en primera persona que emula situaciones de antiterrorismo como liberación de rehenes y que se ha convertido en uno de los videojuegos más jugados online. Dicen que una versión adaptada reproduce la guerra entre policías y narcos en las favelas brasileñas.


Más increíble todavía es la prohibición de un juego de rol multijugador online masivo, lanzado en 1999, que explora un mundo de fantasía luchando con monstruos para conseguir experiencias, recoger objetos e ir subiendo de nivel, que hereda la estructuras y reglas de “Dragones y mazmorras”.


Considerar que por jugar a estos videojuegos, sus usuarios van a salir a la calle a comprar una AK-47 y a emular lo acontecido en el mismo, nos devuelve a la edad de piedra. Esperemos que se trate solo de una incapacidad mental transitoria del magistrado de turno, al que no hemos leído prohíbir la miseria, el hambre y la injusticia social en las favelas que seguramente tengan más que ver con la violencia del país que unos videojuegos.

Share



Ejemplo con base de datos MySql
Requisitos previos:
* Conocer como crear el conector
$link .
Te dejo el tutorial por si te interesa: Tutorial Conexión a MySql desde PHP
* La base de datos debe tener tantos campos como parametros desees guardar, en este caso guardaremos la fecha(datetime) y una cadena(varchar o text) con todos los parámetros, amén del identificador(varchar) único que otorga PayPal para la transacción

//comentado por Roberto Herrero para su blog http://www.miblog.indomita.org/
//recomiendo añadir un parámetro personal a la url que utilizaremos para gestionar los pagos, nuestro señuelo y si esta encriptado pos mejor
//con comprobar si la variable ha sido enviada creo que es suficiente,
pero si eres un paranoico y no te fias de los mamones que navegan por la red
puedes añadir && $_GET["antimamones"]==md5("nointentesjodermequetevasaenterar")
//el parámetro que pases por GET recuerda que tienes que agregarlo en el perfil de url IPN del comienzo de este manual.
if(isset($_GET["antimamones"]))
nuevo_ingreso();


    function nuevo_ingreso(){
      //esto ya lo he comentado antes así que paso xD
      // read the post from PayPal system and add 'cmd'
      $req = 'cmd=_notify-validate';

      foreach ($_POST as $key => $value) {
        $value = urlencode(stripslashes($value));
        $req .= "&$key=$value";
      }

    // post back to PayPal system to validate
    $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
    $fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

    // assign posted variables to local variables
    $item_name = $_POST['item_name'];
    $item_number = $_POST['item_number'];
    $payment_status = $_POST['payment_status'];
    $payment_amount = $_POST['mc_gross'];
    $payment_currency = $_POST['mc_currency'];
    $txn_id = $_POST['txn_id'];
    $receiver_email = $_POST['receiver_email'];
    $payer_email = $_POST['payer_email'];
    //podemos añadir el campo custom en nuestros botones (en el código una vez generados) con la información que deseemos, esto viene bien para identificar al usuario
    $custom = $_POST['custom'];


    //creamos una conexión a nuestra base de datos
    conecta($link); 
    if (!$fp) {
      // HTTP ERROR
    } else {
      //recorremos respuesta      
      fputs ($fp, $header . $req);

      while (!feof($fp)) {
        $res = fgets ($fp, 1024);
        if (strcmp ($res, "VERIFIED") == 0) {
       // check the payment_status is Completed
       if(strcmp ($payment_status, "Completed")==0){
         //la transacción esta completada
        // check that txn_id has not been previously processed

       //la función es_idenfiticador_alfanumerico comprueba que no inyecten sentencias SQL (usease antimamoneo) esta definida al final
       if(es_identificador_alfanumerico($txn_id)) {
         //comprobamos si no la hemos procesado ya
        $r=mysql_query("select count(txn_id) as repes from ingresos_recibidos where txn_id='".$txn_id."'",$link);
        $f=mysql_fetch_array($r);
        $repetida=(int)$f["repes"];
       }else{ $repetida=1;}
      //en el caso de que no sea válido tendremos valor 1
      if($repetida==0){
      //no es una transacción repetida
      // check that receiver_email is your Primary PayPal email
      if(strcmp ($receiver_email, "micorreo@loquesea.com")==0){
      //es un correo válido
      // check that payment_amount/payment_currency are correct
      //ahora pasamos a comprobar que tipo de pago ha realizado tenemos que anidar los diferentes casos de alguna manera, en el ejemplo lo he hecho con 2 casos
     //obtengo el usuario que ha hecho el ingreso del campo custom
     //supongo que tendrás tu propia clase de acceso y recogida de datos, si no la tienes lo que pongo es funcional
     $r=mysql_query("select usuario from tabla_usuarios where usuario=".((int)$custom), $link);
     $f=mysql_fetch_array($r);
     $usuario=(int)$f["usuario"];
     //caso 1: el pago es de 1.99 la moneda el EURO que son los valores que debería de tener el elemento identificador personal 1
     if($payment_amount==1.99&&strcmp($payment_currency, "EUR")==0
    &&$item_number==1&&$usuario>0){
    //aquí van las operaciones de guardado de informe y las que desencadenas al recibir un pago
    //ingresamos los datos
    $cadena=sprintf("guardando informe
    item_name=%s

    item_number=%s

    custom=%s

    payment_status=%s

    mc_gross=%s

    mc_currency=%s

    txn_id=%s

    receiver_email=%s

    payer_email=%s",
    $item_name,$item_number,$custom,$payment_status,$payment_amount,$payment_currency,$txn_id,$receiver_email,$payer_email);
    mysql_query("insert into ingresos_recibidos (cadena,txn_id,fecha) values ('".$cadena."'
    ,'".$txn_id."','".date("Y-m-d H:i:s")."')",$c);
    //actualizamos las gracias que le damos al usuario
    (mil gracias)

    mysql_query("update tabla_usuarios set gracias=gracias+1000 where usuario=".$usuario,$link);
    //caso 2: el pago es de 6.99 la moneda el EURO que son los valores que debería de tener el elemento identificador personal 2
    }elseif($payment_amount==6.99&&strcmp($payment_currency, "EUR")==0
    &&$item_number==2&&$usuario>0){
    //aquí van las operaciones de guardado de informe y las que desencadenas al recibir un pago
    //lo mismo que antes aunque yo recomiendo hacerse una funcioncita o algo que evite repetir código
    //actualizamos las gracias que le damos al usuario
    (un millón de gracias)
    mysql_query("update tabla_usuarios set gracias=gracias+1000000 where usuario=".$usuario,$link);
    }
    }
    }
    }
    }elseif (strcmp ($res, "INVALID") == 0) {
    // log for manual investigation
    }
    }
    fclose ($fp);
    }
    }

    //funcion antimamoneo, realmente no se el rango total de caractéres raros que envia paypal así que habría que adaptarla xD
    function es_identificador_alfanumerico($cadena){
      return ereg("^[A-Za-z0-9_]*$",$cadena);
    }

No he probado el código y seguramente tenga algun pequeño fallo (falta de paréntesis, ; o alguna } )

Reitero de que es un código orientativo y que cada uno tiene que adaptarlo y optimizarlo.
Paypal ofrece otros métodos IPN que incluyen conexión https y demás en el servidor.
El código del ejemplo no necesita una conexión segura para llevarse a cabo.
Si alguien ve algun agujero de seguridad le agradecería que me lo comunicase para modificarlo.

Anexo: Realizar pruebas de pagos con PayPal

Espero que a alguien le sirva de ayuda.

Share



Juego web KOBOX

Kobox es un juego web multijugador gratuito que te permite ponerte en la piel de un boxeador.
Podrás desafiar a otros boxeadores para ascender en la clasificación y así obtener mejores contratos de marcas comerciales.
Pero para ello tendrás que decidir que cualidades de tu cuerpo entrenar, los golpes a perfeccionar y el equipamiento y gimnasio a utilizar.

Es un juego que esta bastante verde pero que pese a su sencillez dicen que va enganchando.
Los combates son en tiempo real, así que puedes verlos en directo, se actualizan automáticamente cada minuto.

Share



¿Eres más listo que un chimpancé?

Share



Internet Explorer 8 dispondrá de 3 métodos de render

El equipo de desarrollo de este navegador ha publicado un post en el cual explican que la mejora en compatibilidad con estándares ha hecho que en IE8 existan hasta tres formas distintas de ‘dibujar’ las páginas que visitemos. La idea: que IE8 saque el máximo partido de la página.

Los cambios en los estándares Web han sido una de las trabas principales a las que los diseñadores de sitios web y los propios desarrolladores de los navegadores se han enfrentado. Mucho se ha hablado del limitado soporte de estándares de IE6, algo que se ha corregido en IE7 – sobre todo en lo que se refiere a CSS – pero que en IE8 tomará aún mayor importancia.

Como indica en su post del blog oficial de IE8, Chris Wilson – IE Platform Architect – la intención de su equipo es la de que este nuevo navegador renderice a la perfección cualquier página: de este modo, si la página no utiliza las capacidades ‘avanzadas’ de la programación con etiquetas “<>” se redibujará mediante los modos “ Quirks mode ” o “ Standards Mode ” que la muestran como si estuviésemos navegando con IE7. En caso de que se utilicen esas características avanzadas, IE8 aprovechará sus nuevas funciones para sacar partido de esas etiquetas .

Fuente : theinquirer.es

Fuente Origen : IEBlog

Share



W3C anuncia el primer borrador público de HTML 5

El Consorcio internacional World Wide Web ( W3C ), anuncia que el grupo de trabajo de HTML ha publicado el primer borrador público de la quinta versión mayor del lenguaje de marcado más extendido, y fundamento del World Wide Web.

Tim Berners-Lee, autor de la primera versión del HTML y director del W3C, indicó “que tras nueve meses de trabajo el ansiado hito se había logrado”, remarcando que “HTML es un estándar muy importante”.


“Me alegra ver que la comunidad de desarrolladores incluyendo los proveedores de los navegadores, están trabajando juntos para crear el mejor camino para la Web”, añadió Berners-Lee.

“Algunas de las características más interesantes de la nueva versión son APIs para dibujar gráficos en dos dimensiones o la inserción y control de contenido de audio y video”. Se ha publicado una actualización con las diferencias sobre HTML 4 que se puede encontrar AQUí .

El W3C, que integra más de 400 organizaciones, insta a los desarrolladores a unirse al grupo de trabajo de HTML 5, para asegurar que la nueva versión satisfaga las necesidades de sus clientes.

Fuente: theinquirer.es

Share



¿Dónde blogeas?

¿Cuál es tu lugar favorito para bloggear?
En el escritorio de casa un 51%, en la cama un 14%, viendo la televisión un 12%, en el trabajo un 10%.
A opinión personal me parece bastante baja la cifra del trabajo, me da que el porcentaje debería de ser muy superior xD
Yo lo hago desde mi ordenador personal en el escritorio de casa.
Y a ti, ¿en dónde te gusta hacerlo?
Fuente: BaluArt.net

Share



Wubi hace Linux aún más fácil

Según explican los promotores de este proyecto en su propia web, Wubi es un instalador no oficial de Ubuntu para Windows , que te permitirá entrar “en el mundo de Linux con un solo clic”.



Gracias a este programa es posible instalar y desinstalar Ubuntu como cualquier otra aplicación de Windows. Basta con descargar y hacer doble clic , sin necesidad de grabar el instalador en un CD.


La instalación no sólo incluye el sistema operativo. También llegan junto a Ubuntu las aplicaciones más comunes , como el paquete de programas ofimáticos Open Office, el editor de imágenes Gimp, navegador Firefox, juegos, cliente de mensajería instantánea…



Una vez instalado el sistema, basta reiniciar el ordenador y un menú aparecerá en pantalla para permitir elegir con qué sistema operativo se quiere arrancar la máquina : Ubuntu o Windows. Funciona en varias versiones del sistema de Microsoft, desde Windows 98 a Windows Vista.


Fuente : www.20minutos.es
Página oficial :
http://wubi-installer.org/

Share



Counter Strike y EverQuest prohibidos en Brasil

Estupefacción e incredulidad nos ha causado leer que la justicia federal brasileña ha prohibido la venta de estos videojuegos y ordenado su retirada del mercado, por considerar que “estimulan la violencia y refuerzan actitudes agresivas”.

Esos juegos “traen permanentes estímulos a la subversión del orden social, atentando contra el estado democrático y de derecho y contra la seguridad pública, por lo que se impone su prohibición y retirada del mercado”, sentenció el juez Carlos Alberto Simoes, en un fallo divulgado en internet.

Counter Strike, un MOD del original Half Life, es un shooter táctico militar en primera persona que emula situaciones de antiterrorismo como liberación de rehenes y que se ha convertido en uno de los videojuegos más jugados online. Dicen que una versión adaptada reproduce la guerra entre policías y narcos en las favelas brasileñas.


Más increíble todavía es la prohibición de un juego de rol multijugador online masivo, lanzado en 1999, que explora un mundo de fantasía luchando con monstruos para conseguir experiencias, recoger objetos e ir subiendo de nivel, que hereda la estructuras y reglas de “Dragones y mazmorras”.


Considerar que por jugar a estos videojuegos, sus usuarios van a salir a la calle a comprar una AK-47 y a emular lo acontecido en el mismo, nos devuelve a la edad de piedra. Esperemos que se trate solo de una incapacidad mental transitoria del magistrado de turno, al que no hemos leído prohíbir la miseria, el hambre y la injusticia social en las favelas que seguramente tengan más que ver con la violencia del país que unos videojuegos.

Share