PHP Desde Cero
PHP Desde Cero
PHP Desde Cero
Mini biografa
Alf redo Limongi trabaja actualmente como desarrollador para
ForenSy s Caribbean (anteriormente Vision Interconnect). Lder
mundial en sof tware para el mercado de recopilacin f orense
para compaas de seguros.
Tabla de contenidos
INTRODUCCION GENERAL
COMO USAR ESTE LIBRO?
NOMENCLATURA USADA
CAPITULO I - Conceptos bsicos
Introduccin
Qu es PHP?
Por qu usar PHP?
Cmo f unciona una pgina Web?
Cmo f unciona el direccionamiento de pginas en
Internet?
Qu es un Serv idor de Internet?
Qu es un URL?
CAPITULO II - Una breve introduccin de HTML
Introduccin
Qu es HTML?
Estructura de una pgina bsica en HTML
Etiquetas bsicas
Atributos en las etiquetas
Trabajando con tablas
Otras maneras de organizar la inf ormacin
Manejo de f ormularios
La etiqueta input y sus mltiples f ormas
Consideraciones f inales
Introduccin general
El mundo que v iv imos en la actualidad no se parece al que
exista hace diez o quince aos. Repentinamente nos hemos
encontrado con que todos estamos interconectados. Cada da
es ms dif cil imaginar el que una persona pueda ejercer su
prof esin cualquiera que ella sea- sin que utilice un computador
personal o algn otro tipo de dispositiv o para realizar u organizar
sus tareas.
11
12
14
15
20
Qu es PHP?
Aunque en los ltimos aos se ha hecho un v erdadero esf uerzo
para hacer de l un lenguaje multipropsito, puede decirse que
PHP es f undamentalmente un lenguaje de programacin Web
del lado del serv idor, es decir, uno que permite escribir o alterar
pginas de Internet cuando estas no han abandonado an el
equipo desde el que son despachadas. Veamos cmo es eso.
Una pgina Web es f undamentalmente una serie de comandos
escritos en un lenguaje llamado HTML, acompaados de
archiv os multimedia (f otograf as, v ideos, audio, etc.) que puede
ser desplegada a trav s de un programa nav egador (o browser).
Adems, la misma pgina puede o no contener comandos
escritos en otros lenguajes ms especf icos como JavaScript,
VBScript o CSS, los cuales se encargan de alterar el estilo y el
comportamiento general de la pgina.
Al escribir una pgina Web en HTML, estamos de algn modo
organizando una serie de contenidos para que sean v istos de
una cierta manera. Esos contenidos, que pueden ser f otos,
textos, enlaces, entre otros, habrn de ser mostrados de la
misma manera a todo el que cargue en su nav egador nuestra
pgina. Siempre el mismo contenido y siempre de una misma
manera.
Si queremos hacer que la pgina muestre contenidos distintos,
y no queremos reescribirla cada v ez, podramos hacer que los
21
24
25
27
34
37
39
49
La etiqueta <img>
50
La etiqueta <div>
Es quizs el mtodo ms recomendado para organizar la
inf ormacin. Consta de dos etiquetas <div> y </div> que en
combinacin con ciertos atributos de estilo (usando CSS)
pueden lograr prcticamente cualquier resultado que desees.
Al colocar parte de la inf ormacin dentro de un bloque tipo
<div>, el nav egador usualmente parecer insertar un salto de
lnea antes y despus del contenido. As que en su f orma ms
simple, un div no es ms que una seccin horizontal de la
pgina. Sin embargo, existen maneras de decirle a una seccin
div la cantidad de exacta espacio v ertical y horizontal que
deseamos que abarque, as como el color de f ondo y hasta
darle un estilo nico a todo lo contenido dentro de ellos. Todo
esto, como y a hemos mencionado, se hace a trav s de CSS.
Las zonas def inidas por div, pueden colocarse unas dentro de
otras, as que podramos usar un div que abarque toda la
62
La etiqueta <span>
Esta etiqueta permite agrupar una cierta cantidad de inf ormacin
para darle un estilo comn. A dif erencia del comando div, un
span no establece un rea cuadrada, al contrario, podemos
iniciar un bloque <span> a mitad de un prraf o y terminarlo unas
lneas ms abajo y nos permitir darle un trato especial a esa
porcin de texto sin alterar la estructura del prraf o en s.
63
68
Manejo de formularios
Hasta ahora hemos mostrado algunos de los comandos HTML
que ay udan a mostrar inf ormacin. Sin embargo, no hemos
mencionado por ninguna parte como podemos hacer que
nuestras pginas pidan inf ormacin al usuario.
La etiqueta <form>:
Sirv e para agrupar el conjunto de tems que v an a ser
procesados simultneamente al ser transmitidos. Visualmente,
esta etiqueta no tiene ningn ef ecto en la pantalla.
Los atributos principales de la etiqueta form son los siguientes:
69
87
Consideraciones finales
El desarrollo de pginas Web en la actualidad, en lo que al
diseo externo se ref iere, se realiza usualmente a trav s de
editores v isuales, as que no es extrao encontrar personas que
han desarrollado al menos una pgina Web sin tener el menor
conocimiento de HTML. Sin embargo, si v as a trabajar en PHP,
tu trabajo habr de consistir en modif icar dinmicamente el
f uncionamiento de la misma, y para ello, necesitas una base de
HTML.
88
91
Antes de comenzar
En los captulos anteriores hicimos un recorrido superf icial por la
arquitectura de Internet, a f in de manejar los trminos que
habrn de aparecer una y otra v ez en tu trabajo de programador.
Tambin nos sumergimos, sin bajar demasiado, en el mundo del
HTML, el cual debes conocer ntimamente si pretendes tener
algo de xito en el competido mundo del desarrollo Web.
Finalmente ha llegado el momento de hablar PHP. Antes de
comenzar, quisiramos hacerte un par de recomendaciones.
La primera es que practiques los ejemplos que se te proponen.
Una cosa es v er el ejercicio en el libro y comprenderlo y otra
muy distinta es hacerlo para aprender de los errores. Si lees
mucho sobre PHP v as a terminar comprendindolo muy bien,
pero no sobrev iv irs a una aplicacin real si no aprendes a
pensar en PHP.
La segunda recomendacin es que te div iertas. Hay muchas
maneras de resolv er el mismo problema en este lenguaje.
Buscar mejores soluciones a lo que y a has resuelto te ay udar
a av anzar ms rpidamente y te hars ms productiv o.
Hasta aqu los consejos. Hablemos PHP!
92
O tambin:
104
105
Sintaxis:
<expresin> <> <expresin>
Nota:
Este operador es equiv alente al operador !=.
127
130
152
158
160
167
170
174
<comando o bloque>;
Ejemplos:
$notas = array (Juan => 6, Leo => 7, Jose => 8);
f oreach($notas as $nota){
$acumulado += $nota;
}
$notas = array (Juan => 6, Leo => 7, Jose => 8);
$maximo = 0;
$mejor = ;
f oreach($notas as $alumno => $nota)
b)
186
Introduccin
En este captulo te nos adentramos en el manejo de las
cadenas de caracteres, tambin conocidas como strings, las
cuales constituy en sin lugar a dudas el tipo de datos ms
utilizado en PHP, y a que el objetiv o principal del lenguaje es la
produccin u alteracin de textos en HTML.
Al f inalizar este captulo tendrs conocimiento de una amplia
coleccin de nuev os operadores y f unciones of recidos por el
lenguaje para f acilitar el trabajo con textos.
Temas desarrollados en este captulo:
Concepto y utilizacin de las cadenas de caracteres en
PHP.
Operadores de asignacin, concatenacin y comparacin.
Funciones para el manejo de textos.
Formas simplif icadas de concatenar textos.
195
196
198
202
206
213
218
219
221
224
226
238
Sintaxis:
my sql_connect(<serv idor>, <usuario>, <clav e>)
Parmetros:
<serv idor>: Puede ser una direccin IP, o un URL o la
cadena localhost. Puede estar seguido de un nmero
de puerto separados por :.
<usuario>: Nombre de un usuario debidamente
autorizado para abrir el manejador de bases de datos.
<clav e>: Clav e del usuario especif icado.
Retorna:
Identif icador de la conexin (llamado tambin handler)
en caso de que la conexin sea exitosa o FALSE en
caso de error.
Ejemplos:
$db = my sql_connect(localhost, admin, libra);
$db = my sql_connect(www.misitio.com, admin,
v enecia);
Descripcin:
Env a un comando SQL a una cierta base de datos y
retorna un resultado.
Sintaxis:
my sql_query (<comando>, <conexin>)
Parmetros:
<comando>: Texto que contiene un comando SQL v lido
para ser aplicado a la base de datos prev iamente
seleccionada.
<conexin>: Identif icador retornado por la f uncin
my sql_connect. Si no se especif ica, se usar la ltima
conexin abierta.
Retorna:
Si el comando env iado es un SELECT, entonces la
f uncin retorna un identif icador si la operacin f ue
exitosa o FALSE en caso de error. Si el comando es un
INSERT, UPDATE o DELETE, se retornar TRUE o
FALSE para indicar el xito del comando.
Ejemplo:
$db = my sql_connect(localhost, admin, libra);
if ($db){
if (my sql_select_db (inv entario, $db)){
$sql = SELECT * FROM productos;
$res = my sql_query ($sql, $db);
}
}
Requiriendo un registro:
Tal como v imos en el ejemplo anterior, siempre que se hace una
consulta del tipo SELECT a una base de datos, obtendremos
como resultado un identif icador, llamado tambin recurso, el
cual no es ms que el conjunto de v alores retornados en modo
digamos- inutilizable.
Parmetros:
<recurso>: Identif icador retornado por la f uncin
my sql_query.
Retorna:
Arreglo asociativ o con los contenidos de los distintos
campos especif icados en el comando SELECT env iado
a la f uncin my sql_query.
Ejemplo:
$db = my sql_connect(localhost, usr, key );
if ($db){
if (my sql_select_db (inv entario, $db)){
251
252
255
Variables globales
El alcance natural de cualquier v ariable en PHP es el contexto
en el cual est def inida. Es decir que una v ariable def inida
dentro de una f uncin, ser v lida solo dentro de esa f uncin,
mientras que una v ariable def inida a niv el del script, tendr
v alor a lo largo de todo el cdigo del script no incluido dentro de
f unciones.
257
263
Introduccin
En este captulo abordamos uno de los conceptos introducidos
por Netscape Communications desde el ao 1994, y que pas
prontamente a constituirse en un estndar de al programacin
Web, las llamadas cookies.
Al f inalizar este captulo deberas estar en capacidad de
entender y utilizar cookies desde PHP para recordar datos de
tus clientes.
Temas desarrollados en este captulo:
Concepto y utilidad de las cookies
Uso de cookies en PHP
Operaciones bsicas con cookies
265
266
Parmetros:
<nombre>: Nombre de la v ariable.
<v alor>: Contenido que se desea guardar. Si este
parmetro es omitido, el nav egador proceder a borrar
la cookie que contenga el nombre indicado.
<expira>: Indica la f echa y hora de expiracin.
<subdom>: Subdominio donde es v lida.
<dominio>: Dominio donde es v lida.
<seguro>: Indica si solo su usa en modo seguro
(HTTPS)o no.
<solo_HTTP>: Indica si es inaccesible a lenguajes de
script o no.
Ejemplos:
setcookie(nombre, $nombre_usuario);
setcookie(f echa, date());
setcookie(sexo);
276
278
distintos cajeros.
281
282
Sintaxis:
session_start()
Ejemplo:
session_start();
286
Funcin session_destroy
Descripcin:
Destruy e una sesin.
Sintaxis:
session_destroy ()
Ejemplo:
session_destroy ();
Funcin session_name
Descripcin:
Retorna el nombre de la v ariable de sesin utilizada o la
cambia si se especif ica como parmetro.
Sintaxis:
session_name([<nombre>])
Ejemplos:
// Retorna PHPSESSID
echo session_name();
// Cambia el nombre de las sesiones por ID
session_name(ID);
288
Veamos la sintaxis:
Funcin session_id
Descripcin:
Retorna el v alor de la v ariable de sesin utilizada o
cambia el mismo si se especif ica como parmetro.
289
Sintaxis:
session_id([<v alor>])
Ejemplos:
// Retorna el cdigo de sesin
echo session_id();
// Cambia el cdigo de sesin por el v alor dado.
session_id(402318);
290
Propagacin manual:
Este mtodo de propagacin es el ms laborioso pero el ms
seguro, y a que no todos los usuarios permiten el uso de cookies
291
<?php
header(Location http //www.misitio.com)
?>
292
O mejor an:
<?php
$url = http //www.misitio.com?
$url .= sesin name() . = . session id()
header(Location $url)
?>
293
</html>
<html>
<head>
<script language=javascript>
function abre popup(){
open(pagina2.php)
}
</script>
</head>
<body>
<input type=button value=popup popup() />
</body>
</html>
<html>
<head>
<script language=javascript>
function abre popup(){
open(pagina2.php?PHPSESSID=<?php echo session id() ?>)
}
</script>
</head>
<body>
<input type=button value=popup popup() />
</body>
</html>
295
<html>
<head>
<script language=javascript>
function ir a 2(){
location.href = pagina2.php
}
</script>
</head>
<body>
<input type=button value=Ir a pgina 2 a 2() />
</body>
</html>
<html>
<head>
<script language=javascript>
function ir a 2(){
location.href = pagina2.php?PHPSESSID=<?php echo session id()
?>
}
</script>
</head>
<body>
<input type=button value=Ir a pgina 2 a 2() />
296
</body>
</html>
Propagacin automtica:
Para hacer todo el proceso de propagacin ms sencillo,
PHP puede encargarse de transf ormar por nosotros todos
los enlaces internos de nuestro sitio para que incluy an el
session_id. Esto se logra haciendo que la directiv a
session.use_trans_sid en nuestro php.ini est activ ada
(v alor igual a "1").
297
299