Intro al PHP + Postgresql
PostgreSQL
Pida a su administrador una cuenta y una base de datos en algun servidor PostgreSQL (legba, inter3, etc.) Cuando tenga su cuenta y la base de datos, necesitará crear las tablas, una forma de hacerlo es usando la interface que posee el postgreSQL usando SQL, el comando es /usr/local/pgsql/bin/psql.
Un ejemplo de una sentencia SQL para generar una tabla:
CREATE TABLE "test" ("campo1" int4, "campo2" varchar(10), "clave1" int4 PRIMARY KEY);
Otra forma de hacerlo es usando el ODBC con cualquier programa que trabaje con bases de datos, por ejemplo Access, PowerBuilder, etc. Para poder modificar los datos interactivamente desde el Access es necesario que la tabla tenga definida una clave primaria.
El driver de ODBC para WIN95, esta en ftp://linux0/pub/odbc
Para mas información sobre SQL, aqui hay un excelente tutorial.
PHP
INTRODUCCION
PHP es lenguaje de scripting que permite generar paginas HTML.
A diferencia de las paginas estaticas de HTML que son utiles para presentar documentos estaticos,es decir que no son modificables, PHP permite generar un pagina HTML en forma dinamica, por ejemplo como resultado de una consulta a una base de datos., o generar graficos, o cualquier otra cosa que necesite ser generada en base ciertos datos que pueden cambiar en el tiempo.
Para lograr este objetivo tambien se pueden usar otros metodos como scripts CGI, applets, ASP o otros metodos.
Una de las grandes limitaciones del HTML es la forma en que trabaja. En particular, si debe presentar al usuario un grupo de opciones para que este elija, ud. debe conocer esas opciones de antemano al momento del diseño del form. Esto lleva a mucho esfuerzo de mantenimiento cada vez que el formulario debe ser actualizado con nuevas opciones.
De nuevo, para ello existen varios metodos, por ejemplo el uso de JavaScript, o paginas dinamicas.
Con PHP es facil generar un formulario con las opciones tomadas desde alguna base de datos, de forma que el programador no tiene que modificar su codigo HTML, ya que este es generado automaticamente mediante un simple script escrito en PHP, que accede a esa base de datos.
Que puedo hacer con PHP?
Por ejemplo:
Algunas ventajas de usar PHP
El codigo que interpreta o genera paginas se puede incluir en el mismo archivo como dentro de un tag HTML. Esto decrementa el costo de mantenimiento en sitios muy dinamicos
Otra ventaja es que es muy facil integrar el acceso a bases de datos en paginas HTML, como para presentar un form que se modifique a si mismo en base a su seleccion previa, o presente una lista de resultados.
Tambien hay funciones para mostrar estadiosticas del server, como numero de veces que la pagina ha sido vista en el ultimo año o las ultimas 24 horas.
El lenguaje
Es muy parecido a la sintaxis y gramatica de C, pero menos complejo, y posee funciones semejantes a Perl.
Incluye operadores de control de flujo como if-then y while.
Incluye arreglos asociativos o hashes como Perl
Se pueden definir funciones propias.
Se pueden escribir expresiones logicas y matematicas.
Acceso a base de datos
Nos permite combinar la potencia de los datos organizados logicamente y almacenados en forma persistente con la facilidad de uso de un navegador.
PHP provee de funciones para abrir, y cerrar conexiones a la base de datos, para enviar sentencias SQL, y recibir el resultado de la consulta.
Entre las muchas bases de datos que se pueden usar tenemos: Postgres95, MySQL, Sybase, Oracle, Informix.
Mas Informacion:
Manual en linea de PHP (www.php.net/manual/)
Ejemplo de conexion a Postgres
<? $conn = pg_connect("host=inter3 port=5432 password=secreto user=homero dbname=base");
if (pg_ErrorMessage($conn)) { echo "<p><b>Ocurrio un error conectando a la base de datos: .</b></p>"; exit; }
?>
Ejemplo de como incluir un archivo en una pagina.
<? include "header.html" ?>
Procesando un form
<form method=post name="sample" action="procesar.php3">
<input type="text" name="field">
</form>
Codigo en procesar.php3
<? if ($field == "Otros") { /* Las variables del formulario*/
... procesamiento... /* son automaticamente creadas en PHP*/ }
?>
2. Ejemplo lectura php.
Ejemplo de consulta a una base de datos Postgres:
<?
$resultado=pg_exec("SELECT * FROM test");
if (!$resultado) { echo "<b>Error de busqueda</b>"; exit; }
$filas=pg_numrows($resultado); if ($filas==0) { echo "No se encontro ningun registro\n"; exit; } else {
echo "<ul>";
for($cont=0;$cont<$filas;$cont++) { $campo1=pg_result($result,$cont,0);
$campo2=pg_result($resultado,$cont,1);
echo " <li>$campo1 $campo2\n";} }
pg_FreeResult($resultado);
?>
</ul>
3. Ejemplo actualizacion de datos.
<? $resultado=pg_exec("UPDATE test SET campo1=1, campo2='A' WHERE clave1=1"); ?>
4. detalles:
restringir el accesso con password
Para restingir el acceso al directorio donde se encuentra la pagina es necesario crear un archivo llamado .htaccess, en el directorio de la pagina a restringir que tiene el siguiente formato:
|
AuthUserFile /tmp/passwd.txt AuthGroupFile /dev/null AuthName "Test" AuthType Basic Require user usuario1 usuario2 |
Archivo que contiene los nombres y contraseñas de los usuarios. Archivo donde se definen grupos de usuarios. Nombre de identificación del dominio de la autorización. Tipo de autorización. Usuarios o grupos de usuarios permitidos. |
Para crear el archivo que contenga los nombres de usuario y contraseñas debe usar el comando htpasswd.
Ejemplo:
/usr/local/apache/bin/htpasswd passwd.txt usuario1
Este ejemplo agrega el usuario "usuario1" al archivo "passwd.txt" junto con la contraseña encriptada.
Para mas información visite http://www.apache.org/
El php+postgres esta instalado en legba y en inter3
Otros ejemplos locales: