Mostrando entradas con la etiqueta php. Mostrar todas las entradas
Mostrando entradas con la etiqueta php. Mostrar todas las entradas

sábado, 22 de noviembre de 2008

Variables de Session en php

http://data3.blog.de/media/628/2425628_dece031612_m.jpeg



Si te encuentras en este post, seguramente ya sabras de que va esto de las variables de session, si no es asi te dire que resumiendo, las variables de session son un tipo especial de variables que nos permiten guardar informacion y concervarla durante una visita de un usuario.

Ejemplificando: si tu creas una variable digamos "$mivariable" en una pagina php cuando sales de esta y comienzas a crear una nueva pagina el valor de $mivariable se pierde, es decir que unicamente existira de manera local en la pagina donde se declaro esta variable, sin embargo si declaramos a "$mivariable" como variable de session podremos utilizarla en todas las paginas de nuestro sitio.

Este tipo de variables comunmente son utilizadas para restringir el acceso a un sitio.


Nota: El servidor crea un objeto de sesion diferente para cada usuario y lo mantiene durante un periodo de tiempo establecido o hasta que se pone fin a la session de manera explicita.


Pues bien una vez puestos en antecedentes vallamos a lo interesante:

Para comenzar a utilizar sessiones primero debemos de crear (o continuar) una session, esto se hara poniendo en las paginas donde queramos usar variables de session la siguiente declaracion:

session_start();

Esta funcion nos devolvera true si la session fue creada correctamente y false en caso contrario.

Clue: Puede que al momento de probar tu pagina esta te arroje un warning, para solucionar esto simplemente pon la declaracion de inicio de session antes que cualquier otra instruccion, inclusive antes del <html>.

Una vez iniciada la session lo siguiente sera crear una variable de session y asignarle un valor, antes de proseguir debo de mencionarles que la manera de crear una variable y asignarle un valor depende de una variable de php llamada register_globals veamos ambos casos.

  • Si register_globals=off o tu version de php es la 5 o mayor ni le busques esta es la opcion que debes de utilizar es por eso que la pongo primero.
$_SESSION['nombre_de_la_variable']=valor;

Para comprobar si tu variable fue registrada puedes implementar la siguiente funcion:

if(isset($_SESSION['nombre_de_la_variable'])){
echo "Registrada"
}else{
echo "No registrada"
}

  • Si register_globals=on entonces lo que debes de hacer es:
$variable_de_session=valor;
session_register("variable_de_session");

Para comprobar si tu variable fue registrada puedes implementar la siguiente funcion:

if(session_is_registered("variable_de_Session")){
echo "Registrada"
}else{
echo "No registrada"
}
Bueno una vez creadas las variables de session y asignados un valor ya sea de la primera o la segunda forma tendremos disponibles estas variables con sus respectivos valores en todas las paginas donde iniciemos session (es decir donde tenga session_start();).

OTRAS FUNCIONES
Las siguientes son funciones validas sin importar de que manera se dio de alta la variable.

  • Para eliminar la session unicamente hay que poner: session_destroy();
  • Para eliminar una variable registrada: session_unregister();
  • Para leer o cambiar el identificador de session actual: session_id();
  • Para eliminar todas las variables de session ojo no destruye la session solo elimina todas sus variables: session_unset();
  • Para leer o cambiar la ruta donde se guardan los datos de la session actual: session_save_path(); hay que configurar save_path para que no de error en php.ini
Pues bien con esto concluye el tema de variables de session, a que es sencillo vdd, bueno si alguien tiene algo que agregar, alguna otra funcion util o algo del tema que quieran compartir, ya saben que sera bien recibido. hasta la proxima!!!

martes, 18 de noviembre de 2008

Entrevista con Suraski



Para las personas familiarizadas con php y su historia bien recordaran que si bien el padre de php podriamos decir que es Rasmus, ya que de el nacio el principio del concepto, tambien conoceran la importancia de Zeev Suraski que junto con Andi Gutmans rescribieron desde cero el analizador sintactico del PHP/FI para concebir junto con Rasmus y un buen numero de desarrolladores que se subieron al barco, lo que el mundo conoceria como PHP, si bien de un tiempo aca ah sufrido ya muchisimas actualizaciones, PHP se puede decir que fue PHP desde ese historico momento, weno pues resulta que navegando por aqui y por alla me encontre con una entrevista que le hizo El pais.com" , la entrevista no es nueva, es de abril del 2007 sin embargo pienso que siempre es interesante lo que estos gurus tienen que decir, asi que sin mas los dejo con ella:


Zeev Suraski, israelí de 31 años, es un hacker de manual. En vez de ir a clase, aprovechó la universidad para pasar horas escribiendo código con su amigo Andi Gutmans. Así crearon el lenguaje libre de programación PHP, para desarrollar páginas web. Hoy dirigen su compañía, Zend Technologies, demostrando que es posible hacer dinero con un producto de código abierto...


"PHP es potente, fácil, gratuito y permite a servicios como Flickr, Digg o Youtube crear aplicaciones rápidamente en un mercado veloz"


-Ya no programas?

-No mucho. Antes progrmaaba mucho, creé PHP hace 10 años, he estado muy involucrado en su desarrollo hata 2002, aunque sigo desarrollando algunas partes. Ahora ayudo a empresas a implementar php, alianzas estratégicas, etc, es lo que más hago ahora, más que programar.

-Tú y andi sois algo del estilo wozniak and steve jobs. Ahora eres el steve jobs del php?

-ok

-Cómo explicarías a un niño pequeño qué es php?

-No sé si lo entendería... Sabes esta cosa llamada Internet, donde puedes ir a sitios como Youtube, Yahoo y otros sitios web? PHP es la herramienta que usan estas compañías para crear estos sitios web. Es un lengauje de programación para desarrollar sitios web.

-Qué significa?

-Oficialement significa "PHP Hypertext Processor", sigue la misma idea de "GNU is Not Unix". Es un nombre muy malo. En el pasado significaba Professional Home Pages. Pero cuando nosotros creamos la nueva implementación queríamos encontrar un mejor nombre que PHP/F1, como lo llamó su creador, porque era difícil de pronunciar, pero no pudimos, así que seguimos llamándolo PHP, sin F1. Y PHP es PHP y ya está.

-El creador de PHP fue Rasmus Lerdof. Andi y tú lo reescribistes. Por qué?

-Usábamos PHP como usuarios para crear aplicaciones web en 1996. Estábamos haciendo un proyecto de la universidad, una tarjeta para hacer compras de comercio electrónico, lo que entonces se consideraba un proyecto muy avanzado, porque la web era algo nuevo. Yo conocía PHP, que era una alternativa a Perl, más fácil, y lo usaba, todo el mundo usaba Perl pero nosotros preferimos usar PHP.

-Y por qué reescribirlo?

-Cuando empezamos a usarlo vimos enseguida que tenía bastantes problemas, problemas serios en el lenguaje. Podríamos haber usamos Perl pero preferimos fijarnos en qué le pasaba a PHP, que era de código abierto y por tanto podíamos mirar el código. Estaba realmente embrollado, era un caos. Hablamos con su creador y nos dijo que él había hecho algo para que le funcionase a él y su equipo, que no era un informático y que si queríamos hacer cambios seríamos bien recibidos. Y lo hicimos. Para nosotros era como un hobby, gastamos todo un curso en la universidad con esto, al fin y al cabo no estábamos demasiado interesados en estudiar y hacer los exámenes. Preferíamos trabajar en esto y era una buena excusa para no estudiar.

-¿De qué parte te encargaste tú en el desarrollo de PHP?

-El desarrollo completo, el 67%. Y también Andi. Trabajábamos juntos, diseñábamos el nuevo lenguaje. Basado en PHP/F1 pero también en Java, C, un mix en diversos lenguajes. Creamos algo que tuvo mucho éxito. No fue sólo coger PHP/F1 y escribirlo de nuevo sino crear PHP de nuevo y convertirlo en un lenguaje poderoso que pudiese competir con C, Java y otros. Trabajamos en el diseño, la implementación, arreglar los fallos, etc.

-Sabes que eres un hacker?

-En el pasado, sí. Y aún lo soy, pero más orientado a los negocios.

-Cuántos servidores en Internet usan PHP?

-Los números cambian mucho y es difícil de decir. En porcentaje tenemos del 30 al 35% de toda la Internet corriendo con PHP. Si comparamos las plataformas para servidores web, PHP es la primera y la segunda es .Net. Y, en cuanto a desarrolladores, .Net y Java tienen más, pero ambas no son sólo para la web, hacen otras aplicaciones. PHP es la plataforma de desarrollo web más popular. Y, en cuanto a desarrolladores está siendo más popular que Java. En Europa y en el entorno de desarrolladores, PHP es más popular que Java.

-Por qué Europa ama PHP?

-Es una combinación de cosas. Una es que el código abierto en general es más popular en Europa que en otro lugar del mundo, quizás por diferencias culturales y también porque en Estados Unidos están las grandes empresas de código abierto, en cambio en Europa no las hay pero hay muchas comunidades locales, son muy fuertes. Hace una semana, estuve con grupos de usuarios en Alemania y la gente se reúne una vez al mes para hablar de PHP y otras cosas. Estas comunidades no existen en Estados Unidos. Es un hecho que la adopción de Linux es más fuerte en Europa que en EEUU. Todos los proyectos de código abierto son más populares en Europa que en EEUU. EEUU lo vive de otra manera. Por ejemplo, las grandes compañías están empezando a usar código abierto pero se siente más confortables si usan Oracle y software propietario.

-Por qué PHP se ha hecho tan popular?

-Por dos cosas sobre todo. Una es tecnológica: es simple, lo que lo hace más productivo. La segunda razón es social: se hizo muy popular por un círculo de efectos: hay una gran comunidad que usa PHP, lo que significa que siempre hay alguien que puede ayudarte, responder una pregunta en un foro o una lista, gente que escribe documentación, grupos de usuarios... No necesitas ser un programador para usarlo, puedes cogerlo y usarlo, normalmente gratuitamente, cambiarlo. La contribución social a PHP es la clave de su éxito y lo que lo nutre y lo hace más y más atractivo. Simplicidad y comunidad son las respuestas de su éxito.

-Y ustedes agradecen la ayuda a la comunidad dándoles PHP gratuitamente

-Muchas empresas desarrollan partes de PHP no para hacer negocio directamente, no para venderlo, sólo porque lo necesitan.

-PHP es software libre o de código abierto?

-En la definición de Richard Stallman, es código abierto porque no tiene una licencia GNU. PHP tiene su propia licencia.

-PHP es responsable del éxito de la web 2.0?

-Ha sido un elemento clave, no el único, pero lo han usado servicios web líderes porque es muy poderoso para crear aplicaciones web y gratuito, mientras que las herramientas de Microsoft son caras y necesitas usar sólo sus productos. programar PHP es fácil y permite desarrollar aplicaciones más rápido. Es difícil pensar qué habría pasado si no hubiese existido PHP pero la revolución de la web habría sido más pequeña o habría tardado más tiempo. La generación de contenido, la colaboración, que son el espíritu de la Web 2.0, lo son también de PHP. Por qué tantas aplicaciones de código abierto usan PHP? Avances como la Wikipedia, donde la gente aporta información...

-¿Cómo se siente uno cuando se echa en el sofá de su casa y piensa: yo ayudé a crear la web 2.0?

-La web 2.0 han sido un montón de cosas diferentes que han convergido al mismo tiempo, no fuímos sólo nosotros. Nosotros hemos sido unos de los colaboradores. Estoy muy orgulloso de haber sido uno de los colaboradores clave y normalmente no me siento en mi sofà pensando esto, pero ahora que estoy volando a diferentes países, Rusia, Estados Unidos, Europa y veo que en ciudades de todo el mundo hay gente usando PHP, el lenguaje que ayudé a crear, es muy bonito. No puedo hablar en español con ellos pero todos hablamos el mismo lenguaje, que yo ayudé a crear. Esto es muy bonito.

-El video mató a la estrella de la radio. PHP está preparado para la web 3.0?

-No sé cómo será la web 3.0 y no puedo decir que estemos preparados para ello pero, en general, tenemos mucho éxito en integrar tecnologías para hacerlas accesibles, integración con Java, etc. Ahora que estamos preparando la versión 6 de PHP, veo que está tan avanzado y es tan poderoso, comparado con la versión de 1996, está integrado con tantos lenguajes, muchas cosas que hemos implementado en PHP están basadas en ideas y demandas de la gente que lo está usando, quizá el 60%. Por tanto, el hecho de que PHP responda a las necesidades de la gente hace que cuando la web 3.0 sea popular, PHP soporte todo lo que necesite. Incluso sin saber que será la web 3.0, una forma de conocer el futuro es crearlo.

-Cuándo liberaréis PHP 6?

-En 2008 pero muchas cosas nuevas que habrá en PHP 6 ya las estamos ofreciendo con las nuevas versiones de PHP 5, para que no sea necesario esperar a la 6.

-Google usa PHP?

-Tiene su propio equipo de desarrolladores que hacen la mayoría de sus aplicaciones. Pero nos han contratado para crear una librería PHP para acceder a los servicios de Google. Los lenguajes que usa son Java y PHP. Pero cuando hacen servicios para el mercado, valoran PHP como tecnología clave.

-Yahoo, youtube, Flickr, Digg.. Los mejores servicios de la web usan PHP. O quizá son los mejores porque usan PHP?

-Quizá sí debas ser bueno para usar PHP :) PHP ayuda a realizar los conceptos que ellos tienen de la mejor forma posible. Les ayuda a implementar los servicios que quieren, a ser los mejores del mercado... Es una combinación de buena mercadotecnia y buena tecnología para ser los primeros. PHP les permite crear aplicaciones rápidamente en un mercado que se mueve rápidamente.

-En las listas de correu, los blogs, es fácil encontrar a gente hablando o usando PHP. También entre los servicios punteros de Internet. Ahora las compañías tradicionales, no sólo las relacionadas con la red, también empiezan a usar PHP. ¿Es así?

-Sí. Es un fenómeno bastante nuevo. Si hubiésemos hablado hace dos años no habría tenido muchos ejemplos pero hoy sí, PHP está entrando en las compañias tradicionales: telecomunicaciones, bancos, gobiernos.. Uno de los ejemplos más interesantes es el gobierno francés donde PHP está entrando muy fuerte junto con otros sistemas de código abierto. La razón de que empresas e instituciones adopten PHP es por un parte su simplicidad, también el hecho de que las grandes empresas de software han empezado a soportar PHP en los últimos años. PHP ya no es sólo un proyecto de soft de código abierto, está cambiando la percepción. Además ha penetrado con mucha fuerza en la comunidad de Internet. Está siendo cada vez más popular en grandes corporaciones, como Fiat.

-Y por qué estos sitios adoptan PHP si, por ejemplo, a la administración Microsoft le da sus herramientas gratuitamente? Si ambos son gratuitos, ¿por qué escogen PHP?

-Microsoft es muy popular y PHP menos. Mucha gente prefiere PHP y otra prefiere Microsoft. PHP es más fácil que .Net, más productivo, muy escalable y personalmente prefiero usar PHP con Linux que .Net con Microsoft porque, de esta forma, no sólo las herramientas sino todo es libre y gratuito. Además tienes el código abierto y puedes cambiar lo que quieras, lo que hace que sea más fácil cambiar de dirección.

-Ahora Java es libre. ¿Es un problema para PHP?

-No. Hay una diferencia fundamental entre ambos: Java no se ha diseñado para crear sitios web sino aplicaciones de escritorio. Es más difícil crear sitios web con Java que con PHP, sea Java libre o no. Estamos en negocios diferentes.

-Un joven que está aprendiendo a programar, es mejor que .Net o PHP?

-Si quiere encontrar un trabajo, es indiferente. Depende de tu naturaleza, de lo que prefieras: trabajar con herramientas de Microsoft o tener el control total de la aplicación y usar PHP. Hay usuarios de uno y otro.

-Si PHP es gratuito, ¿de qué vivís?

-Cuando lo creamos estábamos en la universidad y no necesitábamos mucho dinero, era un hobby. Pero cuando empezó a crecer, en ocho meses, entre 1998 y 1999 un millón de sitios web lo empezaron a usar. Fue algo increible. Y empezamos a pensar qué negocio podíamos crear, no fuimos nosotros sino que las empresas venían a nosotros, en 1999, pidiéndonos que hiciésemos determinadas herramientas para PHP que no existían o pidiéndonos soporte. Al ver esto, creamos Zend Technologies. Invertimos mucho en código abierto y lo que hacemos es vender el conocimiento y crear programas comerciales y servicios para empresas. Así hacemos el dinero. Invertimos mucho en proyectos de código abierto y donde hacemos el dinero es en los servicios comerciales.

-Y hacéis suficiente dinero para vivir tranquilamente? ¿no es una entelequia lo de vivir del software libre?

-No, no. No somos Bill Gates pero vamos bien.

-¿Zend tiene 140 trabajadores?

-Sí. La mayoría son desarrollores. Nuestra central está en California, en Cupertino, y también tenemos oficinas en Israel, Alemania y Francia.

-¿El código de PHP se produce todo en Zend?

-No. Zend es responsable sólo del kernel de PHP. El resto de contribuciones son desarrolladas por gente de Zend pero muchos voluntarios. PHP no sería lo que es sin las contribuciones de esa gente que ha creado las extensiones y otros, voluntarios de todo el mundo. Zend hace las partes quizá más complicadas pero la mayoría de gente que contribuye crea y mejora PHP son voluntarios de todo el mundo. No sería tan popular sin sus contribuciones. Si miras todas las líneas de código de PHP, quizás el 90% es de los voluntarios. PHP es como una cebolla: en el centro está el kernel y esto lo desarrollamos nosotros, pero el resto de capas las hacen voluntarios (extensiones, etc). Zend hace también una parte, pero pequeña. En PHP hay un montón de desarrollo de la comunidad. PHP es uno de los mejores ejemplos de productividad funcional de la comunidad. No somos sólo una empresa.

-¿Qué tecnologías son realmente vuestros competidores?

-Java y .Net son grandes competidores. .Net es muy bueno si te gusta Microsoft, están haciendo un buen trabajo. Java es una historia diferente, tiene mucho trabajo hecho en la percepción, en la imagen, han hecho un gran trabajo de marketing, todo el mundo piensa que debe usar Java para todo. Esta percepción es aún difícil de cambiar. Java es un competidor en el área de aplicaciones web más por la percepción de las empresas de que deben usar Java para todo. Esto está empezando a cambiar, también porque las empresas oficiales de Java están empezando a soportar PHP y vemos a Java menos como competidor y más como colega, aplicaciones que conectan PHP y Java, usar Java para unas cosas y PHP para otras, conectarlos es necesario.

-Hace unos días, leíamos que el editor de O'Reilly decía: "We've noticed that one of the signs that a language is becoming mainstreams (and perhaps being abandoned by the cutting edge developers) is that the For Dummies book becomes the top seller". ¿Es quizás el caso de PHP?

-Ahhh... Qué manía en predecir el futuro.. No, no lo creo... No sé si es un buen indicador. PHP desde el principio no ha querido dirigirse a los desarrolladores avanzados. Desde el principio sabíamos que no era para ellos, por eso lo hicimos fácil de usar. No queríamos que fuese un lenguaje élite desde el principio sino fácil para los nuevos y creo que hicimos un buen trabajo. Y ahora hay muchos novatos que lo usan y también compañías avanzadas y queremos seguir por este camino.

-Se habla mucho de la inseguridad de la web 2.0 y también de las aplicaciones PHP. No hace mucho, vuestro responsable de seguridad se marchó del grupo y anunció que daría a conocer todos los fallos de PHP. ¿PHP tiene un problema de seguridad?

-Sí, tenemos problemas de seguridad, pero los tiene todo el mundo. Y cuando los conocemos los arreglamos, respondemos muy rápido. Cuando se hizo el mes de fallos en PHP creo que respondimos rápidamente. Hay que entender también que, desde una perspectiva de seguridad, la web es un sitio muy peligroso. Cualquier aplicación que pones en línea, todo el mundo, gente de Rusia, de Australia, de Estados Unidos, se pone a intentar tumbarla. Hoy en día es muy complicado crear aplicaciones seguras. Muchos de los problemas de PHP son en aplicaciones, no en PHP en sí. Por tanto, lo que hay que hacer es educar a la gente, a los desarrolladores, para que escriban aplicaciones seguras. Zend y también la comunidad PHP está creando mejor documentación para crear aplicaciones seguras.

-Creo que también se debería educar a los usuarios. Por ejemplo a no usar javascript cuando navegadas por la web.

-Sí, pero javascript está siendo cada vez más importante, muchas webs no funcionan sin javascript.

-Odio javascript!

-Todo el mundo lo odia.

-Un hacker pide que te pregunte: ¿Cuál es tu sistema operativo preferido?

-Espero que no me maten. En el escritorio uso Windows y en el servidor, Linux, no me importa qué distribución. Para el servidor por supuesto prefiero Linux.

-PHP tiene algún conejo a punto de sacar de la chistera?

-Conejos no, solemos jugar con la transparencia en el código abierto. La discusión precisamente está en ser muy abiertos. Para la comunidad de desarrolladores, el Zend Framework y los componentes que vamos a publicar en unos meses creo que serán una sorpresa, aunque no son un secreto. Para las empresas, estamos haciendo más potente Zend Core. También estamos trabajamos con IBM en herramientas para PHP. Es difícil hablar de sorpresas porque no lo son.

-Si PHP no hubiese sido libre habría tenido este éxito?

-No. Más por la accesibilidad que por el precio, que no es un aspecto demasiado importante, aunque está claro que si no te cuesta nada entrar en esta tecnología es más fácil hacerlo. Hoy las compañías usan PHP porque la tecnología es buena, pero si no fuese popular no lo harían. La comunidad ha sido la clave del éxito de PHP.

jueves, 6 de noviembre de 2008

Metodos inexistentes en PHP 6



Trabajando con el R&OS que es una libreria para generar pdf que ya les comentare, todo hiba de las mil maravillas con esta exelente libreria, sin embargo cuando quice incertar imagenes en el pdf ohhh sorpresa, me decia que habia un error en el metodo magic_quotes en donde???, me dije, si yo no tenia ningun metodo con ese nombre, siguiendo con mi lectura del error vi que se originaba en un archivo de la libreria R&OS pues bien hice lo que todo buen programador haria, me fui de inmediato al archivo eh hice un poderosicimo ctrl+f (depende del idioma del programa :P) para localizar donde se creaba dicho metodo, lo unico que pude localizar fueron multiples llamadas al mismo, pero del metodo ni sus luces asi que me quede con cara de ???????.

Despues ya mas sereno poniendome a investigar, encontre que algunos metodos que existian por defecto en PHP, en las versiones nuevas, mas especificamente de la 5 en adelante dejaron de existir, sin embargo aun muchas librerias no muy recientes hacen referencia a estos metodos, por lo que si usamos una version de php mayor a la 5 por logica tendremos errores cuandos estas librerias quieran referenciar a metodos inexistentes, pues bien ahora despues de todo este choro, la solucion propuesta es la siguiente:

if (!function_exists('get_magic_quotes')) {
function get_magic_quotes() {
return false;
}
}

Es decir checamos si no existe la funcion (si por casualidad se nos paso pondriamos peores las cosas :P) y si es el caso, entonces la creamos y simplemente retornamos un false, es decir no reconstruiremos toda la funcion original, pero podemos engañar a la libreria para que pase por alto esta funcion y me termine de hacer el proceso que deseabamos en un principio.

Quiero hacer notar que en el titulo no puse algo como error con libreria magic_quotes en php 6 :P, el por que es el siguiente, quiero que se entienda que este truco no solo aplica a ese metodo(magic_quotes), si no que lo podemos utilizar con cualquier metodo que anteriormente existia y que halla desaparecido en las ultimas versiones de php, esto con el fin de hacer nuestras librerias compatibles con estas ultimas versiones de php(la 5 y la 6).


Error en las fechas con php 6



Anteriormente no tenia problemas con el manejo de fechas php, sin embargo cuando estaba probando la version 6 de php me sorprendio mucho que todos los programas que manejaban fechas me arrojaban un warning muy molesto en donde me decian que fijara la zona horaria.

Investigando encontre que el por que de este warning es que apartir de la version 5 de php en adelante, el parametro de zona horaria que anteriormente tenia un valor definido por default, dejo de tenerlo, es decir en las ultimas versiones de php por defecto el valor de la zona horaria viene en blanco, por lo cual nos vemos obligados a definirlo explicitamente de la siguiente manera:

date_default_timezone_set ("zona horaria");

en mi caso quedaria:

date_default_timezone_set ("America/Monterrey");

Luego entonces para que ese warning nos deje de molestar simplemente hay que agregar la linea anterior a nuestro codigo php con nuestra zona horaria respectiva, de preferencia al inicio, aunque esto no es relevante.

Links:
Para localizar la zona horaria que te corresponde haz click aqui
Para obtener mas informacion de la funcion date_default_timezone_set haz click aqui


domingo, 2 de noviembre de 2008

Pasar valores de variables como parametros - variables URL




Para pasar las variables de una página a otra lo podemos hacer introduciendo dicha variable dentro del enlace hipertexto de la página destino. La sintaxis sería la siguiente:

<a href="destino.php?variable1=valor1&variable2=valor2&...">Mi enlace</a>

Podéis observar que estas variables no poseen el símbolo $ delante. Esto es debido a que en realidad este modo de pasar variables no es específico de PHP sino que es utilizado por otros lenguajes.

Ahora nuestra variable pertenece también al entorno de la página destino.php y está lista para su explotación.

Nota: No siempre se definen automáticamente las variables recibidas por parámetro en las páginas web, depende de una variable de configuración de PHP: register_globals, que tiene que estar activada.

Para aclarar posibles dudas, veamos esto en forma de ejemplo. Tendremos pues dos páginas, origen.html (no es necesario darle extensión PHP puesto que no hay ningún tipo de código) y destino.php:

<HTML>
<HEAD>
<TITLE>origen.html</TITLE>
</HEAD>
<BODY>

<a href="destino.php?saludo=$dato&texto=Esto es una variable texto">Paso variables saludo y texto a la página destino.php</a> //creamos el link que enviara los valores, si observamos bien estos valores pueden ser fijos como la cadena de texto o bien variables como $dato.

</BODY>
</HTML>


<HTML>
<HEAD>
<TITLE>destino.php</TITLE>
</HEAD>
<BODY>
<?
//imprimimos las variables
echo "Variable \$saludo: $saludo <br>\n";
echo "Variable \$texto: $texto <br>\n"

//o bien si la forma anterior no funciona, tendremos que obtener dichas variables explicitamente, esto a traves del metodo get como se ilustra a continuacion:
//reciviendo las variables url
$var1=$_GET[saludo];
$var2=$_GET['texto'];
//imprimimos los valores
echo "Variable saludo:$var1, variable texto:$texto ambas fueron recividas via url";

?>
</BODY>
</HTML>


Comillas y apostrofes



Mega super extra rapido post, para ver cual es la diferencia entre usar comillas y usar apostrofes en nuestro codigo php o js.

  • SI PONEMOS APOSTROFES '' EL CONTENIDO SE IMPRIMIRA TAL CUAL, es decir si ponemos: echo 'el carro es de $persona' el resultado deberia de ser el carro es de $persona.

  • SI PONEMOS COMILLAS IMPRIMIRA EL TEXTO E INTERPRETARA LAS VARIABLES, volviendo al ejemplo anterior sitenemos: echo 'el carro es de $persona' se imprimira en pantalla, el carro es de blanca en caso de que $persona=blanca.

sábado, 1 de noviembre de 2008

Problemas con la ñ y acentos en javaScript

Algunas veces al momento de trabajar con javaScript nos encontramos con que no reconoce los caracteres acentuados o las letras ñ, muchas veces ni cuenta nos damos de que ese error esta latente solo hasta cuando probamos nuestra aplicacion, puede ser que no le demos mucha importancia a esto (y dependiendo para que utilicemos js puede que no la tenga), sin embargo si realizamos las validaciones de nuestro sitio con js puede que este error se convierta en una lata, asi que aqui hay algunas recomendaciones para solucionar este problema.

Casos de error

1) Regularmente con la codificacion utf-8 no debe de haber ningun problema (si no sabes que codificacion tienen tus paginas busca la palabra charset que se encuentra dentro de la etiqueta meta) sin embargo si es asi recomiendo que uses la codificacion española, observa la siguiente linea y prueba si el problema esta solucionado.

< meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
o bien
< meta http-equiv="content-type" content="text/html; charset=es-iso-8859-1" />

el charset debe de ser iso-8859-1 o es-iso-8859-1 que es la codificacion española, con esto en las expresiones regulares ya no tendremos problemas de validar las ñ's.


