Académique Documents
Professionnel Documents
Culture Documents
PHP es un lenguaje creado por varias personas. Inicialmente fue desarrollado en 1994 por Rasmus Lerdorf
como un CGI escrito en C para poder interpretacin algunos comandos que no soportaban los lenguajes
existentes. Originalmente al PHP se le denomino Personal Home Page Tools (Hoy en da Hypertext Pre-processor)
y adquiri algo de xito cuando otras personas pidieron a Rasmus les permitiera usar sus programas en sus
propias pginas. Esto motivo a su diseador incluir una serie de comandos para procesar formularios al que le dio
el nombre de FI (Form Interpreter), en conjunto, estas dos herramientas se denominaron PHP/FI.
Los valores numericos se pueden especificar usando una de las siguientes sintaxis:
Operadores de asignacin
= Asigna a la parte derecha el valor izquierdo
+= Realiza la suma de la derecha con la izquierda y la asigna a la derecha
-= Realiza la resta de la derecha con la izquierda y la asigna a la derecha
*= Realiza la multiplicacin de la derecha con la izquierda y la asigna a la derecha
/= Realiza la divisin de la derecha con la izquierda y la asigna a la derecha
%= Se obtiene el resto y se asigna
.= Concatena el valor de la izquierda con la derecha y lo asigna a la derecha
Operadores lgicos
! Operador NO o negacin. Si era true pasa a false y viceversa
and Operador Y, si ambos son verdaderos vale verdadero
or Operador O, vale verdadero si alguno de los dos es verdadero
xor Verdadero si alguno de los dos es true pero nunca ambos
&& True si ambos lo son
|| True si alguno lo es
Operadores condicionales
== Comprueba si dos nmeros son iguales
!= Comprueba si dos nmeros son distintos
> Mayor que, devuelve true en caso afirmativo
< Menor que, devuelve true en caso afirmativo
>= Mayor o igual
<= Menor o igual
En el uso de cadenas si est encerrada entre comillas dobles ("), las variables que estn dentro de la
cadena sern expandidas (mostradas), el carcter de barra invertida o slash ("\") se puede usar para especificar
caracteres especiales:
Secuencia Significado
\n Nueva lnea
\r Retorno de carro
\t Tabulacin horizontal
\\ Barra invertida
\$ Signo del dlar
\" Comillas dobles
Otra forma de delimitar una cadena de caracteres es usando comilla simple (). Pero los nicos caracteres
especiales que sern comprendidos son \\ y \, y las variables no se expandirn. Otra forma de delimitar cadenas es
usar documentos incrustados (<<<). Se debe proporcionar un identificador despus de <<<, y seguidamente el
texto que contendr el documento incrustado y se cierra al escribir el mismo identificador.
Ejemplo de cadenas
<?php
$str = "Hola"; /* Asignado de cadena. */
$str = $str . " como estan"; /* Aadiendo a la cadena. */
$str .= " todos ustedes.\n"; /* Otra forma de aadir */
Cuando una cadena se evala como un valor numrico doble, si contiene cualquiera de los caracteres .,
e, o E. En caso contrario, se evaluar como un entero. El valor viene dado por la porcin inicial de la cadena. Si
la cadena comienza con datos de valor numrico, este ser el valor usado. En caso contrario, el valor ser 0 (cero).
Los datos numricos vlidos son un signo opcional, seguido por uno o ms dgitos (que opcionalmente contengan
un punto decimal), seguidos por un exponente opcional. El exponente es una e o una E seguidos por uno o ms
dgitos. Cuando la primera expresin es una cadena, el tipo de la variable depender de la segunda expresin.
Veamos algunos ejemplos:
Los arreglos actualmente actan tanto como tablas hash (arrays asociativos) como arrays indexados
(vectores). PHP soporta tanto arrays escalares como asociativos. Se puede crear un arreglo usando las funciones
list() o array(), es posible asignar el valor de cada elemento del array de manera explcita.
$a[0] = "abc";
$a[1] = "def";
Se puede crear un arreglo simplemente aadiendole valores. Cuando se asigna un valor a un arreglo
usando corchetes vacos, el valor se aadir al final del arreglo.
Los arreglos multidimensionales son bastante simples, para cada dimensin del arreglo se puede aadir
otro valor [clave] al final: $a[1][0] = $f; # bidimensional; $a["x"][4]["z"][0] = $f; # tetradimensional; no es posible
referirse a arreglos multidimensionales directamente dentro de cadenas, de ser necesario el operador de
concatenacin de cadenas (.) se puede usar para solucionar el problema o encerrando la referencia al arreglo
entre llaves (echo "a[1][0] = {$a[1][0]}";). Se pueden llenar arreglos multidimensionales de varias formas:
Tradicional:
$a = array( "manzana" => array("color" => "rojo", "sabor" => "dulce", "forma" => "redondeada"),
"naranja" => array("color" => "naranja", "sabor" => "cido", "forma" => "redondeada"),
"pltano" => array("color" => "amarillo", "sabor" => "dulce", "forma" => "aplatanada"));
echo $a["manzana"]["sabor"]; # devolver "dulce"
Para inicializar un objeto, se usa la sentencia new para instanciar el objeto a una variable, los objetos en
PHP se declaran y definen como en Java.
PHP no requiere la declaracin explcita del tipo en la declaracin de variables; el tipo de una variable se
determina por el contexto en el que se usa esa variable (type juggling). Esto quiere decir que si se asigna un valor
de cadena a la variable esta se convierte en una cadena. Si despus se asigna un valor entero a la variable, se
convierte en una variable entera.
El forzado de tipos en PHP funciona como en Java: el nombre del tipo deseado se escribe entre
parntesis antes de la variable a la que se pretende forzar.
Cuando se fuerza el cambio de un escalar o una variable de cadena a un array, la variable se convertir en
el primer elemento del array: $var = ciao; $arr = (array) $var; echo $arr[0]; // produce la salida ciao . Cuando se
fuerza el tipo de una variable escalar o de una cadena a un objeto, la variable se convertir en un atributo del
objeto; el nombre del atributo ser scalar por ejemplo:
$var = Hola; $obj = (object) $var; echo $obj->scalar; // produce la salida Hola
Estructuras de control:
Se pueden agrupar varias sentencias en un grupo de sentencias formando un conjunto de las mismas
mediante el uso de { }. Ademas Soporta la clausula else y el anidamiento de sentas if mediante la clausula elseif:
Sintaxis Alternativa de Estructuras de Control.- PHP ofrece una sintaxis altenativa para alguna de sus
estructuras de control (if, while, for y switch). La forma bsica de la sintaxis alternativa cambia { por : y } por endif;,
endwhile;, endfor;, or endswitch;, respectivamente.
if ($a == 5):
echo "a es igual a 5";
echo "por lo que 5 esta en a";
elseif ($a == 6):
echo "a es igual a 6";
echo "entonces a contiene un 6";
else:
echo "a no contiene 5 ni 6";
endif;
Los ciclos while, do..while y for se comportan como lo hacen las mismas estructuras en Java o C, su
sintaxis es la misma y siguen las mismas reglas de funcionamiento.
PHP incluye una construccin foreach, lo que da un modo fcil de iterar sobre arreglos. Hay dos sintaxis;
la segunda es una extensin menor, pero til de la primera:
Break provoca una salida de las estructuras de control iterante (bucles) actuales (for, do..while, while, o
switch). Accepta un parmetro opcional, el cual determina de cuantas estructuras de control debe salir.
$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "en 5 <br> \n";
break 1; /* sale del switch. */
case 10:
echo "en 10; sale <br> \n";
break 2; /* sale del switch y del while. */
default:
break; /* sale del switch */
}
}
La sentencia switch es similar a una serie de sentencias if en la misma expresin. En ocasiones se quiere
comparar la misma variable (o expresin) con muchos valores diferentes, y ejecutar una parte de cdigo distinta
dependiendo de a qu valor es igual. Para ello sirve la sentencia switch. Hagamos un comparativo:
La sentencia switch se ejecuta cuando se encuentra una sentencia case con un valor que coincide con el
valor de la expresin switch, las sentencias continan ejecutandose hasta el final del bloque switch, o la primera
vez que vea una sentencia break. Si no se escribe una sentencia break al final de una lista de sentencias case, se
seguiran ejecutando las sentencias del siguiente case. La sintaxis alternativa para las estructuras de control est
tambin soportada con switch, y se cierra con endswitch;.
La sentencia require() se sustituye a s misma con el archivo especificado, de igual manera que la directiva
#include de C. La sentencia include() incluye y evala el archivo especificado. Tanto para require() como para
include() se puede especificar el fichero que se va a incluir usando una URL en vez de un fichero local. Cuando un
archivo se incluye con include() o se requiere con require(), el intrprete sale del modo PHP y entra en modo HTML
al principio del archivo referenciado, y vuelve de nuevo al modo PHP al final. Cualquier cdigo dentro del archivo
referenciado que deba ser ejecutado como cdigo PHP debe ser encerrado dentro de etiquetas vlidas de
comienzo y fin de PHP.
require ("http://10.0.0.30/~ipweb/archivo.php?var1=1&var2=2");
require ("archivo.php?var1=1&var2=2");
La instruccin echo permite la salida de mensajes hacia pantalla o al browser, se debe escribir el mensaje
entre comillas, acepta el uso del punto para concatenar cadenas, es posible desplegar valores nicamente
invocando a la variable en el lugar donde ser visualizada.
Este mecanismo permite embeber cdigo PHP dentro de HTML, todo lo que est fuera de las etiquetas
PHP se deja tal como est, mientras que el resto se interpreta como cdigo. Todo cdigo o programa en PHP debe
estar delimitado en alguna de las siguientes formas:
PHP es un lenguaje open source interpretado de alto nivel embebido en pginas HTML y ejecutado en el
servidor. Pero com funciona una aplicacin php en un servidor?. El navegador del cliente solicita el documento
PHP. Llega la solicitud del servidor y el servidor localiza el documento, lanza el intrprete de PHP y ejecuta todo su
cdigo. Una vez ejecutado el cdigo se genera el resultado en HTML y lo devuelve al servidor para que lo
transfiera al cliente. El servidor transfiere el resultado en HTML y es mostrado en el navegador del cliente.
A diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta en el servidor, con lo
que se permite acceder mas rpidamente a los recursos que tenga el servidor. Al ser PHP un lenguaje que se
ejecuta en el servidor no es necesario que el navegador lo soporte, es independiente del navegador, nicamente el
servidor que aloja las paginas debe soportar php. Veamos un ejemplo de un programa en php.
Una forma mas corta puede ser: <?php echo "Hola Mundo"; ?>
La informacin puede suministrarse a las funciones mediante la lista de parmetros, una lista de variables
y/o constantes separadas por comas. PHP soporta pasar parmetros por valor, por referencia, y por defecto. Las
funcines, de forma ya implcita, reciben el paso de parmetros por valor (si cambian el valor del argumento dentro
de la funcin, no se ve modificado fuera de ella). Si lo que se quiere es permitir a una funcin modificar sus
parmetros, estos se deben pasar por referencia. Si quiere que un parmetro de una funcin siempre se pase por
referencia, se debe anteponer un ampersand (&) al nombre del parmetro en la definicin de la funcin:
function Agregar(&$cadena) {
$cadena .= Mundo;
}
$cad = Hola ;
Agregar($cad);
echo $cad; // Da como resultado Hola Mundo
Si se busca pasar una variable por referencia a una funcin que no declara por defecto la recepcin del
parmetro por referencia, se debe anteponer el ampersand al parmetro en la llamada a la funcin:
function Agregar($cadena) {
$cadena .= Mundo;
}
$cad = Hola ;
Agregar($cad);
echo Llamada sin referencia -->$cad <br>; // Imprime Hola
Agregar(&$cad);
echo Llamada con referencia -->$cad; // Imprime Hola Mundo
Una funcin puede definir valores por defecto para los parmetros escalares estilo C++:
La salida del fragmento anterior es: Hacer una taza de cappucino. Hacer una taza de espresso.. El valor
por defecto tiene que ser una expresin constante, y no una variable o miembro de una clase. Cabe destacar que
cuando se usan parmetros por defecto, estos tienen que estar a la derecha de cualquier parmetro sin valor por
defecto. PHP soporta las listas de longitud variable de parmetros en las funciones definidas por el usuario, y las
listas de parmetros pueden ser escritas en la llamada a la funcin y se comportarn de la manera esperada. Los
valores se retornan usando la instruccin opcional return. Puede devolverse cualquier tipo de valor, incluyendo
listas y objetos.
function cuadrado($num) {
return $num * $num;
}
echo El cuadrado de 4 es .cuadrado(4); // Imprime 16.
PHP soporta el concepto de funciones variable. Significa que si una variable tiene parntesis aadidos al
final, PHP buscar una funcin con el mismo nombre que la variable e intentar ejecutarla.
Una clase es una coleccin de variables y de funciones que acceden a esas variables. Una clase se define
con la sintaxis:
<?php
class Compra {
var $pieza; // piezas en el carro de compras
// Aadir $num artculos de tipo $arttipo al carro
function agrega_pieza ($arttipo, $num) {
$this->pieza[$arttipo] += $num;
}
// Sacar $num artculos del tipo $artipo del carro
function quita_pieza ($arttipo, $num) {
if ($this->pieza[$arttipo] > $num) {
$this->pieza[$arttipo] -= $num;
return true;
} else {
return false;
}
}
}
?>
Se define una clase llamada Compra que tiene un arreglo asociativo de artculos en el carro y dos
funciones para sumar o restar piezas al carro Las clases son tipos, es decir, son plantillas para variables. Para
crear una variable de este tipo se debe usar el operador new. Por ejemplo: $Compra = new Compra;. Este ejemplo
crea un objeto $Compra de clase Compra.
Para agregar datos se usa $Compra->agrega_pieza("10", 1);, la funcin de ese objeto se llama para aadir
una pieza del artculo nmero 10 al carro. Las Clases pueden ser extensiones de otras clases. Las clases
extendidas o derivadas tienen todas las variables y funciones de la clase base y lo que se les aada al extender la
definicin. La herencia mltiple no est soportada.
Se define una clase Cliente que tiene todas las variables y funciones de Compra. Aade la variable
$cliente y la funcin asigna_cliente(). Una variable de este tipo se crea de la forma habitual y, una vez hecho, se
puede acceder a $cliente y a las funciones normales de Compra:
<html><head><title>despliega.php</title></head>
<body>
<?
echo "Variable \$nombre: $nombre <br>\n";
echo "Variable \$apellidos: $apellidos <br>\n"
?>
</body>
</html>
PHP tambin maneja arreglos (unidimensionales) como variables de formularios. Se pueden agrupar
variables relacionadas, o usar esta caracterstica para recuperar valores de un campo select input mltiple:
<?PHP
$perso = $_REQUEST[personal];
$aut = $_REQUEST[auto];
foreach($perso as $per)
echo $per<BR>;
foreach($aut as $au)
echo $au<BR>;
?>
$Cotador++;
SetCookie ("Contador", $Contador, time()+3600);
SetCookie ("Compra[$Contador]", $pieza, time()+3600);
PHP hace accesibles las variables de entorno automticamente tratndolas como variables normales.
Puesto que la informacin que mediante Get, Post y Cookie llega a PHP crea automticamente variables de PHP,
algunas veces es mejor leer variables del entorno explcitamente para asegurarse de que se est trabajando con
los datos correctos. La funcin getenv() se puede usar para ello. Tambin se puede asignar un valor a una variable
de entorno con la funcin putenv().
PHP no altera los nombres de las variables cuando se pasan a un script. Pero no se debe olvidar que no
acepta el punto como parte de un nombre de variable. Por esta razn PHP reemplazar automticamente cualquier
punto en los nombres de variables de entrada por guiones bajos (subrayados).
<html><head><title>Gustos</title></head>
<body>
<form action=gustos.php method=post>
<p>Nombre: <input type=text name=nombre size=30><br>
Sexo: Hombre<input type=radio value=hombre checked name=sexo>
Mujer <input type=radio name=sexo value=mujer><br>
Deporte favorito:
<select size=1 name=deporte>
<option value=Futbol>Futbol</option>
<?php
if(isset($_POST['enviar'])){
echo Hola .$_POST['nombre'].<br>;
echo Tu sexo es: .$_POST['sexo'].<br>;
echo Te gusta el: .$_POST['deporte'].<br>;
if(!empty($_POST['comida']))
echo Te gusta la comida mexicana <br>;
else
echo No te gusta la comida mexicana <br>;
}
?>
int fopen (string filename, string mode [, int use_include_path]).- Abre un archivo donde si filename inicia
con http://, se abre una conexion HTTP 1.0 hacia el servidor y regresa un apuntador al archivo al comienzo del
texto del archivo. Siempre se debe incluir una barra final. Si filename empieza con ftp:// se abre una conexin ftp
hacia el servidor y se regresa un aputandor al archivo requerido. Si filename no inicia de ninguna de esas 2 formas,
el archivo se abre de los archivos que se encuentran en el servidor. Las formas (mode) de apertura de archivos
puede ser cualquiera de las siguientes:
int fwrite (int fp, string string [, int length]).- Escribe el contenido de string al archivo apuntado por fp, length
permite indicar cuantos n-1 byte sern escritos si string tiene mas que eso, de otro modo escribir todo lo
contenido en string.
string fread (int fp, int length).- Lee hasta length bytes del apuntador del archivo referenciado por fp. La
lectura acaba cuando length bytes se han leido o se alcansa EOF (final de archivo), lo que pase primero.
<?
$archivo = "contador.txt"; $abre = fopen($archivo, "r");
$total = fread($abre, filesize($archivo));
fclose($abre); $abre = fopen($archivo, "w");
$total = $total + 1; $grabar = fwrite($abre, $total);
fclose($abre);
echo "Total de visitas: <b>".$total.";
?>
Una de las principales ventajas que presenta el trabajar con pginas dinmicas es el poder almacenar los
contenidos en bases de datos. De esta forma, los datos se pueden organizar, actualizar y buscar de una manera
mucho ms simple y es posible editar el contenido del sitio con sencillez. Esta interaccin se realiza, por un lado, a
partir de las funciones que PHP tiene para cada tipo de base de datos y, por otro con soporte de un idioma
universal: SQL (Structured Query Language) el cual es comn en todas las bases de datos.
Los DLL que permiten crear y definir bases de datos, campos e ndices. Los DML que permiten generar
consultas para ordenar, filtrar y extraer datos de la base de datos.
Comandos DLL:
Comando Descripcin
CREATE Utilizado para crear nuevas tablas, campos e ndices
DROP Empleado para eliminar tablas e ndices
ALTER Utilizado para modificar las tablas agregando campos o cambiando la definicin de los
campos.
Comandos DML:
Comando Descripcin
Utilizado para consultar registros de la base de datos que satisfagan un criterio
SELECT
determinado
INSERT Utilizado para cargar lotes de datos en la base de datos en una nica operacin.
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos
Estos comandos pueden contar con clausulas. Las clusulas son condiciones de modificacin utilizadas
para seleccionar o manipular datos:
Comando Descripcin
FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros
Utilizada para especificar las condiciones que deben reunir los registros que
WHERE
se van a seleccionar
GROUP BY Utilizada para separar los registros seleccionados en grupos especficos
HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico
Operador Uso
AND Evala dos condiciones y devuelve un valor de verdad slo si ambas son ciertas.
OR Evala dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.
NOT Negacin lgica. Devuelve el valor contrario de la expresin.
Operadores de Comparacin:
Funciones.- Las funciones se usan dentro de una clusula SELECT en grupos de registros para devolver
un nico valor que se aplica a un grupo de registros.
Comando Descripcin
Utilizada para calcular el promedio de los valores de un campo
AVG
determinado
COUNT Utilizada para devolver el nmero de registros de la seleccin
Utilizada para devolver la suma de todos los valores de un campo
SUM
determinado
MAX Utilizada para devolver el valor ms alto de un campo especificado
MIN Utilizada para devolver el valor ms bajo de un campo especificado
En una sentencia SQL de seleccin con todas las posibles clusulas, el orden de ejecucin de las mismas
es el siguiente: 1) FROM, 2) WHERE, 3) GROUP BY, 4) HAVING, 5) SELECT y 6) ORDER BY.
La sentencia SELECT se utiliza para recuperar datos almacenados en un conjunto de columnas. Las
columnas pueden pertenecer a una o varias tablas y se puede indicar el criterio que deben seguir las filas de
informacin que se extraigan. Muchas de las clusulas que permite esta sentencia son simples, aunque se pueden
conseguir capacidades muy complejas.
La seleccin contiene normalmente una lista de columnas separadas por coma (,), o un asterisco (*) para
seleccionarlas todas. El siguiente ejemplo devolver el contenido completo de la tabla Empleado:
Si la tabla contiene un atributo cdigo_departamento y solamente se quieren conocer los empleados del
departamento con cdigo A1, la consulta sera:
Para ordenar la lista resultante por nombre, por ejemplo, se usara la directiva ORDER BY:
La sentencia INSERT se utiliza cuando se quiere insertar informacin en las columnas. Aqu tambin se
pueden presentar diferentes capacidades, dependiendo del nivel de complejidad soportado. La sintaxis de la
sentencia es: INSERT INTO <tabla> [(<columna1>, <columna2,...)] VALUES (<valor>, <valor>,...);
L.I. Vctor Hernndez Rodrguez
Pgina 15
Por ejemplo, si se quieren insertar lo datos, id, nombre, sueldo, departamento y fecha de ingreso en la
tabla del Empleado se podra ingresar con la siguiente informacin:
Para actualizar datos ya existentes en las columnas, se utiliza la sentencia UPDATE, cuya gramtica es:
UPDATE <tabla> SET <columna> = <valor>[, <columna> = <valor>,] WHERE <condicin bsqueda>;
Esta sentencia permite cambiar uno o ms campos existentes en una fila. Por ejemplo, para cambiar el
nombre de un empleado en la tabla de Empleado, se hara:
La sentencia DELETE es la que se emplea cuando se quieren eliminar filas de las columnas, y su
gramtica tambin es muy simple: DELETE FROM <tabla> WHERE <condicin bsqueda>; Si no se especifica la
clusula WHERE, se eliminar el contenido de la tabla completamente, sin eliminar la tabla, por ejemplo:
Vaciar completamente la tabla, lo que hace es borrar todas las columnas de la tabla. Especificando la
clusula WHERE, se puede introducir un criterio de seleccin para el borrado, por ejemplo:
Acceso a bases de datos PostgreSQL desde PHP.- El sistema de acceso a bases de datos PostgreSQL
desde PHP es similar al usado para el acceso a bases de datos MySQL. Solo cambian los nombres de las
funciones utilizadas, pero siguen la misma estructura. Para establecer la conexin con una base de datos
PostgreSQL desde PHP, se utiliza la funcin: pg_connect("host=NombreHost dbname=BaseDatos user=Usuario
password=Contrasea");
Los parmetros, pasados como una cadena nica, indican todo lo necesario para accesar una base de
datos desde el servidor.. En caso de lograr generar una conexin la funcin devuelve un identificador del enlace
con el sistema de bases de datos. A diferencia de MySQL, no es preciso indicar con otra funcin la base de datos a
la que se desea acceder, ya que se ha facilitado como parmetro a la funcin de conexin. Finalmente, para cerrar
la conexin utilizamos: pg_close($conexion);. A la que se le debe pasar como parmetro el enlace con la conexin
inicialmente establecida, por ejemplo:
<?php
#Conectamos con PostgreSQL
$conexion = pg_connect("host=10.0.0.30 dbname=BaseDatos user=Usuario
password=Contrasea") or die ("Fallo en el establecimiento de la conexin");
Para realizar una consulta sobre una base de datos PostgreSQL, se utiliza en PHP la funcin:
pg_query($conexion, $sql); que toma como parmetros, el enlace con la base de datos y una cadena con la
consulta SQL a ejecutar (SELECT, INSERT, DELETE, etc.). Devuelve un identificador del resultado en caso de
xito o FALSE en caso de error en la consulta. Para poder mostrar la informacin resultante de una consulta se
debe hacer uso de funciones complementarias. Una de las posibles es: pg_fetch_array($id_resultado, $fila); que
devuelve la fila ($fila) en forma de arreglo con el resultado de la sentencia extrada identificada por el parmetro
$id_resultado. Por ejemplo:
<html><head><title>Llenado de agenda</title></head>
<body>
<h1>Llenado de agenda</H1>
<?
if(isset($_POST[nombre]){
$nombre=$_POST[nombre];
$telefono=$_POST[telefono];
$email=$_POST[email];
$sexo=$_POST[sexo];
echo "Nombre : $nombre<br>";
echo "Telefono : $telefono<br>";
echo "E-mail : $email<br>";
echo "Sexo : $sexo<br>";
$servidor="192.168.30.30";
$usuario="ipweb";
$clave=" ";
$base="ipweb";
$conexion=pg_pconnect("host=$servidor user=$usuario password=$clave
port=5432 dbname=$base") OR die("No es posible conectar con $base en
$servidor");
$query="insert into registro values ('$nombre','$telefono','$email','$sexo')";
$res=pg_exec($conexion,$query);
?>
<h2>----->Datos enviados<------</h2>
<br><a href= http://192.168.30.30/~ipweb/agenda.php>Insertar otro
dato</a>
<?php
}
else{
?>
<form action=http://192.168.30.30/~ipweb/agenda.php method=post>
Agenda Personal de Jose<p>
Ya se ha dicho que las variables de sesin se diferencian de las variables clsicas en que stas residen en
el servidor, son especificas de un solo usuario definido por un identificador y pueden ser utilizadas en la globalidad
de las pginas. Para iniciar una sesin se puede hacer de dos formas distintas:
1.- Declarando la apertura de sesin con la funcin session_start(). La cual crea una nueva sesin para un
nuevo visitante o bien recupera la que est siendo llevada a cabo.
2.- Declarando una variable de sesin con la funcin session_register('variable'). Que adems de crear o
recuperar la sesin para la pgina en la que se incluye, tambin sirve para introducir una nueva variable de tipo
sesin.
Las sesiones deben ser iniciadas al principio del script. Antes de abrir cualquier etiqueta o de imprimir
cualquier cosa. En caso contrario se recibira un error. Ejemplo de sesiones:
<?
session_register('contador');
?>
<html><head><title>contador.php</title></head>
<body>
<?
If (isset($contador)==0){$contador=0; }
++$contador;
echo "<a href=contador.php">Se ha abierto esta pgina $contador veces</a>";
?>
</body>
</html>
Otras funciones tiles para la gestin de sesiones son: Session_id().- devuelve el identificador de la sesin,
Session_destroy().- termina una sesin eliminando variables e identificador y Session_unregister('variable').-
abandona una variable sesin.