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

domingo, 11 de noviembre de 2012

PHP Fatal error: Class 'XSLTProcessor' not found in

Estoy moviendo mis aplicaciones Web PHP a una maquina virtual Linux (Crunchbang) que cree en un MAC. Por lo que al momento de tratar de hacerlas funcionar van apareciendo errores que tienen que ver con herramientas que no están instaladas.

Ejemplo este error del parser XSLT:
PHP Fatal error: Class 'XSLTProcessor' not found in 


La solución (instalar el paquete)
sudo apt-get install php5-xsl

Este paquete (php5-xsl) proporciona un módulo para XSL, el cual uso para hacer transformaciones de archivos XML en PHP. Si quieres mas información pueden consultar este buen articulo:

Using PHP 5's XSL extension to perform XSL Transformations

sábado, 10 de noviembre de 2012

file size exceeded the maximum (PHP / PHPMyAdmin)


Tengo un script sql que pesa 4 MB el cual quiero cargar en phpmyadmin. Pero por defecto el upload de archivos es de 2MB. Por ese motivo la aplicación muestra el siguiente mensaje cuando porfiadamente intento cargar el archivo.



No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. 

¿Como aumentar el tamaño de archivo soportado?

Para eso necesitamos editar el archivo php.ini.

sudo vi /etc/php5/apache2/php.ini
o sudo gedit /etc/php5/apache2/php.ini

Ubicamos la siguiente linea dentro del archivo
upload_max_filesize = 2M

Y la dejamos de la siguiente forma
upload_max_filesize = 5M

Tambien es necesario darle un vistazo a esta linea que en mi caso esta bien.
post_max_size = 8M

Luego de realizar los cambios, reiniciar Apache
sudo /etc/init.d/apache2 restart

El resultado es el siguiente:

Esto fue hecho en una maquina virtual con la distro Crunchbang


Relacionado
Donde esta php.ini en Linux

jueves, 18 de octubre de 2012

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/snmp.so'


Después de una actualización de Ubuntu, note que al ejecutar scripts PHP mostraba la siguiente advertencia:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/snmp.so' 

No se me hecho a perder ninguna aplicación por este motivo, pero el mensaje resultaba molesto. Esto porque no uso esa funcionalidad.

Hasta que sin querer encontré la solución un tanto obvia por lo demás


Como el nombre lo indica este paquete provee módulos para funciones snmp.


Fuentes
http://j.gs/1V0e


jueves, 30 de agosto de 2012

Instalando Zend Framework en Ubuntu

Para instalar Zend Framework en Ubuntu solo basta escribir la instrucción:
 sudo apt-get install zend-framework

Una vez instalado se puede crear un proyecto. Para eso te debes ubicar en la carpeta de proyectos Web en mi caso /var/www/ y escribir:
sudo zf create project zftest

Donde zftest es el nombre de mi proyecto.

Paso siguiente habilitamos el uso de layouts
sudo zf.sh enable layout

Zend queda instalado en la siguiente dirección:
/usr/share/php/libzend-framework-php

Y se debe copiar la carpeta Zend en la carpeta library de nuestro proyecto
/var/www/zftest/library

Para eso mejor crearemos un symbolic link
sudo ln -s /usr/share/php/libzend-framework-php/Zend Zend

Vamos a configurar nuestra aplicación en Apache
En la carpeta docs de nuestro proyecto se debe editar el archivo README.txt

sudo vim README.txt
:set nu

Copio las lineas que corresponden a la configuración para Apache en un nuevo archivo dentro de la carpeta de configuración de virtual host de Apache.
:16,30 write /etc/apache2/sites-available/zftest

Habilitamos nuestro sitio
sudo a2ensite zftest

Reiniciamos Apache
sudo /etc/init.d/apache2 reload

Agregamos nuestro sitio en el archivo hosts
127.0.1.1       zftest.local


Y después colocamos en el navegador zftest.local y este es el resultado


Fuentes
http://j.gs/1MO1

jueves, 3 de febrero de 2011

Tips PHP

Iré agregando mas Tips en este espacio:

Ip del Visitante
$Ip = $_SERVER['REMOTE_ADDR'];

Ip del Visitante si esta detras de un Proxy
$Ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

Isp del Visitante
$Isp = gethostbyaddr($_SERVER['REMOTE_ADDR']);


Fuentes:
http://ingeniuz.blogspot.com/2005/05/conocer-la-ip-del-visitante-usando-php.html

http://cl.php.net/gethostbyaddr




Libro, Aprende a Programar en PHP YA!

jueves, 27 de enero de 2011

Ofuscadores de Código PHP

Un Ofuscador de Código es una herramienta software que dificulta la lectura de tu código fuente por terceros no autorizados. Esto se aplica a lenguajes en los cuales el código esta a la vista como Javascript, PHP, Perl, entre otros.

Aca pondré una lista de los Ofuscadores que he encontrado o que a traves de Twitter o Facebook algunos de mis contactos me han recomendado.

Herramienta Online
http://www.hackingballz.com/herramientas/ofuscar-codigos.html

PHP Ofuscator
Ejecutable Windows
Ver resultado pruebas
http://www.raizlabs.com/downloads/PHPObfuscator_Setup.msi

Herramienta Online
http://jcarlosrendon.morelosplaza.com/herramientas/ofuscador.php

Ire actualizando esta lista en la medida que encuentre mas herramientas.



Libro, Aprende a Programar en PHP YA!

Probando PHP Ofuscator



En este post voy a probar una herramienta que se llama PHP Ofuscator (Ver Ofuscador de Código), la cual se puede descargar desde el siguiente link:

http://www.raizlabs.com/downloads/PHPObfuscator_Setup.msi

Tengo la siguiente clase PHP:


Al aplicar el ofuscador mostraré como queda y probaré si funciona ejecutando mi aplicación.
Este es el resultado:


Pero al momento de entrar nuevamente al sistema. Me aparece un error que era previsible. Al cambiar el nombre de los metodos un archivo externo como un Javascript no tiene como saber que el nombre del metodo ha cambiado.


Lo cual me muestra que estas herramientas son utiles para archivos solos. Pero no para sistemas que estan programados en capas. Aunque esta herramienta permite excluir variables, lo cual solucionaria el problema que acabo de mostrar. Pero si el sistema es extenso, colocar todas las variables, nombres de clase, de metodos, etc. Agregaría al desarrollo sus buenos días de esfuerzo.





Libro, Aprende a Programar en PHP YA!

Comments starting with '#' are deprecated



Este post tiene relación con un breve artículo: PHP desde la linea de comandos. Debido a que justamente intentando ejecutar un script php desde consola me aparecio el error:

PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0

El error basicamente me dice que comentar el archivo mcrypt.ini con # esta obsoleto. ¿Entonces cual es la forma correcta de comentar?

This's the one:

;configuration for php MCrypt module
extension=mcrypt.so






Libro, Aprende a Programar en PHP YA!

miércoles, 26 de enero de 2011

PHP desde la linea de comandos

PHP no solamente es un lenguaje de programación del lado del servidor utilizado para desarrollo Web. Si no que tambien, puede ser ejecutado como se ejecuta algún script Bash o Bat. Para esto es necesario instalar PHP CLI. Esto funciona tanto en Windows como en Linux, pero el ejemplo esta basado en este ultimo.

Si usas Linux, y quieres saber si esta instalado en tu maquina. En una ventana de comandos ejecuta:
php

Si no esta instalado la respuesta del sistema será:
El programa «php» no está instalado actualmente. Puede instalarlo escribiendo:
sudo apt-get install php5-cli


Super sencillo, por lo que ejecutas e instalas:
sudo apt-get install php5-cli

Crear un archivo para probar (En mi caso lo guarde como prueba.php)
<?php
echo "probando";
?>

Ejecutar archivo de prueba. En res.txt se guardará el resultado.
php prueba.php > res.txt



Artículo relacionado:
Comments starting with '#' are deprecated



Libro, Aprende a Programar en PHP YA!

viernes, 26 de noviembre de 2010

Deprecated : Assigning the return value of new by reference is deprecated





Encontre este error preparando un demo, de un sistema que habia hecho algún tiempo atras. Basicamente tiene que ver con código obsoleto y la solución consiste en editar el archivo que indica el error corregir y cambiar el codigo obsoleto por lo que corresponda.

Llendo a la solución. Editamos el archivo PEAR.php. Y encontramos lo siguiente en la linea 569:
$a = &new $ec($code, $mode, $options, $userinfo);

la asignacion &new esta obsoleta. Por lo que se tiene que reemplazar de la siguiente manera:
$a = new $ec($code, $mode, $options, $userinfo);

En algunos foros, algunas personas recomiendan modificar el archivo php.ini y no permitir que muestre los errores. A todas luces esa no es solución.


Documentación PHP:
http://j.gs/PDu

sábado, 29 de mayo de 2010

Como exportar HTML a MS Word con PHP

Un cliente me solicito que la aplicación PHP que le estoy desarrollando pueda exportar a MS Word. Es una solicitud poco usual, ya que es mas comun que las aplicaciones exporten a pdf o excel. Pero bueno. Inmediatamente fui a phpclasses.org (el nombre lo dice todo). Y encontré una clase para realizar esta tarea, se trata de HTML to DOC. La descarga que ofrece el sitio consta de dos archivos. La clase en si misma html_to_doc.inc.php y un archivo de prueba que instancia esta clase para crear el documento Word.

El archivo de prueba es como sigue(modifique la tercera linea pasandole mis parámetros ):



Por defecto el tercer parámetro de createDocFromURL que es download viene como false. Eso significa que si ejecutas el archivo tal como viene no vas a ver nada. Es necesario pasarle como parámetro true y al ejecutar la pagina de prueba podrás descargar el archivo Word.

Descarga de la clase mas un archivo de ejemplo:
Descargar

sábado, 31 de octubre de 2009

Instalar Apache y PHP en Ubuntu

Para instalar Apache desde una consola se debe escribir lo siguiente:

sudo aptitude install apache2

Para instalar PHP
sudo aptitude install php5

Aparecera la siguiente consulta a la cual le ingresamos "Y"
Necesito descargar 5013kB de ficheros. Después de desempaquetar se usarán 13,2MB.
¿Quiere continuar? [Y/n/?] Y

El proceso tarda algunos minutos.

Para asegurar que Apache este instalado basta colocar en el navegador la siguiente dirección:
http://localhost/ , tras lo cual debe aparecer una página con el mensaje: It Works!

Luego de eso voy a asegurar de que este correcta la instalación de PHP. Creando un archivo .php (info.php) y ejecutandolo desde el localhost. http://localhost/info.php

Para crear el archivo en el directorio /var/www/ se debe ejecutar lo siguiente:
sudo gedit info.php

El código del archivo contendrá lo siguiente:

phpinfo();
?>

este código me mostrará una página con la configuración de PHP.
Tras un primer intento, el navegador muestra el dialogo para descargar la página. Lo que me indica que algo no esta funcionando por lo que reiniciaré Apache:

sudo /etc/init.d/apache2 restart

Después de eso la configuración esta correcta.





Libro, Aprende a Programar en PHP YA!

martes, 21 de julio de 2009

Donde esta php.ini en Linux

Para saber donde esta el archivo php.ini en linux (ubuntu en mi caso). Se puede buscar con la siguiente instrucción:

sudo find / -name php.ini

el resultado que me aparece es:

/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini

¿y como se cual es el correcto? (me tinca donde esta el apache) Una forma de averiguarlo es realizar los cambios que necesito en la carpeta de apache.

Hice los un cambio en la configuracion, reinicie Apache y efectivamente la ruta correcta es:
/etc/php5/apache2/php.ini

Para reiniciar Apache en ubuntu
sudo /etc/init.d/apache2 restart









domingo, 8 de marzo de 2009

Cannot send session cache limiter

Tengo una archivo php que hace las veces de menu. Por lo que lo llamo desde las páginas de la siguiente forma:

include("menu.php");
?>

dentro del menu muestra el e-mail de la persona. Este dato previamente lo he guardado en una sesión:

session_start();
$usuario = $_SESSION["EMAIL_USU"];
echo "Bienvenido :".$usuario."";

y me muestra el siguiente error:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/elforoc/public_html/mapa/configurar.php:8) in /home/elforoc/public_html/mapa/menu.php on line 2

En algunos foros leo que se trata de espacios que hay despues de los signos

Solucione el problema llevando las siguientes lineas al archivo que me estaba dando error:
session_start();
$usuario = $_SESSION["EMAIL_USU"];
?>

luego en el archivo menu.php hice mención de la variable.




Libro, Aprende a Programar en PHP YA!

viernes, 27 de febrero de 2009

call to undefined method stdclass

Me encontre con este error desarrollando una aplicación PHP / MySQL / JQuery. El codigo que estaba dando error era el siguiente:


$usuarios->EMAIL_USU=$EMAIL_USU;
$usuarios->NOMBRE_USU=$NOMBRE_USU;
$usuarios->COMUNA_COM=$COMUNA_COM;
$usuarios->PASSWORD_USU=$PASSWORD_USU;
$usuarios->Save();
echo json_encode("Registro guardado!!!");

el error era porque no estaba instanciando la clase:

$cusuarios = new usuarios();
$cusuarios->EMAIL_USU=$EMAIL_USU;
$cusuarios->NOMBRE_USU=$NOMBRE_USU;
$cusuarios->COMUNA_COM=$COMUNA_COM;
$cusuarios->PASSWORD_USU=$PASSWORD_USU;
$cusuarios->Save();
echo json_encode("Registro guardado!!!");




Libro, Aprende a Programar en PHP YA!