Php

[Ajax]Phototype, manipulando imagenes usando Javascript

Feliz inicio de semana, una semana algo complicada para mi por múltiples cosas que tengo que hacer(pagar TC, pagar Salon, Pagar art de la casa etc..), pero sin duda postear un buen numero de artículos hará mas amena la semana.

El otro día vi un enlace no recuerdo en que pagina/Blog (ajaxian??), el cual nos comentaba sobre un script que nos permite hacer maravillas con las imagenes usando para ello PHP y GD, si no mal recuerdo, para muestra vean la siguiente imagen la cual fue rotada y se le agrego el efecto polaroid con esta libreria.

phototype

Se trata de Phototype, el cual funciona usando php y la librería Javascript Prototype, lo cual funciona de la siguiente forma.

[Javascript]



[/javascript]

En el caso anterior lo que hicimos fue modificar el tamaño de la imagen, usando el método resize

Existen varios métodos como:

  • resize
  • flipV
  • rotate
  • dropShadow
  • makeSketchy
  • toGreyScale
  • addCaption
  • y hasta addChuckNorris

Mas información de este Framework, aquí | Phototype: image manipulation with javascript

Leer más

[Eventos]Bugcon 2008 Conferencias sobre hacking y mas…

Bueno antes de que se me pase el tiempo y me olvide de esto les voy a platicar que tal estuvo el BugCon.

Como es costumbre no fui a todo el evento, aquí va la crónica del evento.

En primer lugar no tenia ni idea de donde quedaba UPIICSA, fui con mi novia, asi que tome un taxi desde el metro Bulevard Puerto Aéreo y el taxista se equivoco y me estaba llevando para el auditorio pero bueno, llegamos casi a las 10:40 mas o menos luego, en serio que no se como estén en UPIICSA ya que le pregunte a todos donde estaba el BUGCON y nadie sabia nada , hasta pensé que me había equivocado, pero la verdad nadie tenia idea de nada.

Resulta pues que después de preguntarle a muchos por fin pudimos dar con dicho lugar.

Entramos y pues había muy poca gente, había “como ya sabíamos” dos auditorios uno de Black Hat y otro de White Hack,entre al de BlackHat.

La ponencia la estaba dando “Sandino Araico Sánchez“, dando la conferencia de “Tu peor enemigo”.

Aqui nos hablo un poco del Spam, las maquinas Zoombies, el phishing y las politicas de seguridad de los “Sysamdin’s”.

Durante su participacion hablo sobre algunos software’s que destacan por x o y detalles como son:

  • Tomcat, Sandino nos recalco que el principal problema de Tomcat era que muestra demasiada información al generar errores, como paths, entre otras cosas.
  • Apache, que por problemas de max_clients y pipe_live puede darnos dolores de cabeza con los usuarios y el ancho de banda, respectivamente
  • Oracle, Por su posibilidad de escalar privilegios, y de tener por default una cuenta SYSTEM además de poder permitir ejecución de código(creo que son los PL/SQL’s)
  • Hubo también algunos mas que no recuerdo bien, como debian jaja, pero mejora hasta ahí le dejamos…….

Después nos fuimos a Google Hacking impartido por “Jesus Antonio Alvárez Cedillo” que sinceramente estuvo muy aburrida, ya que yo esperaba mas cosas, y simplemente nos “enseño” como usar las variables “site” con “index Of”, algo que creo, para los de Black Hat esperaban algo mas interesante.

Pero como la platica anterior duro tan poco tiempo, nos cambiamos a WhiteHat, donde estaba muy chido, lastima que solo pude ver el final y si no me equivoco esa conferencia fue “One Shot phishing on local area networks” impartida por “Héctor Leal Morales”, donde vimos(bueno casi no vi mucho) como se accede a una pc con windows hackeandola desde un Linux, usando ARP, estuvo interesante, lastima que solo llegue alfinal, creo que aqui como que se equivocaron creo que esta conferencia debio de ser al reves, pero bueno.

Luego les paso mas información de ese hackeo, lo realizo usando ethercap, para manipular ARP, o algo asi, luego les paso mas informacion.

