Jul
29
2009
0

Adodb PHP simple access to MySql – Oracle – Interbase

PHP’s database access functions are not standardised. This creates a need for a database
class library to hide the differences between the different databases (encapsulate the
differences) so we can easily switch databases.

Requires PHP4. Based on the best ideas of PEAR, phpdb and Microsoft’s ADO.

MySQL Usage:

include('adodb.inc.php');
ADOLoadCode('mysql');
$conn = &ADONewConnection();
$conn->PConnect('localhost','userid','password','database');
$rs = $conn->Execute('select * from table');
rs2html($rs); /* recordset to html table */

(more…)

Written by doutdex in: Uncategorized | Tags: ,
Jul
12
2009
1

Timestamp en php y mysql

Es algo común tener que estar guardando fechas en la base de datos, sin embargo, es recomendable definir cual será la fuente para la base del tiempo, es decir, puede que pase que existen dos servidores el primero que mantiene a la aplicación y el segundo que tiene a la base de datos y podría pasar en el caso que no estén sincronizados por un servidor npt que el tiempo difiera y en el caso más pesimista hasta que en una haya cambiado la zona horaria y en el otro no.
Esto pasa al momento de obtener el tiempo para guardarlo en la base de datos, en el caso que obtengamos el tiempo usando una función en PHP estaremos obteniendo el tiempo del servidor que mantiene a la aplicación PHP, en el caso que dentro del QUERY la función NOW() esta corresponde a MYSQL y en este caso se retornala fecha y tiempo del servidor de la base de datos.

Lo correcto es definir al sistema u aplicación bajo uno de los dos para el efecto de llevar el tiempo y zona correcta.

CASO PHP:

Al crear dentro de una tabla MYSQL un campo del tipo DATETIME
Para poder insertar la fecha y tiempo en el formato (por defecto) correcto de MySQL usando PHP se hace con

Guardar en MySQL usando función de tiempo PHP
< ?

 date('Y-m-d H:i:s', time());

?>

Recuperar fecha MySQL en una variable PHP

Se debe usar la función srttotime

 $phpdate = strtotime( $fechaFromMySQL );

CASO BD:
En este caso dentro del insert en el lugar del valor del campo datetime se utiliza la funcion now(), favor considerar que el siguiente ejemplo tiene una tabla de nombre “usuario” y que tiene 3 campos del varchar los dos primeros asociados al nombre y apellido mas el tercer campo de timestamp al cual se le asocia el valor de la funcion NOW() que devuelve la hora local que tiene el servidor MYSQL del server donde se ejecuta la query.

ejm:

 INSERT INTO usuario VALUES ( 'juan','perez',now());

El ejemplo anterior no se debe usar por ahorrarse un par de lineas al realizar aplicaciones robustas dado que los valores se asocian segun el orden determinado en el show table de mysql, sirve para un test rapido cuando uno esta conectado a la consola, debido a esto lo correcto es insertar los valores asociados a una tabla indicando el nombre de cada uno de los campos estableciendo el orden de los valores a insertarse en el mismo query a continuacion de la misma sentencia sql.

El ejemplo real de uso es:

INSERT INTO usuario(nombre,apellidos, fecha_actual) VALUES ('Juan','perez',NOW());


select NOW();

Referencias:

bigroom

http://en.wikipedia.org/wiki/Insert_(SQL)

Written by doutdex in: Uncategorized | Tags: , , ,
Mar
01
2009
0

Error en sentencia PHP Warning: eregi() REG_BADB

Estaba implementando un formulario con validación y tenía que validar un número en un rango, utilicé la función eregi()

y en el error log apareció:

PHP Warning: eregi() [function.eregi]: REG_BADBR in line …….

Esto pasó porque el cuantificador (número) tiene que estar dentro del rango entre 0 y 255 enteros sin signo, porque parece que permite hasta 8 bits en binario y en decimal equivale al rango {0,255}

La solución es utilizar otra función como pregmatch.

Written by doutdex in: PHP | Tags:
Jan
19
2009
0

