Hosting peru - Aprendiendo a entender AJAX
Creando el objeto XMLHTTPREQUEST function nuevoAjax(){var xmlhttp=false; try { xmlhttp = new ActiveXObject(”Msxml2.XMLHTTP”); } catch (e) { try { xmlhttp = new ActiveXObject(”Microsoft.XMLHTTP”); } catch (E) { xmlhttp = false; } }if (!xmlhttp && typeof XMLHttpRequest!=’undefined’) { xmlhttp = new XMLHttpRequest();}return xmlhttp;}Primer ejemplo; Cargar datos externos. function cargarContenido(){var contenedor;contenedor = document.getElementById(’contenedor’);ajax=nuevoAjax();ajax.open(”GET”, “ejemploajax1.html”,true);ajax.onreadystatechange=function() {if (ajax.readyState==4) {contenedor.innerHTML = ajax.responseText}}ajax.send(null)}window.onload= function(){cargarContenido()}Hay varias cosas qué checar aquí, primero obtenemos el elemento que tenga como id ‘contenedor’, después creamos un nuevo objeto ajax, luego es cargar el archivo html por el método GET y lo importante aquí es qué hacer cuando se cargue, esto es onreadystatechange. Segundo ejemplo; Envío de datos por el método GET function cargarContenido(){var t1, t2, contenedor;contenedor = document.getElementById(’contenedor’);t1 = document.getElementById(’texto1′).value;t2 = document.getElementById(’texto2′).value;ajax=nuevoAjax();ajax.open(”GET”, “ejemploajax2.php?t1=”+t1+”&t2=”+t2,true);ajax.onreadystatechange=function() {if (ajax.readyState==4) {contenedor.innerHTML = ajax.responseText}}ajax.send(null)}El archivo php sólo contiene este código Ahora sí, veamos el ejemplo. Tercer ejemplo; Envío de datos por el método POST function cargarContenido(){var t1, t2, contenedor;contenedor = document.getElementById(’contenedor’);t1 = document.getElementById(’texto1′).value;t2 = document.getElementById(’texto2′).value;ajax=nuevoAjax();ajax.open(”POST”, “ejemploajax2.php”,true);ajax.onreadystatechange=function() {if (ajax.readyState==4) {contenedor.innerHTML = ajax.responseText}}ajax.setRequestHeader(”Content-Type”, “application/x-www-form-urlencoded”);ajax.send(”t1=”+t1+”&t2=”+t2)}Usaremos el mismo php, veamos el ejemplo funcionando Notas adicionales Por algún extraño motivo, el objeto que es usado una vez ya no se puede usar otra vez. Por eso en la función cargarContenido siempre se llama a la función para crear un nuevo objeto ajax. Si no entienden de qué hablo, creen el objeto fuera de la función y verán cómo sólo funciona una vez Enviar y recibir datos con acentos/símbolos extraños es un dolor de cabeza. Básicamente, en php es la utilización de utf8_decode cuando se reciben y de utf8_encode cuando se envían.
Enviado Por admin | October 14, 2009 | En hosting ayuda
| No hay Comentarios
|
Archivos Enviados: October 14th, 2009
Hosting peru - CookiesLas cookies son contenedores de información que tienen la misma función que las variables, sólo que estas quedan guardadas en la computadora del usuario por lo que pueden utilizarse en cualquier momento. Las cookies se componen de una estructura básica que es nombre, valor y tiempo. Para que entiendas su funcionamiento, vamos a hacer un sencillo ejemplo en donde crearemos una cookie llamada “prueba”: <setcookie> En este ejemplo se ha creado una cookie llamada “prueba” con el valor “probando” y que tendrá una duración de 1 hora. Ten en cuenta que el tiempo se pone en segundos. Para obtener el valor de la cookie se usa una de las 3 formas que se muestran a continuación: <Para> De las 3 formas la recomendada es $_COOKIE[prueba], ya que la segunda fue usada en versiones anteriores de PHP como PHP 3, y la última puede ser insegura ya que si alguien conoce el nombre de la cookie la puede poner mediante el navegador de la siguiente forma: http://nombre.webcindario.com/index.php?prueba=probando También, esta forma será obsoleta con la llegada de PHP 6 que sólo permitirá el uso de variables seleccionandolas por su tipo ($_GET, $_POST, $_COOKIE, etc). Se puede eliminar una cookie sólo indicando su nombre: <setcookie> Nota: Las cookies sólo pueden ser leídas y eliminadas en la web donde fueron creadas. Si creas una cookie aquí: Podrás leer la cookie en todas las carpetas que se encuentren ahí: http://nombre.webcindario.com/carpeta1/carpeta2/carpeta3 Pero si has creado una cookie en una carpeta: http://nombre.webcindario.com/carpeta1 No podrás leerla en esta dirección: Para poder crear y eliminar cookies, no deberá haber ningún código de salida antes del código de la cookie, sino te provocará el error Cannot add headers. El código de salida se refiere a código HTML y códigos en PHP como echo e incluso los espacios en blanco (excepto saltos de línea). Ejemplo de forma incorrecta: <html> Ejemplo de forma correcta: <setcookie>
Enviado Por admin | October 14, 2009 | En hosting ayuda
| No hay Comentarios
|
Manejo de archivos con PHPPHP es uno de los lenguajes del lado del servidor más completos y con mayor número de funciones útiles. En este caso, estudiaremos las funciones que permiten trabajar con archivos, y en algunos casos con directorios. basename() Esta función devuelve la ubicación base de algún archivo. Es de utilidad cuando nos interesa eliminar la ruta física de algún archivo y devolver sólo el nombre de dicho archivo y su extensión: <ruta> Como ves, la función basename devuelve el archivo resultante de la eliminación de la ruta física. Su utilización es demasiado básica y no necesita de ninguna explicación amplia, aunque su utilidad también es un poco reducida. chmod() Increíblemente el PHP permite cambiar los permisos de algún archivo o directorio utilizando esta función. Obviamente está restringida y su aplicación no es más que un intento por cambiar el valor chmod de algún archivo o carpeta, pero para que verdaderamente funcione se requiere de soporte en el servidor. La única particularidad de esta función es que para otorgar permisos se debe anteponer un 0 al valor del permiso. Por ejemplo, para 755 se debe escribir 0755. La sintaxis de la función es: <chmod> En donde permiso, como ya mencionamos, debe ser el valor chmod que deseamos otorgar, con un 0 anteponiéndolo. Para dar a archivo.txt permisos 777 debemos utilizar la siguiente sintaxis: <chmod> copy() Como su nombre lo indica, esta función permite copiar archivos dentro del servidor. Muy útil si deseamos hacer un back-up online de modo que tengamos los archivos antiguos dentro del servidor evitando el peso de descargarlos todos. Aún así, las aplicaciones son muchísimas. <copy> copy() devuelve true si se ejecutó el proceso correctamente y false si no se logró la copia. <if> Lo anterior mostraría un mensaje de error si no se logra la copia del archivo archivo.txt a backup1.txt. dirname() Devuelve el nombre del directorio de una ruta: <ruta> diskfreespace() Esta extraña función devuelve el número de bytes de espacio libre que hay en algún directorio. Para verificar, por ejemplo, el espacio libre disponible en el directorio raíz de un sitio web se utiliza la sintaxis: <espacio> readfile() Lee un archivo completo y devuelve al final el número de bytes leídos. Si no se logra abrir la conexión con el archivo devuelve error. <archivo> Esta es una forma muy fácil de leer archivos aunque el problema está en que devuelve el número de bytes leídos, cosa que nadie desearía, para ello se utiliza más frecuentemente la función file() que devuelve un array con todas las líneas del archivo. Más adelante veremos cómo utilizarla. fopen(), fclose(), fwrite(), fread() fopen() crea una conexión a algún archivo, especificando el tipo de tratamiento que se le dará al archivo, es decir, si será de lectura, escritura o ambos. Por defecto, se puede leer un archivo pero para lograr escribir en él se requieren permisos chmod 755. fclose() cierra la conexión para liberar memoria. La sintaxis de fopen es: $archivo = fopen(”archivo.txt”,permiso); permiso equivale a una letra identificadora del tipo de tratamiento que le daremos al archivo. Existen tres básicamente: r (solo lectura), w (escritura) y a (ambos). En el caso de escritura el cursor se ubica al inicio del archivo por lo que la escritura afecta todo el contenido del mismo, mientras que a ubica el cursor al final del archivo para escribir nuevo contenido sin eliminar el existente. <fp> Ahora hemos introducido la función fwrite() que permite la escritura en un archivo, según la conexión creada. fwrite($conexion, textoaescribir); Otra de las muchas formas de leer archivos es utilizar la función fread aunque ésta está un poco limitada, pues sólo lee un archivo hasta determinado número de bytes, para evitar esto se puede utilizar la función file_size para establecer el número de bytes totales y así leer todo el archivo. Más adelante encontrarás información sobre esta función. <fp> file() Esta función toma el contenido total de cualquier archivo y lo guarda línea por línea en un array. Es la más útil de todas las formas de lectura de archivos pues permite crear scripts complejos que trabajen en líneas… por ejemplo un rotador de banners que tenga en cada línea un banner diferente para rotar. Pero para ello es necesario conocer algunas funciones de cadena, cosa que no se tratará en este artículo. $archivo = file(”archivo.txt”); Con lo anterior, $archivo ya es un array con todas las líneas de archivo.txt. Como $archivo es un array con cada línea de archivo.txt esto quiere decir que cada elemento en el array equivale en una línea, por ello se puede usar count() facilmente. <? Como ves es muy sencillo. Primero abrimos el archivo y lo convertimos en vector (array). Posteriormente guardamos su número total de elementos (que equivale al número de líneas) en la variable $lineas. La ventaja de este método es que podemos leer cualquier línea fácilmente, pues $archivo es un array. Si deseamos leer la primera línea podemos utilizar $archivo[0] y así sucesivamente. file_exists() Muy útil función que verifica la existencia de un archivo, devolviendo true si verdaderamente existe y false si no. <archivo> Hemos hecho uso de una estructura condicional para mostrar un mensaje de acuerdo a la existencia o no del archivo. Como PHP puede crear conexiones a servidores externos, es posible verificar la existencia de una URL con file_exists() antes de dirigir al usuario a dicha dirección. fileatime() Devuelve la fecha del último acceso a un archivo, o false en caso de error. <echo> Escribiría en pantalla la última fecha de acceso a archivo.txt filesize() Devuelve el número total de bytes que ocupa cualquier archivo. Es posible modificar estos valores mediante divisiones para convertirlo a megabytes, kilobytes, etc. <tam> El anterior código devolvería el tamaño total en bytes que está ocupando imagen.gif is… Las funciones is permiten conocer algunas características de un archivo o directorio. Todas poseen la misma sintaxis por lo que sólo veremos para qué sirve cada una. La sintaxis base es: <funcion> Donde funcion es alguna de las siguientes: is_dir: Devuelve true si $archivo es un directorio mkdir() Trata de crear una carpeta en el servidor: mkdir(”/ruta/al/nuevo/directorio”,permiso); El primer parámetro debe ser la ruta al nuevo directorio, es decir, al que se trata de crear y permiso es el permiso chmod en formato octal, es decir, con un 0 antes. El permiso permite establecer el chmod que deseamos al momento de crear el directorio. Funciona igual que chmod(). rename() Trata de renombrar algún archivo. <rename> Con eso terminamos la primera parte de este artículo sobre el tratamiento de directorios y archivos. El tema de próximos artículos será cómo aplicar realmente estas funciones, para lo cual crearemos un script que funcionará como administrador de archivos vía online. Tipo FTP pero más sencillo. Una nota de importancia es que en casi todos los ejemplos se ha utilizado como archivo el nombre archivo.txt pero en realidad puede ser cualquiera.
Enviado Por admin | October 14, 2009 | En hosting ayuda
| No hay Comentarios
|
Validar un emailLa mejor forma de validar un email es usando expresiones regulares, estas nos permitirán indicar de que forma está compuesta una dirección de correo y se intentará buscar un texto que coincida con lo que queremos. Para este ejemplo usaremos preg_match(). <email> El código a primera vista se ve muy complejo pero ahora lo desglosaremos para poder analizarlo. Cada parte coloreada de la expresión regular será descrita a continuación. ^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$ Nos dice que el correo debe comenzar (^) con uno o más caractéres alfanuméricos (\w+). ^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$ Después del caractér alfanumérico puede o no (*) haber un punto o guión medio seguido de uno o más caractéres alfanuméricos (([.-]\w+)*). ^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$ Después de lo anterior simplemente debe haber una arroba (@). ^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$ En esta parte usaremos las mismas condiciones para el nombre, pero esta vez se usarán para el servidor de correo (hotmail, yahoo, etc). Algunos correos pueden indicar el país antes del servidor de correo (mx.servidor). ^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$ Para terminar, nos dice que debe haber un punto seguido de una cadena de 2 a 4 caractéres alfanuméricos (\.\w{2,4}) sin permitir ningún caractér más ($) lo que nos indica el dominio del servidor de correo. El uso de expresiones regulares es complicado al principio y es conveniente que tu mismo vayas modificando una expresión que ya está funcionando para que veas como se va comportando. Para más información sobre expresiones regulares puedes consultar la sección de Funciones de Expresiones Regulares (compatibles con PERL) en el manual de http://www.php.net.
Enviado Por admin | October 14, 2009 | En hosting ayuda
| No hay Comentarios
|
Transformar una URL en un enlaceEn este caso queremos encontrar cualquier URL en un texto y transformarla automáticamente en un enlace, para esto haremos uso de la función preg_replace(). La función trabaja de la siguiente forma: preg_replace(Busqueda,Reemplazo,Texto) ; Este es el código: </a> Se está buscando dentro del texto una cadena de texto que comience con http://, que puede contener cualquier caractér (letras, números, guiones, etc.) excepto espacios en blanco ([^\s]+), al haber un espacio en blanco nos está indicando que aquí termina la URL. En la parte de Reemplazo usamos $0 para obtener la URL encontrada y meterla en un enlace usando HTML.
Enviado Por admin | October 14, 2009 | En hosting ayuda
| No hay Comentarios
|