2) Bueno esta mas que ser la solucion 2 es una extencion de la primera, una vez que cambiamos el charset si estamos interactuando con una base de datos por ejemplo MySQL puede que hallamos observado que los acentos y palabras con ñ simplemente no los guarda, entonces diremos bonita solucion, me arregla un lado pero me descompone otro :P, bueno esto pasa por que sinos fijamos bien en la estructura de nuestra tabla veremos que en la columna cotejamiento tenemos definida la codificacion estandar utf y como ahora estamos usando una codificacion diferente, es logico que la base de datos no guarde la informacion de la manera que es debido, esto se soluciona facilmente cambiando el cotejamiento a uno compatible con nuestro tipo de codificacion, normalmente es un tipo spain o un tipo latin :)



3) Como habia comentado, es raro que la codificacion utf-8 nos de problemas, pero se puede dar la situacion de que la codificacion no sea el problema si no la incompatibilidad entre codificaciones, me explico, a mi me paso lo siguiente:

Tenia un archivo js externo y mi codificacion de paginas era la estandar es decir utf-8, al checar otras paginas en las que usaba expresiones regulares con la misma codificacion, note que no tenia ningun problema con la "ñ" sin embargo en esa pagina donde la evaluacion de los campos se hacia en el archivo externo simplemente no reconocia la ñ como caracter aunque la incluyera explicitamente (que es lo que hay que hacer) en mi expresion regular, no daba con el por que hasta que me di cuenta que como el archivo externo lo habia generado con el blog de notas de windows (de una u otra forma simpre windows tiene la culpa :P broma - broma fue mi estupidez)
la codificacion del documento habia sido Unicode en vez de utf-8 lo que hice a continuacion fue cambiar la codificacion de la pagina (eso es un decir por que la verdad cree un nuevo archivo que guarde con codificacion utf-8 e hice un copy - paste de mi archivo original al nuevo :D) y con esto como por arte de magia se soluciono el problema :), verifiquen esto por que puede que ahi radique el error.

4) De echo esta solucion debio de ir como numero 1, sin embargo no me acorde hasta que estaba escribiendo el punto anterior, como mencione si usamos expresiones regulares para validar campos una expresion comun es hacer que el campo solo acepte letras eso seria mas o menos algo asi: /^[a-zA-Z]$/ y listo, sin embargo la "ñ" como muchos sabemos no forma parte del alfabeto americano, britanico etc, etc por lo que hay que agregar esta letra de forma explicita, haciendo: /^[a-zA-Z ñ Ñ]$/ y con esto tendremos solucionado el problema, independientemente de las soluciones anteriormente vistas, esta es una correccion que por default debera ir para que mi expresion acepte ñ's perdon por ponerla hasta este punto :P que quieren se me paso :).

como nota: Aunque por deduccion ya lo debieron de haber supuesto(redundate, reundate :P), para los acentos es igual es decir deberan agregarlos explicitamente /^[a-zA-Z ñ Ñ á Á éÉ íÍ óÓ úÚ]$/ traten de intentar esta solucion antes que las anteriores y espero que con esto quede todo resuelto :).

5) Este es el ultimo punto y mas que una solucion es un truco muy util para estos problemas de codificacion, sin embargo alejandonos un poco del titulo, este es un truco para php, que por medio de la funcion mb_convert_encoding es capaz de cambiar la codificacion de los caracteres de un bloque de texto determinado:

$tex = mb_convert_encoding($texto, “ISO-8859-1?, “UTF-8?);

o bien

$tex = mb_convert_encoding("Ñoño nuñes tiene gripíta", “ISO-8859-1?, “UTF-8?);

Bueno es todo en este post espero que alguna de estas soluciones les sirva. =)

domingo, 21 de septiembre de 2008

Frameworks

Saluditos, saluditos, pues ahi tienen que recientemente se realizo un evento online al que le pusieron de titulo seminario de php, supe de este evento a traves del sitio Desarrollo Web (Muy buen sitio por cierto), bueno el caso es que aunque prometieron mucha informacion desde mi punto de vista fue poco sustancial y me dejaron con ganas de informacion, sobre todo de como usar el dreamweber para ahorrarte el 80% del desarrollo de un sitio :P, pero en fin esa es otra historia, el caso es de que apesar de que no fue lo que esperaba en cuestion de informacion si fue un seminario bastante motivador que supero en creces mis espectativas en dicho sentido y es que se tomaron temas muy interesantes, (yo creo que en si el seminario no fue de ninguna manera malo, sino la publicidad te daba una idea equivocada de lo que hiba a ser, sin embargo estoy muy contento de haberlo seguido)que aunque solo se fuse por encimita ciertos puntos como el de Dreambevear :P y el del trabajo del freelance fueron por mucho muy interesantes y motivadores (perdonen que lo repita bastante pero creo que ese fue el punto clave de este seminario, la motivacion para hacer las cosas, de echo termine de escucharlo y luego luego me diron ganas de programar ;), por lo cual mis mas sinceras felicitaciones al grupo organizador de este seminario y espero que no se detengan y nos regalen muchos seminarios mas y que por favor me expliquen lo del Dreamweber jejejeje por lo mientras yo ya lo voy investigando :), bueno ya dicho mi punto de vista sobre esto regreso a lo que va a ser este post (es que empece a escribir y en elcamino me perdi)... :( ... :P

Bueno la cosa esta asi, dentro de la variadad de cosas que se mencionaron en el seminario dijeron algo lo del uso de herramientas de desarrollo rapido, las cuales sirven para reducir la codificacion de las paginas considerablemente y de esta manera terminar proyectos mas facilmente y con codigo ya mas que probado, dicho sea de paso esto tuvo la facultad de acelerarme el pulso :P y es que aunque ya sabia de estas herramientas nunca me habia dado tiempo para utilizarlas ni conocer mas de ellas, asi que llegado a este punto pues me puse a investigar algunos frameworks de desarrollo rapido y encontre dos muy buenos y gratuitos:

nota: aun no los exploro totalmente pero conforme los vaya uzando mas ya estare muy pronto hablando de ellos :)