Posteriormente vimos “Linux en consolas de video juegos” por Rolando Cedillo, esta platica realmente me impresiono, nos mostró básicamente los requerimientos para poder montar linux, y nos comento rápidamente como lo hizo, inclusive nos platico como están estructurados los sistemas internos de algunas consolas como Xbox, Wii y Playstation 3, también nos platico sobre las cualidades de las VPU’s(CPUS de Vectores o algo asi!!!), lastima que no pude escribir todo pero sin duda fue una de las que mas me gusto.

Y por ultimo asistí a ver la demostración de

Leer más

[Asides] Integrando Paypal a nuestro sitio Web

Si están pensado en utilizar paypal para recibir pagos por la venta de algún producto en Internet no olviden pasar por este link, donde Carlos Leopoldo nos comenta, rápidamente como usarlo, y nos proporciona un excelente recurso,mas Vía

Leer más

[Ajax-Php] mooHP: Mootools y Php

Buscando un script que me facilitara poner unas tabs para el próximo theme de el blog, el cual por cierto al parecer usara Mootools para unas tabs, las cuales luego verán, Me tope con este Framework.

Se llama mooHP, el cual como su nombre lo indica es una mezcla entre Mootools y Php.

La ventaja reside en que su sintaxis es muy similar a la de Mootools , por lo cual si estas acostumbrado a usar esta librería la implementación sera fácil y las ventajas muchas mas, como gestionar la gran mayoría de código vía Php.

A continuación les pongo un ejemplo de código y posteriormente un link para que vean el demo.

< ?php
include("mooHP2/dom.class.php");
include("mooHP2/element.class.php");
include("mooHP2/css.class.php");
include("mooHP2/utility.class.php");

//New instance of the dom class
$t = new dom();

//Loads a template from file
$t->loadFile("base.html");

//Gets element by css selector  and sets it's HTML content.
$t->SE("body")->setHTML("");

//Selected ellement: body adopts  new element
$t->SE("body")->adopt( $t->element("div", array("id"=>"header") ,"Hello world!") );

//Body adopts  <br />
$t->SE("body")->newLine();

$picked = "";
if (isset( $_GET["cd"] )) {
 $picked = " you have selected #".$_GET["cd"];
}

//Body adopts new element div: with assigned properties as second argument and text as content;
$t->SE("body")->adopt( $t->element("div", array("style"=>"margin:10px; padding:10px; border:1px solid #444;"), "Counting down:".$picked) );

// $select  = new Element()
$select = $t->element("select", array("name"=>"cd"), "");

//Body adopts new element of type form
$t->SE("body")->adopt( $t->element("form", array("id"=>"newForm","method"=>"get") ) );
//Selects new element by ID and adopts previously defined element $select
$t->S("newForm")->adopt( $select );
// #newForm adopts new Element input
$t->S("newForm")->adopt( $t->element("input", array("type"=>"submit", "value"=>"CLICK!") ) );

for ($i=1; $i< =20; $i++) {
	//$newOption is new option element
	$newOption = $t->element("option", array("value"=>$i), "Count down: " . $i );
	//$select adopt as it's first child the $newOption element
	$select->adoptTop( $newOption );
	if ( isset($_GET["cd"]) && $_GET["cd"] == $i ) {
		//Setting an attribute to an element
		$newOption->setProperty("selected","selected");
	}
}

//Body accepts  new style rules
$t->SE("body")->setStyle("margin","10px");

//Body adopts <br />
$t->SE("body")->newLine();

//Appending text to the body
$t->SE("body")->appendText("and here comes the appended text");

//Body is adopting the inc.html contents
$t->SE("body")->adopt( $t->includeFile("inc.html") );

if (!isset( $_GET["cd"] )) {
	//Make simple alert with javascript
	$t->alert("Hello and welcome to mooHP");
}

//Setting the <title> tah innerHTML
$t->setPageTitle("..:: Hello and welcome to mooHP ::..");

//Creating new instance of the css class
$newCss = new css();
//Setting rule in css
$newCss->setStyle("color","#ff9900");
//Setting rules in css
$newCss->setStyles(array("font-weight"=>"bold","font-size"=>"24px" ));
//Writing the defined css to element
$newCss->writeToElement( $t->S("header") );

