Aplicaciones webs

Un blogspot personal dedicado al desarrollo web, entorno a todo los lenguajes tales como PHP, Java, JSP principalmente, así como tecnologías que van subiendo ahora como AJAX, además, contiene información sobre todo lo que a la web se refiere.

viernes, mayo 05, 2006

Problemas con $_POST array en PHP5.1.3

Se ha encontrado un bugs crítico en PHP5.1.3 que ha requerido la salida urgente de una nueva versión hacia el PHP5.1.4, sin dudas, un cambio rápido en las versiones a solos dos días de salida la anterior versión.

Al parecer el principal bug que ha influido en el cambio de versiones consiste en el tratamiento del array $_POST


Ejemplo:

--------

<?php

echo "<pre>";

print_r($_POST);

echo "</pre>";

?>

<html>

<head>

<title>test</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body>

<form method="post" action="" enctype="multipart/form-data">

<input type="text" name="masivasid[id_1]" value="Nzzz1"/><br/>

<input type="text" name="masivasid[id_2]" value="Nzzz2"/><br/>

<input type="submit"/>

</form>

</body>

</html>


Resultado esperado:

----------------

Array

(

    [masivasid] => Array

        (

              [id_1] => Nzzz1

              [id_2] => Nzzz2

        )

)


Resultado actual:

--------------

Array

(

     [masivasid] => Array

         (

               [id_1] => Nzzz1

               [id_2] => Array

                     (

                           [id_1] => Nzzz2

                     )

        )

)

sábado, enero 21, 2006

Cambio de valores del register_globals sin acceder al php.ini

Como las necesidades son las que hacen aprender al hombre, buscando en encontramos la forma de configurar el register_globals que encontramos en el php.ini pero desde dentro nuestro sitio web.
Lo que debemos hacer es:

- Crear un fichero .htaccess dentro del directorio de nuestro sitio web
- Crear dentro de este fichero la siguente línea (para el caso de poner en off el register_globals):
php_flag register_globals off

Si desea cambiar el estado, pues simplemente cambia el off por on
Recuerden que algunos editores de Windows y Macintosh algunas veces insertan caracteres especiales que pueden dar como corrupto el archivo .htaccess y por tanto no leíble su sitio web.

domingo, enero 15, 2006

Inicio de desarrollo de suite DevKis

Hoy comenzamos el desarrollo de la suite de CMS que llamaremos DevKis, con licencia Open Source (GPL).

Esta suite está pensada para la creación de varios CMS contenidos dentro de ellos, de las cuales inicialmente hemos definido el desarrollo de:
- DevKis Snippets
- DevKis Favorites
- DevKis Travel
- DevKis Live

Base de datos: Soportará inicialmente MySQL, MSSQL, PostgreSQL, Access

Lenguaje: PHP5, aunque comenzaremos con PHP4

Para el desarrollo usaremos además AJAX, se dará la posibilidad, además, de utilizar la aplicación sin usar la tecnología AJAX, para lo cual crearemos nuestro propio FrameWork que liberaremos bajo licencia GPL.

Poco a poco iremos dando datos del desarrollo de la aplicación y las características de las mismas.

PHP4 y PHP5 corriendo sobre un mismo servidor Apache

Después de pasarme un rato buscando en internet, hallé una solución para que funcionase el PHP4 y el PHP5 usando el mismo servidor Apache, trabajando de forma paralela.

En este caso el PHP4 corre como API y el PHP5 como CGI.

1- Instala Apache+PHP4, para eso puede usar el AppServ (es la aplicación que utilizo)

2- Descarga el PHP5 (Windows Binary .zip)

3- Descompacta su contenido en cualquier lugar de su disco duro, en mi caso tengo la estructura de la siguente forma (es la que da AppServ cuando se instala, excepto la carpeta del PHP5):
    - C:\AppServ
                        \Apache
                        \php (aquí está el PHP4)
                        \php5 (aquí descompacté el contenido del PHP5 descargado)
                        \www

4- Renombra el archivo "php.ini-recomended" que podemos encontrar en c:\AppServ\php5\ por "php.ini"

5- Se abre el archivo "httpd.conf" que encontramos en c:\AppServ\apache\conf\ y se agrega esto al final:
   
# Configuración de PHP5 como CGI
  Listen 83
    <Virtualhost _default_:83>
        ServerName localhost
        ServerAdmin me@localhost
        DirectoryIndex index.html index.php
        ErrorLog logs/error.log
        #http://httpd.apache.org/docs-2.1/mod/core.html.en#limit
        <Location />
            <Limit CONNECT>
                Order allow,deny
                Allow from all
            </Limit>
        </Location>
        DocumentRoot"c:/AppServ/www/"
        ScriptAlias /cgi-bin/ "C:/AppServ/php5/"
        Action php5-script /cgi-bin/php-cgi.exe
        AddHandler php5-script .php .html
    </Virtualhost>

6- Reiniciamos el apache y ya tenemos funcionando el PHP4 por http://localhost/ y el PHP5 por http://localhost:83/

Espero que les sirva como me ha servido a mi, si existe algún problema pues me escriben a mi email.

miércoles, noviembre 09, 2005

AJAX : una vista del futuro web

Asynchoronous Javascript And XML(AJAX) que no es más que la combinación del Document Object Model (DOM), XHTML, CSS, XMLHttpRequest y Javascript.
AJAX es el resultado de la unión de varias tecnologías con sus propios méritos que unidas forman el engranaje perfecto y poderoso del AJAX.
AJAX contiene:

- Presentación basada en estándares usando XHTML y CSS;
- Interacción y visualización dinámicas utilizando el Document Object Model;
- Manipulación e intercambio de datos usando XML and XSLT;
- Transferencia de datos asíncrona usando XMLHttpRequest;
- y Javascript poniendo todo junto.

AJAX no es un lenguaje, no tiene estándares, sino es la integración de otros lenguajes.
Aún ajax es un niños de tetas que lleva poco tiempo y que aún se desconoce la forma que tomará en el futuro, aunque ya hay personas que se plantean sus propias duda, como lo es Peter Paul Koch.
Muchos sitios en internet actualmente usan AJAX en sus desarrollos, sitios de la talla de Gmail, Start.
A pesar de los problemas de compatibilidad que existen con algunos navegadores, no hay dudas de que AJAX ha llegado para quedarse.

Clase Paginación usando parser

Siempre había estado trabajando con una paginación realizada por mi mismo, y que muchas veces cuando quería cambiar, pues tenía que estar configurando variables entre otras cosas, pero bueno...
Ya me he cansado un poco y me dispuse a hacer una paginación que se adapte prácticamente a cualquier paginación que se desee realizar.

Para esto cree una clase denominada edtPaginacion que en su versión 1.0 siemplemente hacía una paginación de la forma << < 1 2 3 4 > >> que daba la posibilidad de cambiar los << < > >> por otros nombres... al enseñarla a un amigo pues no me llevé los mejores elogios, si quieres una buena crítica y constructiva pues ahí estará Denis Ramírez (deensky@gmail.com) :-(, ya que no permitía realizar otra forma de paginación.

Fue entonces que tomé la opción de construir la clase edtPaginacion que en su versión 1.1 da la posibilidad de que los elementos contenedores de la paginación se parsearan, y sin dudas, pues ahora brinda mucha más funcionalidad.

Se puede descargar el archivo de la clase con tres ejemplos desde edtPaginacion_v1.1.zip

Échenle un vistazo y díganme que le pareció...