Entradas

Mostrando las entradas etiquetadas como php

calcular CRC32 facil

Calcular el CRC32 de un archivo o determinados datos es útil para saber si los datos se han transferido correctamente. El valor del crc del archivo de origen tiene que ser exactamente igual que el de destino, en caso contrario el archivo de destino es diferente (erróneo). PHP tiene una función que lo calcula: function checksum ( $filename ) { return ( strtoupper ( dechex ( crc32 ( file_get_contents ( $filename ))))); } En C o C++ la función la tienes que hacer tu o usar esta, tienes la posibilidad de usar una tabla ya procesada o de generarla con la función initialise_crc32_table() . #include <iostream> using namespace std ; unsigned crc32_table [] = { 0x00000000 , 0x77073096 , 0xee0e612c , 0x990951ba , 0x076dc419 , 0x706af48f , 0xe963a535 , 0x9e6495a3 , 0x0edb8832 , 0x79dcb8a4 , 0xe0d5e91e , 0x97d2d988 , 0x09b64c2b , 0x7eb17cbd , 0xe7b82d07 , 0x90bf1d91 , 0x1db71064 , 0x6ab020f2 , 0xf3b97148 , 0x84be41de , 0x1adad47d , 0x6...

Evitar inyección SQL en consultas MySQL con php

Con la inyección SQL es fácil que puedan acceder a muchos datos de tu base de datos e incluso modificarlos, por lo que es muy importante evitar esta vulnerabilidad. Viene muy bien explicado en la Wikipedia que es y en que consiste. Para evitar la inyección SQL tan solo tendremos que modificar un poco el código php, donde antes teniamos: $query = 'SELECT * FROM users WHERE name = "' . $username. '"'; cambiamos $username por mysql_real_escape_string($username) : SELECT * FROM users WHERE name = "'.mysql_real_escape_string($username).'" quedando nuestra base de datos protegida de la mayoría de los ataques. También he visto por ahí que si nuestra consulta trabaja con instrucciones como LIKE , GRANT ó REVOKE es mas seguro: addcslashes(mysql_real_escape_string($username),'%_') 23/04/20010: Otra manera, no se si es mejor que la anterior, pero parece protegernos de lo básico. También sirve para prevenir que se pongan scripts, m...

Login simple con php

Imagen
El titulo lo dice todo, iniciar sesión con php. Con el header WWW-Authenticate , que hará que salga una ventanita en nuestro navegador pidiendo un usuario y contraseña. Muy útil para proyectos web que necesiten de un sistema básico de autentificación para acceder a áreas privadas, como un panel de control, etc ... El ejemplo muestra como se hace para autentificar un único usuario, pero podría hacerse para todos los que se quiera, eso si, yo usaría una base de datos para almacenar los nombres de usuario y contraseñas. <?php function showLogin() { header('WWW-Authenticate: Basic realm="Company name"'); header('HTTP/1.0 401 Unauthorized'); echo('Lá página está protegida, usted necesita permisos.<br />'); echo('Este texto se muestra si el usuario pulsa el boton "cancelar".'); exit; } $user = (isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:""); $pass = (isset($_SERVER['PHP_AUT...

Medir el tiempo de una rutina en PHP

Hace una semana comentaba como poder medir el tiempo de una rutina con c/c++ , principalmente con el fin de optimizar nuestro código. Hoy muestro como hacer lo mismo en PHP: $A = microtime(true); for($i = 0; $i < 1000000; ++$i) { /* Nuestro código */ } $B = microtime(true); $t = ($B - $A); echo("Duracion: ".$t." segundos."); Muy fácil, tomamos el valor del reloj antes del for ,tomamos nuevamente el valor del reloj después del for y finalmente calculamos la diferencia de tiempos (final - inicial), el resultado es el numero de segundos que tarda en realizarse nuestro código 1000000 veces. Sitúa tu rutina dentro de un bucle si dura poco, ya que si el resultado de la medición es de pocos milisegundos no nos sirve, mejor que dure unos segundos. Omite el bucle del código de ejemplo si ya dura de por si un tiempo apreciable.