//Creating new instance of the css class
$newCss2 = new css();
//Setting rule in css
$newCss2->setStyle("border","10px solid #DDD");
//Setting rule in css
$newCss2->setStyle("padding","10px");
//Writing the defined css as #newForm selector in $t dom instance
$newCss2->writeToDom("#newForm", $t);

//Writing the page   if true is passed as argument the page will be compresed
$t->writePage(true);

?>

El resultado de esto seria lo siguiente.
http://www.devpartment.com/testdrive/mooHP/

Creo que Mootools, me esta ganando, y eso se debe a una gran ventaja que ofrece ante otras Frameworks, como JQuery o Prototype, y eso es su peso, que es extremadamente pequeño, bueno aun sigo defendiendo a Jquery, pero si no se compacta un poco mas quiza tenga que darle un vistazo a Mootools.

Por cierto fui la Flisol, no participe casi en nada y es por que no me dio tuve mucho tiempo, eso si me compre una nueva playera muy chida de Debian Linux, tome unas fotos y me queria traer la de Php, pero pues no habia mas Varo($), asi que sera para la próxima, en cunato baje las fotos les platicare como estuvo la cosa.

Via | mootools + PHP = mooHP
Descarga | Descargar MooHP
Mas información en | http://www.devpartment.com/posts/mootools-php-moohp/

Leer más

[Php-Tip] Formatos numericos en Php: usando number_format

En este post apuntare algo para que no se me olvide.

php_logo

Cuando en Php, hacemos una operacion numerica y nos sale un resultado, con punto es mejor redondearlo.

para ello usaremos la funcion number_format, la cual esta soportada desde Php 4(no creo que alguien use aun Php 3),esta funcion trabaja de la siguiente manera.

String number_format ( float $numero [, int $decimales [, string $punto_dec ]], string $sep_miles )

number_format() devuelve una versión con formato de numero . Esta función acepta uno, dos, o cuatro parámetros (no tres):

Si solo se entrega un parámetro, numero recibirá un formato sin decimales, pero con una coma (“,”) entre cada grupo de miles.

Si se entregan dos parámetros, numero recibirá un formato con la cantidad de decimales dada, con un punto (“.”) al frente, y una coma (“,”) entre cada grupo de miles.

Si todos los cuatro parámetros son dados, numero recibirá un formato con la cantidad de decimales dada, punto_dec en lugar de un punto (“.”) antes de los decimales, y sep_miles en lugar de una coma (“,”) entre cada grupo de miles.

Sólo el primer caracter de sep_miles es usado. Por ejemplo, si usa bar como sep_miles sobre el número 1000, number_format() devolverá 1b000.

Ejemplo de uso:

$numero = 1234.56;
// notación inglesa (predeterminada)
$numero_formato_ingles = number_format($numero);
// 1,235
// notación francesa
$numero_formato_frances = number_format($numero, 2, ',', ' ');
// 1 234,56
$numero = 1234.5678;
// notación inglesa sin separador de miles
$numero_formato_ingles = number_format($numero, 2, '.', '');
// 1234.57
$otro_numero=125.1634657;
$numero_redondeado=number_format($otro_numero,2);
//devolvera 125.16 ya que solo le pedi 2 caracteres despues del punto

Le informacion mostrada pertenece a | Manual de Php: number_format

Leer más

[Manual] Usando PHP y MySQL, Insertando datos de manera dinamica parte 2

Bueno como vimos en el manual anterior de Php y MySQL, realmente no es tan complicado aprender este lenguaje.

ajaxman

Ahora que solo hemos visto como volcar los resultados de una consulta hecha a una base de datos MySQL, sin embargo vamos ha hacerlo mas creativo, ahoro procederemos acrear un formaulario donde nos permitira insertar nuevos registros y tambien otro donde nos permitira borrar los mismos.

Para empezar necesitamos un formulario que nos permita poder introducir datos y enviarlos mediante metodo post, le get no lo usamos por que se pueden enviar menos datos y ademas es mas inseguro.

Entoces hagamos nuestro formulario este archivo se llamara alta.php

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<form method="post" action="alta.php"> <label>Escriba el nombre del alumno</label>
<input name="nombre" type="text" /> <label>Escriba la calificación del primer parcial</label>
<input name="parcial1" type="text" /> <label>Escriba la calificación del segundo parcial</label>
<input name="parcial2" type="text" /> <label>Escriba la calificación del segundo parcial</label>
<input name="parcial3" type="text" /> <input value="Aceptar" type="submit" />

</form>

Una vez llenados los campos le damos click en aceptar y listo se envian los datos al mismo archivo; pero me imagino que se preguntaran por que lo mando al mismo archivo, pues para organizarlo mejor y no tener mil archivos ahora vamos a crear lo que nos permitira insertar datos en nuestra base.

Ahora haremos el script php que guardala la informacion recibida.

Nota importante: hare uso de la funcion var_dump, para verificar que información esta llegando,ya que var_dump revisa el contenido total de cierta variable y los muestra en pantalla.

var_dump($_POST);
/*
* use solo $_POST para que me diga todos los campos y valores que recibio mediante este metodo
* Ahora bajaremos todas las variables recibidas a variables normales esto lo hago para mejorar
* el mantenimiento de dicho script asi como por seguridad, ya que le agregare la funcion addslashes
* la cual escapa comillas simples, dobles y algunos caracteres extranos, evitando que alguien hackee nuestro sitio
*/

$nombre=addslashes($_POST['nombre']);
$parcial1=addslashes($_POST['parcial1']);
$parcial2=addslashes($_POST['parcial2']);
$parcial3=addslashes($_POST['parcial3']);

/*
* Con lo anterior ya podemos usar nuestras variables mas comodamente y mas seguras
* pero recuerden que, no con esto evitaremos ataques, o nuestra web sera 100% Segura
* Sera, mejor dicho un poco mas segura
* Ahora programemos la consulta que insertara los datos, recordemos que en el post anterior,
* ya vimos como hacer una insercion mediante instrucciones SQL
* tomaremos el mismo ejemplo
* el digo era # INSERT INTO `calificaciones` VALUES (1,'Tux',10,8,8,9);
*/

/*
*Nos conectamos a la base de datos
*/

$DB=mysql_connect("localhost","root","localhost");
mysql_select_db("Alumnos");

/*
*creamos una varible que manejara la consulta, es similar al primer ejemplo
* solo que aqui usaremos mas variables
*/

$sql='INSERT INTO `calificaciones` VALUES ("1","Tux",10,8,8,9)';

/*
* Aqui les mencionare un detalle, los valores anteriores se insertaran en los campos, en el orden
* dado, osea que si agregan un campo o reorganizan la base de datos la consulta fallara
* y por logica tambien fallara su a sitio web.
* para evitar eso usaremos set par asignar valores, uno por uno
* asi nos evitamos futuros problemas
*/

$sql='INSERT INTO `calificaciones` set Nombre="Tux", Parcial1=10, Parcial2=8, Parcial3';

/* Listo sin embargo siempre insertara los mismos valores, ha hora reemplazaremos
* los valores por variables y tenemos nuestro sql formado
* para poner valores, los concatenamos con un punto (.) y si el valor es texto, lo ponemos entre comillas
*/

$sql='INSERT INTO `calificaciones` set Nombre="'.$nombre.'", Parcial1='.$parcial1.', Parcial2='.$parcial2.', Parcial3='.$parcial3;

/*
* Ahora ejecutamos la consulta
*/

$Q=mysql_query($sql,$DB);

/*
* Y listo ya insertamos los datos en nuestra base, sin embargo
* es mejor estar seguro de que se insertaron los datos con exito.
* por ello usando el operador if, preguntaremos si se inserto con exito
* si hay exito mostraremos un texto y si no mandaremos un mensaje de error
*/

if($Q)
{
echo ' El registro se agrego correctamente';
}
else
{
echo 'Ups!! hubo errores con el registro, trata de revisar tu script';
}

/*
* Mucho mejor no
*
*/

Listo ahora metemos todo a un solo archivo y lo presentamos

Archivo alta.php

Leer más

[Manual] Usando PHP y MySQL,para manejar una base de datos parte 1

Varios lectores me han pedido que si no hacia un manual de php, sin embargo como ha veces no tengo mucho tiempo, pues prefiero no poner mas manuales por que de por si, con los de Javascript, y Xul, ando algo atrasado.

Sin embargo como me gusta compartir, pues aqui les pongo un manual con lo necesario para poder conectarnos con php, a una base da datos MySQL y formatear los resultados a nuestro gusto, bueno empecemos.

Primero que nada, necesitamos haber instalado y configurado Apache, Php y MySQL, si no saben como hacerlo, pueden checarlo en este post.

Manual de instalacion y configuracion de apache con windows

Ahora veamos el problema

Necesitamos llevar un control de 20 alumnos de la escuela “Ajax-SQL”, este control sera llevado a cabo por el maestro el cual nos ha pedido, que elaboremos un sistema que nos permita dar de alta a los alumnos asi como sus calificaciones mediante una intranet o una pagina web donde los administradores, en este caso los maestros, puedan dar sus datos y accesar a una zona privada donde podran hacer los cambios que deseen.

Para empezar primero necesitamos saber lo mas basico, he ir armando parte por parte, asi que empezaremos por la creacion de la base de datos y el volcado de los mismos.

Como ya tenemos instalado todo lo que vamos a ocupar, vamos a empezar por crear la base de datos, a la cual llamaremos “Alumnos”, esto lo podemos hacer mediante un SQL, ya se por linea de comandos o mediante una interfaz grafica, por facilidad y disponibilidad de herramientas les recomiendo usar una GUI.

En mi caso en el trabajo cuando uso Windows uso, MySQL Front, software el cual esta descontinuado, sin embargo todavia pueden conseguir este software en la web, y se lo recomiendo por que simplemente era y es el mejor para manipular bases de datos desde Windows si usan linux pues el Mysql Administrator el cual lo pueden obtener gratuitamente desde el sitio de MySQL AB.

Entonces creamos la base de datos y le agregamos una tabla llamada “Calificaciones”, con 6 campos, que son

  • ID_Alumno
  • Nombre
  • Parcial1
  • Parcial2
  • Parcial3
  • Promedio

Sin embargo se que muchos tendran dudas, ¿Como creo la base de datos, como agrego la tabla, si no tengo GUI, etc?

Bueno las mismas instrucciones pero ahora con codigo SQL

Creamos la base de datos

create database “Alumnos”;

Seleccionamos la base de datos
use Alumnos;

Creamos la tabla

CREATE TABLE `calificaciones` (
  `ID_Alumno` int(11) NOT NULL auto_increment,
  `Nombre` varchar(40) default NULL,
  `Parcial1` int(11) default NULL,
  `Parcial2` int(11) default NULL,
  `Parcial3` int(11) default NULL,
  `Promedio` int(11) default NULL,
  PRIMARY KEY  (`ID_Alumno`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

Con lo anterior hemos creado una tabla con 5 campos, el primero es la clave primaria, osea que no se repetira nunca en la tabla, ademas es auto-incrementable, ademas no puede ser nulo; el siguiente camo llamado nombre, es de tipo varchar lo que significa que contendra unicamente texto y tendra la capacidad que le indiquemos en este caso 40 caracteres, los otros son campos enteros.

Ahora procederemos a llenar la base datos usando sql:


INSERT INTO `calificaciones` VALUES (1,'Tux',10,8,8,9);
INSERT INTO `calificaciones` VALUES (2,'Ajaxman',7,5,9,7);
INSERT INTO `calificaciones` VALUES (3,'Javier',8,9,10,9);
INSERT INTO `calificaciones` VALUES (4,'Debian',10,10,10,30);

Nota como tenia sueño solo agregue 5 pero haganlo con mas datos (20) para ver mas a detalle como funciona
Una vez, hecho este tenemos los datos suficientes para empezar a trabajar

Creamos nuestro archivo php, haciendo una conexion a la base de datos

Archivo Consulta.php

Leer más

Historico de entradas

febrero 2012
L M X J V S D
« ene    
 12345
6789101112
13141516171819
20212223242526
272829  

Ajaxman

Mi nombre es Javier, soy desarrollador web con especialización en PHP (avanzado), HTML, CSS y Javascript(Medio).

Me considero evangelizador de Kohana Framework, Mozilla Firefox y GNU/Linux Debian.

Estoy casado, y tengo dos hermosos hijos.

Todos los contenidos a menos que se exprese lo contrario estan bajo licencia Creative Commons.

Enlazanos!!

hit counters online counter