Como crear servidor y cliente web service SOAP en PHP NuSOAP con archivo adjunto

ntroducción a SOAP:

“SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. Este protocolo deriva de un protocolo creado por David Winer en 1998, llamado XML-RPC. SOAP fue creado por Microsoft, IBM y otros y está actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los servicios Web.” by Wikipedia

Para PHP existen algunas librerías para SOAP, actualmente una de las más utilizadas es NuSOAP porque es más madura con respecto al resto pero sólo soporta SOAP 1.1, sin embargo, existen otras librerías somo:

– Extensión SOAP para PHP5  (reciente agregada de dentro de php5)

– Pear SOAP (PHP5 y PHP4)

– WSO2 (reciente con buen futuro)

– NuSOAP (PHP5 y PHP4) ya no está muy mantenida porque cumple su propósito específicamente para SOAP 1.1, no soporta 1.2, pero actualmente la mayoría de los servicios están en SOAP 1.1, también se debe considerar que las nuevas librerías no soportan a la versión 1.1 sino desde 1.2 en adelante, por lo que es conveniente realizar una revisión acerca de cuales serán los servicios a los cuels me voy a conectar o a qué tipos de cliente voy a servir.

(more…)

Written by doutdex in: PHP | Tags: ,
Oct
07
2008
0

Como leer (parsear) archivos XML iso-8859-1 en PHP con SimpleXMLElement UTF-8

[lang_en]Bueno aquí luego de estar medio día tratando de parsear un archivo XML con SimpleXMLElement, finalmente:

Tengo un Xml con iso-8859-1, entonces la idea es leer el archivo con PHP, parsearlo y proceder a imprimir algunos datos en pantalla utilizando el arreglo generado del arbol Xml.

El ejemplo de XML:

< ?xml version="1.0" encoding="iso-8859-1"?>
<graficos>
<grafico id="idgrafo1">
    <titulo>Título Gráfico 1</titulo>
    <subtitulo>Subtítulo grafo 1</subtitulo>
    <fuente>Fuente grafo 1</fuente>
    <datos>
        <dato>
            <x>110</x>
            <y>111</y>
        </dato>
        <dato>
            <x>120</x>
            <y>100</y>
        </dato>
    </datos>
</grafico>
 
<grafico id="idgrafo2">
    <titulo>Título Gráfico 2</titulo>
    <subtitulo>Subtítulo grafo 2</subtitulo>
    <fuente>Fuente grafo 2</fuente>
    <datos>
        <dato>
            <x>210</x>
            <y>211</y>
        </dato>
        <dato>
            <x>220</x>
            <y>200</y>
        </dato>
    </datos>
</grafico>
</graficos>
[/lang_en]

(more…)

Written by doutdex in: PHP,xml | Tags: ,
Oct
01
2008
0

Expresiones regulares con PHP

Bueno luego de estar buscando algunas expresiones útiles aquí les dejo algunas funciones que utilizo para validar algunos datos que provienen de formularios:

   
 /**
    * Función que valida un campo de tipo email
    * var: campo de texto a validar
    * Devuelve FALSE no cumple y TRUE si cumple
    */
 
   function valida_email($var){
      if(!ereg("([A-Za-z0-9_.-]+@[A-Za-z0-9_.-]+\.[A-Za-z0-9_-]+)",$var)) {
        return false;
      }else{
        return true;
      }
    }

(more…)

Written by doutdex in: PHP | Tags: ,
May
15
2008
0

Función para Importar archivo (parser) a (from) CSV a variable PHP

Este código fue extraído de otro blog que ha sido probado y funciona correctamente.

“This is a snippet of code that I had posted on another of my websites and in doing some cleanup it really fits better here.
(more…)

Written by doutdex in: PHP | Tags: ,
Apr
29
2008
0

Funciones PHP

uniqid(pre,bol)

Genera un identificador único basado en la hora actual del sistema expresada en microsegundos con una longitud de 13 caracteres.

(more…)

Written by doutdex in: PHP | Tags: ,
Apr
29
2008
3