Y todos a movernos al ritmo de la... KUMBIA

Kumbia es un web framework libre escrito en PHP5. Basado en las mejores prácticas de desarrollo web, usado en software comercial y educativo, Kumbia fomenta la velocidad y eficiencia en la creación y mantenimiento de aplicaciones web, reemplazando tareas de codificación repetitivas por poder, control y placer.

Sus principales características son:

* Sistema de Plantillas sencillo
* Administración de Cache
* Scaffolding Avanzado
* Modelo de Objetos y Separación MVC
* Soporte para AJAX
* Generación de Formularios
* Componentes Gráficos
* Seguridad

y muchas cosas más.

Adicional a esto Kumbia integra lo mejor de la Web en un solo framework para producir las aplicaciones Web del mañana (prototypejs, phpMailer, Smarty, FPDF, Script.aculo.us)

Enlace a Kumbia



CakePHP, un ambiente de desarrollo rápido para PHP

Este sentido programa que nos anuncia que programar en PHP es un como pedazo de pastel.

El proyecto tiene liberado su tercer candidato de liberación y pinta bien, requiere que se tenga instalado tanto el lenguaje de programación como Apache y el administrador de bases de datos, preferentemente MySQL, bastando sólo con descompactarlo y algunas configuraciones para tenerlo operando.

Algunas caracterísitcas es que soporta PHP 4 y 5 (se recomienda el primero), genera código limpio de acuerdo a las mejores prácticas para el manejo de passwords y sesiones, puede manejar código orientado a objetos, es sencillo de utilizar y se libera bajo la licencia MIT.
descargas: página del proyecto.

domingo, 10 de agosto de 2008

php & mysql conexion

previo: debes tener instalado un servidor que soporte tecnologia php y mysql te recomiendo usar el paquete appserver o wamp que te instala de jalon php, apache y mysl asi como sus correspondientes ligas entre ellos, esto hablando de windows, ya en post anteriores explique como instalarlo en linux.

1)CONEXION A UNA BASE DE DATOS DESDE PHP

// parametros de configuracion bueno dejarlos como variables por razones de legibilidad y de facilidad a la hora de hacer modificaciones a los mismos, pero pueden ir directamente como parametro en la funcion que realiza la conexion.

$userdb = "root";
$passdb = "mypass";
$db = "mybd";
$host = "localhost";


//realizando conexion


$link=mysql_connect("$host","$userdb","$passdb") or Die ("Lo
sentimos la conexion a la base de datos no pudo ser llevada acabo, si persiste este problema informe al administrador de la red");

mysql_select_db("$db",$link) or die("Lo sentimos no sepudo seleccionar la base de datos deseada, por favor consulte este problema con el administrador");


// la funcion que crea la conexion es mysql_connect el resultado regularmente se guarda en una variable, esto no es necesario sin embargo es muy util ya que esta variable se usara por ejemplo almomento de hacer querys (consultas) a la bd y nos evita el volver a escribir toda la instruccion.
se utiliza la instruccion or Die regularmente en cualquier funcion php-mysql esta nos indica que si la funcion no pudo cumplir su cometido en este caso no se pudo conectar a la bd desplegaremos un mensage, esto es muy parecido a una sentencia if - else.

//la segunda instruccion la utilizamos para seleccionar a que bd nos deseamos conectar, como vemos ahi usamos nuestra cadena de conexion $link, aunque seria lo mismo escribir mysql_connect("$host","$userdb","$passdb")en lugar de esta, pero yo lo veo impractico y nuevamente hacemos uso de la funcion or die.

//definidos estos dos parametros mysql_connect y mysql_selec_db ya tenemos conectado nuestro programa con nuestra bd.

nota: no olviden que php es un leguaje sensible es decir diferencia entre mayusculas y minusculas esto lo digo por que muchos de los errores que tenemos en nuestros programas es por la mala escritura de las variables y tabien por la falta del famoso ; al final de cada sentencia.