Cómo Enviar un email de texto o html con (usando) php sendmail

Para enviar un email usando php, se puede utilizar sendmail que debe estar configurado en el archivo de configuración php.ini.

Configuración para usar mail()

Aignar el puerto SMTP y establecer un email sendmail_from

Descomentar

SMTP = localhost
 
smtp_port = 25
 
sendmail_from = admin@miemail.com

A continuación, describo los parámetros de la función de php mail para enviarlo:

mail($destinatario, $titulo, $mensaje,$cabecera)

[/lang_en] (more…)

Written by doutdex in: PHP | Tags: ,
Mar
23
2008
0

Comparación (Comparing) PHP and Perl

PHP Perl
file.php file.cgi
scripts in <?php..?> whole file is script
Puede incluir raw HTML must print all output
NO es necesario indicar el interprete Primera línea ruta interprete es #!/var/bin/perl
(more…)
Written by doutdex in: Perl,PHP | Tags: , , ,
Dec
05
2007
0

Guías de referencia (cheat sheets) lenguajes de programación (desarrollo)

Una recopilación con cheet sheets para varios lenguajes (php,java,asp,html,etc), nunca esta mal tenerlas a mano.

Lista de cheat Sheets

Written by doutdex in: Cheatsheets | Tags: , , , ,
Oct
29
2007
0

Conexión a mysql desde PHP, buscar

Aquí indico como hacer una conexión a mysql (BD) usando PHP

Primero debemos configurar la Base de datos, es decir, tener creada una BD (miBD) con un usuario(miUSER) y contraseña (miPASS) con permisos para leer y escribir dentro de ella, sabiendo esto, y alguna tabla conocida previamente creada ejm: ‘documents’, se utilizarán 2 archivos:

1 _bd.php : Contiene los datos de conexión a la BD y funciones que buscan, eliminan y modifican en la BD.

2 prueba.php : Éste archivo llama a la función de _bd.php y despliega en pantalla el resultado de la búsqueda BD.

(more…)

Written by doutdex in: Base de Datos,Mysql | Tags: ,
Oct
22
2007
2

Upload file (cargar archivo) PHP

Validaciones en upload.php

&lt; ?php
//Limita el tamaño máximo del archivo que se sube a 10M, en código upload.php
 
//to lowerCase
//Para dejar todo en minúsculas
$tipo_archivo= strtolower($tipo_archivo);
 
  //Valida para saber si el archivo esta en el directorio temporal (directorio temporal revisa php.ini)
   if (!($HTTP_POST_FILES['doc_file']['tmp_name']!='')){
 
   echo 'without file'; //cuando se carga mal un archivo
   exit();
}
 
 //validación para verificar la extensión del archivo
 //TODO
 //validación para limitar el tamaño del archivo
 if (($tamano_archivo &gt; $filesize_limit_upload)) {
  echo "The file size is upper the limit, the max size allowed is $filesize_limit_upload bytes";
  exit();
 }
 
 if (move_uploaded_file($HTTP_POST_FILES['doc_file']['tmp_name'], $dir_base_uploadDoc.$doc_filename)){
 
 }else{
  print("Some error can´t complete your requirement");
  exit();
 }
 
?&gt;

Problems while uploading the document (problemas al tratar de cargar el archivo):

Warning: fread(): supplied argument is not a valid stream resource in

Warning: fclose(): supplied argument is not a valid stream resource in

Chech (Revisar) php.ini

upload_max_filesize = 2M;
post_max_size = 8M;

También revisar las siguientes variables (Also check if):

(post_max_size > upload_max_filesize).

Written by doutdex in: PHP | Tags: , ,
Oct
22
2007
0

Configuración de php.ini (seguro)

Pasos para seguridad al utilizar PHP en un servidor que está en internet (sitio público).

1. Deshabilitar las URL remotas para funciones que manejen archivos:
1. allow_url_fopen = Off
2. Register Globals
1. register_globals = Off (more…)

Written by doutdex in: PHP | Tags: