Vous êtes sur la page 1sur 60

Una iniciativa de Bloggeandolo y Revolution Team

PHP para todos

Maurizzio Pealba

Este curso se distribuye bajo una licencia Creative Commons. Y Usted es libre de: Copiar, distribuir y comunicar pblicamente la obra

Hacer obras derivadas Bajo las condiciones siguientes: Reconocimiento. Debe reconocer y dar crdito al autor original (Maurizzio Pealba Samayoa)

Introduccin
PHP (acrnimo de "PHP: Hypertext Preprocessor") es un lenguaje interpretado de alto nivel embebido en pginas HTML y ejecutado en el servidor. Es decir, es un lenguaje de programacin que no requiere ser compilado. Actualmente, muchos de los sitios que conocemos estn desarrollados en PHP, aunque claro, nosotros no vemos la ejecucin del programa sino nicamente el resultado de su ejecucin, dicha comunicacin se realiza usualmente a travs del lenguaje HTML. Por lo que es un requisito para llevar este curso el conocer al menos los fundamentos bsicos de la sintaxis HTML. Cuando nosotros tipeamos una direccin en nuestro explorador, por ejemplo cuando entramos al sitio http://bloggeandolo.blogspot.com estamos enviando una peticin al servidor. Dicho servidor reconoce que la peticin es una pgina con extensin php y solicita al intrprete que ejecute el cdigo de la misma. El resultado de dicha ejecucin estar escrito en HTML de modo que el navegador pueda leerlo y mostrarnos el resultado. Aunque ese es el funcionamiento bsico, tambin podemos incluir consultas a bases de datos MySQL y la ejecucin de otros elementos que veremos ms adelante. Este esquema plantea el funcionamiento bsico de un sitio escrito en php

A diferencia de HTML, PHP es un lenguaje de programacin, y debe ser estudiado tal, es por eso, que en este curso dedicaremos el primer captulo al estudio de los fundamentos bsicos de programacin.

Captulo I: Fundamentos Bsicos de Anlisis Numrico y Programacin


Un algoritmo es una secuencia finita y ordenada de instrucciones que han de seguirse para resolver un problema. Dicha definicin es la base misma de la programacin pues lo que hace un lenguaje de programacin es traducir un algoritmo. Hoy en da, existen diferentes tcnicas de programacin, unas ms complejas de otras y en ocasiones algunas no pueden ser utilizadas con cualquier lenguaje de programacin, las dos tcnicas ms comunes son: Programacin estructurada Programacin orientada a objetos

La programacin estructurada es una forma de escribir programas de manera clara. Para ello utiliza nicamente tres estructuras: secuencia, seleccin e iteracin o instrucciones secuenciales, condicionales y repetitivas. Una de las herramientas que utilizan los programadores para traducir sus algoritmos en un lenguaje de programacin cualquiera es el pseudocdigo, o falso lenguaje. Es decir, utilizando un lenguaje NO programable o inexistente que permita darle una estructura traducible a un determinado algoritmo. Mediante el anlisis del pseudocdigo quien incursione en el mundo de la programacin puede comprender la lgica que requiere el escribir un determinado programa y facilita la comprensin de cualquier otro lenguaje. Es por ello que en este captulo describiremos las estructuras de control y los elementos fundamentales de un programa usando un pseudocdigo que traduciremos ms adelante.

Pseudocdigo y estructura de un programa


Podemos considerar que la ejecucin bsica de un algoritmo debe obedecer un cierto orden. Siguiendo este principio podemos afirmar que todo programa cuenta con una cabecera y un cuerpo donde se incluyen diferentes elementos. Claro, siendo la sintaxis de algunos lenguajes mas o menos restrictiva. En esencia la estructura bsica de un programa es

1. Cabecera. 1. Programa.

2. Modulo. 3. Tipos de datos. 4. Constantes. 5. Variables. 2. Cuerpo. 1. Inicio. 2. Instrucciones. 3. Fin.

1.1 Programa
Se refiere al nombre con el cual identificamos nuestro algoritmo, en pseudocdigo se define como: algoritmo <nombre> NOTA: Aunque en un pseudocdigo no tenemos grandes restricciones en cuanto a la sintaxis de un programa, con el fin de adquirir buenas costumbres de programacin vamos a evitar el uso de maysculas en nuestros programas.

1.2 Modulo
Se refiere a los archivos necesarios que debern incluirse para la correcta ejecucin del programa por ejemplo libreras que contengan funciones especiales que utilizaremos en nuestro programa. Este elemento lo ignoraremos en este captulo pues nicamente sentaremos las bases de la programacin estructurada.

1.3 Tipos de datos


Se refiere a la creacin de nuevos tipos de dato, No definiremos tipos en este captulo por lo que obviaremos este elemento.

1.4 Constantes
Llamaremos una constante a un valor que no variara durante la ejecucin de un programa, por ejemplo el valor de pi en un programa que calcule el rea de un crculo siempre ser el mismo 3.1416. De modo que nuestro pseudocdigo seria: algoritmo <area> CONST pi = 3.1416

Como vemos, definimos que estamos declarando una constante utilizando una palabra clave, CONST, damos un nombre a la constante pi y posteriormente le asignamos un valor.

1.5 Variables
Las variables son elementos que almacenan un valor que puede variar durante la ejecucin de un programa. En la mayora de los lenguajes de programacin es necesario definirlas, es decir darles un nombre y asignarles el tipo de dato que van a almacenar. Aunque en PHP no es necesario pues el intrprete les asigna el tipo del dato del valor que contengan en este captulo y a fin de extender la comprensin sobre el tipo de datos que pueden almacenar las variables y la interaccin entre los mismos vamos a definirlas siempre. Por ejemplo, para un programa que calcule el rea de un circulo, se requerir el radio del mismo sabiendo que el rea de un circulo se calcula multiplicando el valor de pi por el radio al cuadrado. Entonces radio ser una variable pues no siempre calcularemos al rea del mismo crculo adems, necesitaremos una variable que almacene la respuesta. algoritmo <area> CONST pi = 3.1416 var real: radio, resp En este ejemplo, hemos declarado la constante pi, y estamos declarando dos variables de nombre radio y resp que contendrn datos de tipo numrico real.

1.5.1 Tipos de datos


En casi cualquier lenguaje de programacin existen ciertos tipos de datos fundamentales, estos pueden ser de tipo numrico, cadenas y datos bolanos, aunque en cada lenguaje existe un identificador para cada tipo de dato. En este captulo consideraremos nicamente: Numrico real entero Nmeros con decimales Nmeros sin decimales

Cadena char cadena Bolanos Solo pueden contener valores verdaderos o falsos, por ejemplo cuando evaluamos condiciones o bucles repetitivos. Un solo carcter Ms de un carcter

2.1 Inicio
Todo programa e instruccin debe tener un inicio y un final, dicho elemento puede definirse sea con una palabra clave, o con un carcter, en nuestro pseudocdigo lo definiremos como: algoritmo <area> CONST pi = 3.1416 var real:radio, resp Inicio NOTESE que no estamos considerando ningn delimitador entre las instrucciones, en nuestro pseudocdigo estamos considerando que un salto de lnea delimita el fin de la instruccin.

2.2 Instrucciones
Las instrucciones son las operaciones que se realizaran durante la ejecucin del programa. OJO que he mencionado una palabra clave muy importante. operaciones y estas sern definidas por ciertos operadores

Operadores

Un operador, es un elemento que controla la ejecucin del programa. Y existen operaciones de asignacin, operadores aritmticos, relacionales y operadores lgicos. Operadores de Asignacin Los operadores de asignacin permiten asignarle un determinado valor a una variable. En nuestro pseudocdigo utilizaremos el signo = como nuestro operador de asignacin. Operadores Aritmticos Como su nombre lo indica, son operadores que se utilizan usualmente para ejecutar operaciones aritmticas entre variables o bien entre variables y nmeros. En pseudocdigo utilizaremos: + * / % ^ Operadores relacionales Son aquellos que se utilizan para evaluar si una condicin es verdadera o es falsa. Y se utilizan principalmente en las instrucciones selectivas y las instrucciones repetitivas. > >= < <= == != Mayor Mayor o Igual Menor Menos o Igual Igual Distinto Suma Resta Producto Cociente Resto Potenciacin

Operadores lgicos y o Es true si ambas condiciones son true Es true si una condicin es true

2.2.1 Instrucciones Secuenciales


Las instrucciones secuenciales son aquellas que se ejecutan lnea por lnea, por ejemplo para el caso del clculo del rea de un crculo.

algoritmo <area> CONST pi = 3.1416 var real: radio, resp inicio radio = 2 resp = pi*radio^2 fin

Como podemos observar, en este programa se le asigna un valor a la variable radio utilizando un operador de asignacin, posteriormente se le asigna a la variable resp el valor que resulte del clculo de la constante pi por el valor de la variable radio elevado al cuadrado. Este programa funciona, y si existiera un compilador para nuestro pseudocdigo probablemente no devolvera ningn error, sin embargo este programa en esencia no sirve para nada, pues en principio no se comunica con el usuario y tampoco solicita que el usuario ingrese un radio as que nicamente puede calcular el valor de un crculo de radio 2

Datos entran datos salen


Para que un programa sea til para el usuario, debe comunicarse con l, solicitar informacin y mostrar informacin. Es por eso, que en nuestro pseudocdigo utilizaremos las palabras Escribir y Leer para comunicarnos con el usuario. De modo que escribir, lo utilizaremos para mostrar un mensaje al usuario y leer para recibir informacin del mismo y almacenarla en una variable.

De esta forma podramos hacer que nuestro programa sea un poco ms til.

algoritmo <area> CONST pi = 3.1416 var real: radio, resp inicio escribir("Ingrese el radio de la esfera: ") leer(radio) resp = pi*radio^2 escribir("El Area del circulo es: ",resp) fin Esta vez, nuestro programa solicita al usuario que ingrese el radio de la esfera, una vez que el usuario lo ingresa el programa lo almacena en la variable radio para calcular despus el valor de la variable resp para mostrar el valor de resp despus con otro escribir. NOTESE: que el texto plano se ingresa entre comillas a diferencia de las variables, en casi todos los lenguajes de programacin se sigue este principio

Ejercicio N.1
disee un pseudocdigo que solicite al usuario dos tres nmeros, sume el primero con el segundo, el segundo con el tercero y muestre el resultado del cociente entre los dos resultados.

2.2.2 Instrucciones Selectivas


Llamamos instrucciones selectivas a las que requieren de una condicin previa para ser evaluadas. Y normalmente se las conoce como condicionales, pueden ser simples, dobles, anidadas y mltiples. Selectivas Simples Requieren de una sola condicin a ser evaluada, para este ejemplo vamos a utilizar un caso donde el usuario debe ingresar su edad para saber si puede ingerir o no alcohol. Por lo que utilizaremos una sola variable. edad algoritmo <edad>

var real:edad inicio escribir("Ingrese su edad: ") leer(edad) si edad > 18 entonces escribir("Usted puede ingerir alcohol con moderacion") fin-si escribir("usted no puede ingerir alcohol") fin

Ahora, una vez que el usuario introduce su edad, la selectiva simple evala si es o no mayor de 18, si el usuario es mayor de 18 entra a la sentencia condicional si no, simplemente la salta y pasa a la siguiente lnea. Aunque este ejemplo es vlido, no muestra el uso correcto de las instrucciones selectivas pues la frase usted no puede ingerir alcohol debera estar dentro del condicional como una negativa a la primera condicin.

NOTESE: que la sentencia finaliza con un fin-si es decir un FIN para el SI Selectivas dobles Se consideran sentencias que evalan una condicin, si dicha condicin no se cumple entonces realizan otra accin siempre dentro de la misma estructura condicional. Por ejemplo para el caso anterior la sintaxis seria: algoritmo <edad> var real:edad Inicio escribir("Ingrese su edad: ") leer(edad) si edad > 18 entonces escribir("Usted puede ingerir alcohol con moderacin") si-no escribir("usted no puede ingerir alcohol") fin-si Fin En este ejemplo se muestra una sintaxis ms elaborada que no depende del modo en que se ejecuta el programa sino de las estructuras de control que se incluyen. Selectivas anidadas Bsicamente, una selectiva anidada es una selectiva dentro de otra selectiva, podemos anidar un sinnmero de estructuras, para no perder el hilo de nuestro programa, es importante que aprendamos a comentar nuestro cdigo. Un comentario es bsicamente una lnea de cdigo que no es leda y en nuestro pseudocdigo los representaremos como en php con una doble barra // Vamos a analizar un ejemplo en el que se le solicita al usuario los tres lados de un triangulo para saber si es equiltero, escaleno o bien si es issceles. algoritmo <triangulo>

var real:lado1, lado2, lado3 inicio escribir("Ingrese los lados del triagulo: ") leer(lado1, lado2, lado3)

//inicio de la selectiva

si lado1 != lado2 entonces //ya sabemos el primer lado no es igual al segundo si lado2 != lado3 entonces //todos los lados son diferentes escribir("El triangulo es escaleno") si-no //uno de los lados es igual escribir("el triangulo es isosceles") fin-si

si-no //ya sabemos que el primero es igual al segundo si lado2 != lado3 entonces //tenemos dos lados iguales escribir("el triangulo es isosceles") si-no

//todos los lados son iguales escribir("el triangulo es equilatero") fin-si

fin Como podemos observar no es demasiado complicado, la parte difcil es el razonamiento de la lgica que seguir el programa, es decir el diseo del algoritmo. El uso de selectivas anidadas requiere plantearse un esquema mental del procedimiento que seguir al programa antes de empezar a escribir lneas de cdigo. NOTESE: La sintaxis coloreada se utilizara de aqu en adelante a fin de definir los elementos propios del pseudocdigo, las variables y las cadenas de texto definidas por el programador. Selectivas Mltiples Una selectiva mltiple es una instruccin que nos permite realizar determinada accin en caso de que una variable x tome un valor y se utiliza la palabra clave Segn sea para definir el segmento integrado por una selectiva mltiple. Por ejemplo si quisiramos un programa que nos escribiera en letras los nmeros del 1 al diez permitindole al usuario ingresar un numero en dicho rango nuestro pseudocdigo seria ms o menos as: algoritmo <numeros> var entero:numeros inicio escribir("ingrese un numero del 1 al 10") leer(numeros) Segun sea <numeros> hacer 1: escribir("uno") 2: escribir("dos")

3: escribir("tres") 4: escribir("cuatro") 5: escribir("cinco") 6: escribir("seis") 7: escribir("siete") 8: escribir("ocho") 9: escribir("nueve") 10: escribir("diez") si-no escribir("Numero no valido") fin-segun fin Como hemos observado, en el caso de las selectivas mltiples son instrucciones que se ejecutan en caso de existir opciones predefinidas para una determinada situacin. Por ejemplo, podramos programar una calculadora que ejecutara una determinada accin para cada uno de los operadores aritmticos (OJO tratando cada operador como una variable de tipo carcter).

Ejercicio N.2
Como ejercicio para la prctica de las funciones secuenciales y las selectivas mltiples disee un pseudocdigo que simule una calculadora muy rudimentaria que permita al usuario sumar, restar multiplicar dividir, sacar raz cuadrada y elevar un numero x a una potencia y.

2.2.3 Instrucciones repetitivas


Las instrucciones repetitivas son aquellas que se ejecutan mientras se cumpla una condicin. Dichas instrucciones deben ser finitas y contar siempre con un mecanismo de escape. Instruccin repetitiva mientras La instruccin mientras seala que un determinado procedimiento se ejecutara mientras una condicin X sea verdadera. Existe en la mayora de los lenguajes de programacin incluyendo php. Nos permite por ejemplo, evaluar los nmeros del 1 al 10 sumando aquellos que sean pares para mostrar al final la suma de los mismos. algoritmo <sumatoria> var entero: i, ac inicio i = 0 ac = 0

mientras i < 10 hacer

si i % 2 == 0 entonces ac = ac + i si-no ac = ac fin-si

i = i + 1

fin-mientras escribir("la suma de los nmeros pares del 1 al 10 es: ",ac) fin En principio se declararon las dos variables, i un contador y ac un acumulador ambas de tipo real, despus se inicializaron (siempre se debe inicializar las variables asignndoseles un valor cuando se utilizaran en instrucciones repetitivas) Se evala si i es menor que 10, como i vale 0 para la primera secuencia entra al bucle mientras, se evala si el resto de i y 2 es 0 para evaluar si es un numero par, si lo es, se suma al acumulado ac si no, nicamente se le suma uno a i que regresa a evaluar si i es menor que 10 y as sucesivamente hasta que la condicin i menor que 10 ya no se cumpla. Estructura repetitiva para Otra estructura repetitiva que conviene estudiar es la estructura para, que repite una accin desde x igual a n1 hasta n2 con un incremento de 1 o bien un incremento especificado por el usuario. A diferencia de la estructura mientras, la estructura para siempre incluye un contador que repetir la instruccin x nmero de veces. As pues, el ejemplo anterior puede ser escrito utilizando la estructura para, cuya sintaxis es: algoritmo <sumatoria> var entero: i, ac inicio ac = 0

para i = 0 hasta

10 hacer

si i % 2 == 0 entonces ac = ac + i

si-no ac = ac fin-si fin-para escribir("la suma de los nmeros pares del 1 al 10 es: ",ac) fin NOTESE: Que a diferencia de la estructura mientras, la variable contador se inicializa dentro de la propia estructura. Adems el incremento si no se especifica siempre ser de +1

Ejercicio N.3
Disee un pseudocdigo que devuelva usuario la suma de los nmeros del 1 al 10 pares e impares de forma independiente.

2.3 Fin
Todo programa, debe incluir un fin, aunque en los ejemplos anteriores lo hemos incluido y se sobreentiende que cada instruccin y procedimiento debe incluir un fin-procedimiento es importante recalcarlo en este apartado.

Conclusiones
Se han estudiado los elementos comunes de cada uno de los lenguajes de programacin, un paso importante para aprender cualquier otro lenguaje, sea este compilado o bien sea interpretado. Aunque muchas de las caractersticas aqu descritas, principalmente la declaracin de variables no ha lugar en php, es importante considerar que aunque no se declaran, los tipos de variable existen aun en php. As pues, esta introduccin a la programacin es perfectamente vlida para php, tanto como para C, pascal o cualquier otro lenguaje, claro que se modificaron algunos operadores y procedimientos en nuestro pseudocdigo para ajustarlo al trabajo que realizaremos con php.

Captulo II: Preparando el espacio de trabajo


Es conveniente que si no sabes NADA de HTML te descargues el curso TuSitioYa antes de realizar PHP para todos, puedes hacerlo aqu: http://bloggeandolo.blogspot.com/2010/06/creando-un-sitio-web-desde-0.html Aunque hoy en da, existen muchos IDEs para trabajar con php, por ser el que ms se ajusta a nuestras necesidades y por ser el que hemos utilizado en otros cursos como TuSitioYa vamos a utilizar Dreamweaver. Si no lo tienes, puedes descargarte la versin de prueba desde el sitio oficial de Adobe, nosotros en este tutorial trabajaremos con la versin CS5 por ser la ms nueva. NO utilizaremos en absoluto ms que en la configuracin ms bsica, el modo diseador de Dreamweaver.

Si utilizas Linux o bien Windows pero no deseas descargar Dreamweaver puedes seguir este tutorial utilizando eclipse o cualquier otro IDE.

Si prefieres no utilizar ningn software adicional, tambin puedes trabajar con el bloc de notas. Al fin y al cabo, lo que si necesitaremos y est disponible de forma gratuita es un servidor. Tanto para Linux como para Windows, podemos descargarnos xampp desde el sitio oficial http://www.apachefriends.org/es/xampp.html

Una vez que lo hemos instalado, conviene que iniciemos apache y MySQL. No requeriremos nada ms por el momento.

Una vez que hemos iniciado apache, vamos a iniciar Dreamweaver para configurar el servidor con el que vamos a trabajar y la direccin donde guardaremos nuestros archivos.

En la pantalla de Inicio de Dreamweaver, vamos a seleccionar, Nuevo Sitio de Dreamweaver. Si has ledo TuSitioYa este procedimiento te ser muy familiar, recuerdas cuando dijimos que no especificaramos nada en Servidor esta vez ha cambiado. Php necesita ser interpretado y hemos instalado un servidor en nuestra PC para hacerlo.

Ojo con la direccin, en mi caso voy a ubicar mi sitio en C:\xampp\htdocs\phpya\ puedes variar la direccin de la ultima carpeta, pero siempre debes ubicar tu sitio dentro de la carpeta htdocs de xampp En la pestaa servidores haremos clic sobre + para agregar un nuevo servidor, y donde configuraremos as nuestro nuevo sitio

Ahora, crearemos un nuevo archivo php

Y vamos a escribir lo siguiente entre el <body></body>

Damos vista previa en el navegador y deberamos de ver algo ms o menos as:

Aunque no te has dado cuenta de cmo, has escrito tu primer programa en php, pero bueno no es la gran cosa, sin embargo prueba que hemos instalado apache, php y lo hemos configurado correctamente en Dreamweaver.

NOTESE: Para quienes utilicen algn otro software como eclipse o bien bloc de notas, basta con guardar los documentos dentro de la carpeta htdocs de xampp y ejecutar desde localhost para ejecutar sus programas.

Captulo III: Introduccin a PHP


Vale que era hora de empezar con php he? Aunque hemos descrito los elementos bsicos de un programa en el captulo I es hora de trabajar especficamente con php.

Inicio del programa


Para indicarle al servidor que un lenguaje, o un segmento de un sitio est escrito en php y debe ser traducido por el intrprete se seala dicho programa con: <?php As mismo, el programa debe finalizar con ?> Todas las sentencias incluidas entre estos smbolos sern interpretadas y traducidas para devolver un elemento escrito en HTML. Por ejemplo, si en un sitio escribirnos:

El navegador lo traducir como

Por otro lado, si escribimos

A la hora de visualizarlo en el navegador recibiremos el siguiente mensaje de error

De modo que de aqu en adelante, lo UNICO que podremos escribir entre las sentencias <?php y ?> ser en efecto, PHP.

Constantes
Las constantes en php se declaran utilizando la funcin define(), y ubicando entre parntesis en nombre de la constante y su valor. Por ejemplo, para definir el valor constante de pi, seria:

Variables
Un elemento fundamental en cualquier lenguaje de programacin son las variables, en PHP no hace falta declararlas antes de asignarles un valor, de hecho una variable se declara en el momento en que se le asigna un valor, dicha declaracin la realiza el interprete en el momento de la ejecucin.

Debemos tener presentes los tipos, pues no podemos sumar una variable de tipo cadena con una variable de tipo numrico. Para declarar una variable en php, basta con utilizar el signo $ para identificar el elemento como una variable y asignarle un valor cualquiera. Si dicho valor es una cadena, debe estar entre comillas. Por ejemplo: $a = http://bloggeandolo.blogspot.com En nuestro programa, vamos a definir varias variables a fin de trabajar mas adelante con ellas. Definiremos una de tipo entero, una de tipo real, una de tipo cadena y una de tipo booleana.

NOTESE: que se usa ; como delimitador para cada expresin, esto es importante pues le permite al intrprete identificar cada instruccin. Como se puede observar, basta con asignarle un valor a nuestra variable para declararla. El texto escrito tras las // es un comentario y ser ignorado por el interprete.

Salida de datos
PHP, hace uso de elementos propios de HTML como dispositivos de entrada, estos son los formularios. Sin embargo, antes de comprender el uso de dichos elementos, debemos repasar las instrucciones selectivas y las instrucciones repetitivas.

As pues, por el momento, nicamente trabajaremos con programas predefinidos que muestren datos. La funcin equivalente a nuestro escribir en pseudocdigo es echo Y funciona de la siguiente forma: <?php echo Hola Mundo; ?> Esto imprimira en el navegador:

Utilizando la funcin echo entonces podramos darle algn formato a nuestro texto utilizando HTML. Por ejemplo

Que imprimir

Esta es la forma en la que HTML sirve de consola a PHP

Vectores
Un array, es una coleccin de valores, y pueden ser unidimensionales, bidimensionales o multidimensionales, Nos permiten almacenar una variedad de datos que son delimitados por un identificador que puede ser numrico o bien una cadena, si no se especifica un valor, este ser numrico y comenzara desde 0, se ubica entre dos corchetas. Se definen de la siguiente forma:

En el navegador, dicho programa imprimir

OJO que no definimos identificadores para el array, por lo tanto este empieza desde 0, donde el valor de la variable $nombre ser Juan. Otra forma de definir arrays, y nos permite crear estructuras mas complejas es utilizando la funcin array, y su sintaxis es la siguiente: $variable = array(valor => contenido, otro valor => contenido) Y en un programa, donde anidamos un par de arrays:

Que en el navegador imprimira:

Operadores
As como con nuestro pseudocdigo php cuenta con sus propios operadores, las principales variaciones respecto a nuestro pseudocdigo son los valores de asignacin pues aunque se mantiene = como principal operador de asignacin en php se mezclan operadores de asignacin con algunos operadores aritmticos sin embargo no es un requisito realizar las operaciones de esta manera. Operadores aritmticos
+ * / % ++ -Operadores de asignacin = += -= *= /= %= .= Suma dos valores Resta dos valores (o pasa a negativo un valor) Multiplica dos valores Divide dos valores Resto de dividir dos valores Incremento en una unidad Decremento en una unidad

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 ! and or xor &&

Operador NO o negacion. Si era true pasa a false y viceversa Operador Y, si ambos son verdaderos vale verdadero Operador O, vale verdadero si alguno de los dos es verdadero Verdadero si alguno de los dos es true pero nunca ambos True si ambos lo son

|| Operadores condicionales == != > < >= <=

True si alguno lo es

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

Instrucciones Secuenciales
Ahora, si consideramos nuestro primer pseudocdigo, podramos calcular el rea de un crculo en php utilizando la siguiente sintaxis.

Si hacemos vista previa en el navegador, podremos observar:

Aunque claro, no es algo demasiado agradable a la vista, podemos entonces agregarle algn texto para mejorar la apariencia de nuestro resultado:

NOTESE: que para concatenar cadenas de texto y variables no se utilizan , con en pseudocdigo, sino . En el navegador seria:

Otra forma de expresar este mismo resultado hubiera sido:

Y el resultado sera el mismo pues en php las variables embebidas en el texto son tratadas como tales. Aunque queda algo tosco esa es la idea, claro que podramos agregarle estilos CSS y seguro quedara mucho mejor, sin embargo ese es un tema que tocamos en el primer curso, y no hace falta que volvamos a tocarlo. Aqu estamos aprendiendo a programar. Se supone que ya el diseo es cosa de nios ;-).

Instrucciones Selectivas
En pseudocdigo, llambamos al elemento que defina una sentencia condicional si en php dicho elemento es if y su sintaxis es la siguiente. Recordemos aquel ejemplo en el que evalubamos si una persona tena o no edad para ingerir alcohol. Si traducimos nuestro pseudocdigo a PHP sera algo ms o menos as (obviando la entrada de datos que veremos ms adelante):

Ahora, basados en este ejemplo podemos deducir que la sintaxis es: if (Condicin) { Instruccin 1; Instruccin 2; } else { Instruccin A; Instruccin B; }; Es importante observar que antes de else no se incluye un ; lo que indica al intrprete que no se ha terminado de ejecutar la sentencia condicional, si lo incluyramos habra un error de sintaxis. En php, podemos anidar nuestras sentencias condicionales tal y como lo estudiamos en el captulo I, pero adems en php podemos incluir condiciones adicionales dentro de la condicin principal utilizando la estructura elseif. Que funciona de la siguiente forma. Supongamos un programa que nos indique si un nmero tiene uno, dos o tres dgitos:

Dicho programa imprimira en el navegador:

Instrucciones selectivas mltiples Las instrucciones selectivas mltiples permiten al evaluar si una variable cualquiera toma X o Y valores. Su sintaxis es muy similar a la que describirnos con nuestro pseudocdigo. La palabra clave que delimita la estructura de control es switch, y su sintaxis, por ejemplo para una calculadora es:

Podemos observar un caso que bien puede aplicrsele a una calculadora muy rudimentaria, donde la variable $signo ser evaluada, y se realizara la operacin pertinente de acuerdo a su valor predefinido. NOTESE que la palabra break, indica que de cumplirse la condicin, inmediatamente el puntero sale de la declaracin switch. Y no se incluye en la ltima declaracin. El resultado en el navegador de la sentencia seria:

Instrucciones Repetitivas
Como hemos visto en captulos anteriores, las instrucciones repetitivas son aquellas que se repiten hasta que se cumpla una determinada condicin. Analizamos el ejemplo de Mientras y Para es hora de saber cmo representamos estas funciones en php.

En el caso de la sentencia while, su sintaxis y funcionamiento en php es muy similar a lo ya estudiado en nuestro capitulo de introduccin a la programacin. Es una sentencia que ejecuta un procedimiento mientras una condicin x sea verdadera. Por ejemplo, si quisiramos evaluar los nmeros del 1 al 100 evaluando aquellos que son divisibles entre tres, podramos ejecutar una sentencia que los recorra evalundolos uno por uno.

Este programa imprimira en el navegador:

Y es un claro ejemplo de la sintaxis de while, donde debemos delimitar el bucle agregando un lmite para la repeticin del ciclo y un mecanismo que permita que el programa eventualmente alcance dicha condicin, en este caso utilizamos un operador de autoincremento $i++ Php adems cuenta con la estructura para representada por la palabra clave for y cuya sintaxis es: for(inicializamos la variable; especificamos el incremento) establecemos la condicin;

Es probablemente una estructura mas cmoda cuando de trabajar con bucles definidos se trata, el mismo ejemplo anterior puede ser escrito utilizando la estructura repetitiva for.

Esto tendra el mismo resultado en el navegador, as pues obtendramos algo como esto:

Aunque claro, ninguno de estos programas es demasiado til, pues solo imprimen datos, no permiten al usuario ninguna clase de interaccin con la aplicacin, es por eso que en el siguiente captulo nos dedicaremos de lleno a la entrada y manipulacin de datos desde php.

Captulo III: La interaccin con el usuario


Aunque nuestros programas en este momento son funcionales y podramos generar un sitio completo escrito en php con solo la instruccin echo, nos hace falta mucho para programar aplicaciones en php, uno de los elementos primordiales que hemos omitido ha sido la interaccin con el usuario. Para el manejo de formulario, usualmente es necesario crear dos paginas, una con el formulario y otra que procese la informacin del mismo, claro que podramos hacerlo en la misma pgina, sin embargo por ahora, trabajaremos con un archivo que contenga el formulario y uno que procese los datos, es por eso que vamos a crear dos nuevos archivos. Uno llamado procesar.php y un .HTML llamado formulario.

Ahora vamos a trabajar sobre nuestro archivo .HTML, en el vamos a crear un campo de texto y le aadiremos un botn a nuestra interfaz, esto lo haremos entre las etiquetas:
<form> </form>

Estas indican que estamos creando un nuevo formulario, el mtodo de envi de las variables ser a travs del mtodo post, esto porque: Con GET los datos son encadenados al URL especificado en action, utilizando el tipo de codificacin especificado en el atributo enctype. Este mtodo se utiliza cuando los datos no modifican la base de datos, por ejemplo, al realizar una bsqueda, y los caracteres a enviar tienen que pertenecer obligativamente al conjunto ASCII.

Con el mtodo POST se realiza una transaccin mediante el protocolo HTTP, utilizando la codificacin enctype. Se utiliza para aplicaciones que modifican la base de datos de destino. As pues, el mtodo de envi de la variable se realiza de la siguiente forma:
<form method="post" action="procesar.php"> </form>

Con el atributo accin se especifica la pagina a la que se enva la informacin, claro que no voy a entrar en detalles con la sintaxis HTML pues no es el objetivo de este curso. Despus agregaremos una etiqueta y una caja de texto de la siguiente forma:
<form method="post" action="pagina2.php"> Ingrese su nombre: <input type="text" name="nombre"> <br> <input type="submit" value="confirmar"> </form>

OJO a los atributos de la caja de texto (nombre) pues este atributo ser el que recogeremos en nuestro archivo .php, por su parte el botn confirmar es el que ejecuta la accin procesar.php si ya has ledo TuSitioYa no tendras problemas con la sintaxis en HTML.

El resultado en el navegador de este documento es:

Ahora vamos a la parte que nos interesa, vamos a procesar el contenido de la caja de texto nombre Para eso, en nuestro archivo .php vamos a escribir la siguiente cadena:

Esto nos permitir recoger el valor de la caja de texto nombre y almacenarla en la variable $nombre. Podemos agregarle algn texto adicional para mejorar nuestra salida al usuario:

Esto generara algo mas o menos as:

Una vez que hacemos clic en confirmar

Podemos observar que nuestro programa ha recibido datos del usuario y los ha utilizado, aunque claro no ha hecho gran cosa. Y de hecho no podemos hacer demasiado con solo nuestra Caja de texto Es por eso que vamos a conocer otros elementos de un formulario y como trabajar con ellos a fin de delimitar las opciones que tiene el usuario y hacer funcionar mejor nuestro programa.

Control RadioBox
Vamos a escribir un pequeo formulario en el que incluiremos dos radio que son valores que el usuario puede seleccionar, puede seleccionar solo uno de ellos. Y se le asigna el valor con el atributo value Esta vez, aprovechando que podemos asignarle un valor esttico al radio, vamos a crear una pequea calculadora.

OJO que el name de los RadioBox es el mismo, esto porque el usuario solo podr seleccionar uno de ellos. En el navegador nuestro formulario se vera ms o menos as (a menos claro que hayan incluido estilos para mejorarle la apariencia):

Una vez creado el formulario, vamos a escribir nuestro procesar.php donde incluiremos un switch para evaluar cada operacin.

As pues, una vez que damos clic al botn Enviar consulta veremos algo como esto:

Claro que convendra ofrecer algn link para regresar a la pgina anterior, pero en principio, hemos creado una calculadora que puede sumar, restar multiplicar y dividir en PHP con la ayuda del control radio

Control Checkbox
Pero si necesitramos que el usuario pudiera seleccionar ms de una opcin de una lista predefinida? HTML nos ofrece un elemento muy interesante que nos permitira en efecto ofrecer al usuario la posibilidad de elegir ms de una opcin, su nombre es checkbox y su sintaxis para un programa cualquiera seria:

Como vemos, solo hemos reemplazado el control radio por el control checkbox en el mismo programa (al que hemos quitado un par de operaciones a fin de aclarar nicamente la funcin del control). OJO que esta vez, cada checkbox tiene un nombre distinto, ahora, nuestro programa en PHP seria:

Usamos la funcin isset() que nos permite evaluar si una variable toma algn valor, de esta evaluacin imprimimos la suma y la resta de los dos valores, el resultado de estos dos documentos en el navegador seria:

En caso de solo seleccionar suma veremos

En caso de seleccionar sumar y restar veremos en el navegador que una vez que se ha procesado la solicitud en PHP se ha evaluado la suma y la resta. Por lo que imprimir:

Control Select
Otro elemento que nos permite interactuar con el usuario mostrndole una lista de valores predefinidos es el control Select, que permite al usuario seleccionar una sola opcin de una lista. Usualmente se utiliza cuando las opciones son muchas (a diferencia del radiobox que se utiliza para listas ms reducidas)

Ahora, podemos observar que se ingresan las opciones entre la etiqueta Select cada una de las opciones por su parte se indican utilizando la etiqueta option, modificando solo un poco nuestra primera calculadora, obtendremos algo asi en PHP:

Y el resultado en nuestro navegador sera algo ms o menos as:

Y nuestro resultado:

Con que hemos creado una calculadora un poco ms profesional, o al menos de apariencia ms agradable para el usuario. Claro que nuestro objetivo va mucho ms all. Deseamos crear sitios dinmicos y hemos obviado uno de los controles ms importantes. El rea de texto.

Control TextArea

A diferencia de nuestro clsico textbox, el control rea de texto permite al usuario ingresar mltiples lneas de texto, aunque su sintaxis no es muy diferente de la sintaxis de un textbox.
<textarea name="nombre"></textarea>

Y la captura de datos desde este control tampoco es muy diferente. Solo hace falta agregar un $_request[nombre] para obtener los datos de una caja de texto. Por ser su funcionamiento idntico al de un textbox. No voy a detallarlo.

Funciones
Si bien no las estudiamos en nuestro captulo I, son sumamente importantes, y permiten crear programas muy complejos. En palabras sencillas son como algoritmos individuales que pueden ser llamados para la resolucin de un problema. Usualmente se declara una funcin cuando ejecutaremos el mismo procedimiento en ms de alguna ocasin, estas pueden contener parmetros; es decir, valores que sern reemplazados por otros al momento de ejecutarse la funcin. En PHP, las funciones se declaran de la siguiente forma: function nombre (parmetros) { instrucciones } Para llamar a una funcin basta con escribir su nombre y los parmetros que se le asignan; un ejemplo:

Como podemos observar, nicamente pasamos los parmetros a la funcin para hacerla funcionar valga la redundancia. Vale, pero eso ha sido muy sencillo. Ms adelante le daremos un uso ms prctico a las funciones.

Interaccin con bases de datos


Aunque hemos aprendido mucho sobre programacin estructurada, PHP no es un lenguaje demasiado funcional si no interacta con una base de datos. Y es que acceder y almacenar datos, es vital para cualquier aplicacin Web. La base de datos mas empleada para su uso con aplicaciones escritas en php es MySQL, adems de ser Open Source, es completamente gratuita; y viene por defecto en XAMPP. En este capitulo, vamos a desarrollar un pequeo CMS (Gestor de contenido) que nos permita, actualizar un sitio Web de forma dinmica. Adems, vamos a integrar nuestro sistema en un sitio escrito fundamentalmente en HTML. A partir de este momento, dejaremos un poco de lado la teora y nos enfocaremos en la prctica. Por tanto, vamos a configurar nuestro nuevo espacio de trabajo

Preparando nuestro espacio de trabajo


Vamos a escribir en nuestro navegador: http://localhost/phpmyadmin/ Y veremos una pantalla como esta:

Donde crearemos una nueva base de datos, en mi caso la nombre tusitioya a continuacin nos solicitara informacin para crear una nueva tabla, en mi caso la llamare artculos y constara de 4 campos.

id: Contendr un identificador nico para cada articulo, ser clave primaria y de tipo auto_incremento menu: Aqu almacenaremos el nombre que tendr cada elemento de nuestro men relacionado con nuestro articulo titulo: Aqu almacenaremos el titulo del articulo en cuestin arto: Aqu almacenaremos el titulo en si Tambin, podemos crear la tabla haciendo una consulta SQL desde el gestor de phpmyadmin
CREATE TABLE `base`.`articulos` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `menu` TEXT NOT NULL , `titulo` TEXT NOT NULL , `arto` TEXT NOT NULL ) ENGINE = MYISAM ;

Una vez que creamos nuestra tabla, ahora, como con cualquier programa vamos a disear un esquema que nos permita identificar cada uno de los elementos que necesitaremos para echar a andar nuestro programa. 1. INDEX En nuestro Index, vamos a presentar la informacin que deseamos que nuestros usuarios lean, adems vamos a mostrar un men dinmico que nos permita modificar el contenido de la pagina con solo un clic y en el mismo documento.

Para lograr esto, vamos a incluir tres archivos dentro de nuestro index, uno que lea las opciones pasadas por el men y muestre el contenido del articulo, uno que muestre el titulo del articulo y el propio contenedor para el menu, de modo que en nuestro index, vamos a incluir:

Como vemos, estoy utilizando el sitio que creamos en TuSitioYa como lienzo sobre el cual trabajar, de hecho nicamente he tomando mi index.html y le he cambiado la extensin a index.php, mas adelante veremos como hacer estos includes, por el momento nicamente estamos planteando los objetivos de este curso. 2. PANEL DE ADMINISTRACION Vamos a disear un pequeo panel de administracin donde poder agregar nuevo contenido, eliminar contenido viejo y adems editar el contenido ya existente.

Conexin con la base de datos


Vale, primero lo primero, para poder interactuar con los datos de una base de datos, tenemos que conectarnos con la misma, cierto?

Vamos a crear un nuevo archivo al que llamaremos conect.php en este almacenaremos los datos para conectarnos con nuestra base. La sintaxis para entablar una conexin con la base de datos es:

La funcin mysql_connect nos permite realizar la conexin con la base de datos, los parmetros de dicha funcin son (host,usuario,contrasea) si la conexin falla, entonces se ejecuta die es decir, imprimir que existe un problema en la conexin. Por otra parte, como quizs habrn adivinado, la funcin mysql_select_db nos permite seleccionar una tabla de la base de datos haciendo uso de un recurso de conexin (en este caso la variable conexin). Ahora, si ejecutamos este programa, no imprimir nada, pues no es un programa que podamos utilizar sino uno que vamos a incluir en la ejecucin de otro. Es importante que sealemos que para cualquier operacin con la base de datos es necesario incluir este script.

Alta de registros en una tabla


Esto se hace, llamando a la funcin INSERT de MySQL sin embargo, primero debemos definir Qu es lo que vamos a insertar en nuestra tabla? Crearemos un nuevo archivo llamado insertar.php y vamos a crear un pequeo formulario donde solicitaremos al usuario un nombre para el elemento del men, un titulo para el artculo y contenido para el mismo.

Hasta el momento, nada nuevo, crear un formulario es algo muy bsico y lo hemos practicado bastante en captulos anteriores, as que no vamos a detallar los elementos del mismo; Ahora la parte que nos interesa, el programa que procese los datos del formulario.

En principio, definimos un if (isset()){ }, para asegurarnos que la variable que enva el formulario exista, si esta existe entonces incluimos nuestro archivo conect.php que realiza la conexin a la base de datos y selecciona nuestra tabla. Para despus proceder a realizar la consulta. La funcin para realizar una consulta en nuestra base de datos es: mysql_query(consulta,recurso de conexin) Una vez hemos realizado la consulta, cerramos la conexin con MySQL, utilizando la funcin Y la consulta que vamos a realizar es: INSERT into tabla(campo1,campo2,campo3) VALUES (valor1, valor2, valor3)

mysql_close(recurso de conexion) Ejecutado el programa con xito, concluiremos con un mensaje que muestre que la ejecucin ha sido exitosa; Ahora, que sucede si ejecutamos nuestro programa, pues veremos algo como esto en el navegador:

Aunque estamos ingresando los datos de forma correcta en nuestra base de datos, No hay forma de que podamos verlos, por eso vamos a crear un documento que nos permita leer los datos que tenemos almacenados en nuestra base de datos. Ahora, OJO lo que necesitamos es un script que lea un determinado articulo, es decir que debemos pasarle una variable al script.

Pasar una variable por URL


Algo interesante en php, es que podemos pasar una variable aun determinado archivo con solo enviarla a travs de la URL. Para hacerlo, utilizamos la siguiente sintaxis <a href=archivo.php?variable=valor>Enlace</a> Para capturar esta variable en nuestro archivo.php debemos utilizar el mtodo $_GET[variable] De modo que para mostrar la variable variable vamos a utilizar la siguiente sintaxis <?php Echo $_GET[variable]; ?>

Seleccin de registros en una tabla


Hecha esta aclaracin, vamos a crear un archivo al que llamaremos leer.php, y su contenido ser:

Vamos por partes, en principio capturamos la variable op, esta variable la enviaremos a travez del menu, despus evaluamos si la variable $opcion existe, si es as significa que se he enviado una variable por la URL y por tanto vamos a realizar una consulta a la base de datos para mostrar el contenido asignado al id de la variable. Para eso, en primera instancia vamos a incluir nuestro archivo conect.php, y despus haremos un query del tipo select cuya sintaxis es: SELECT campo FROM tabla WHERE campo = valor Ahora, algo importante es que el realizar esta consulta NO devuelve el valor del campo, nicamente almacena en la variable $respuesta una referencia a los datos almacenados en el campo seleccionado. Para recuperar esos datos hacemos uso de un while y de la funcin mysql_fetch_array() esta funcion retorna un vector asociativo con los datos del registro rescatados. De modo que la variable $existe se transforma en un vector que contiene los datos rescatados de la consulta. Entonces, mientras $existe exista, el bucle while nos devolver el contenido de la clave [arto] Si acaso no se paso ninguna variable por la URL, el script devolver el contenido de la pagina de inicio (el ultimo echo que esta cortado en la imagen)

Ahora, como incluimos estos resultados en nuestro index.php? Exacto, es lo que estabais pensando, haremos un include en el area que destinemos para nuestro contenido, de esta forma:

Si corremos nuestro index.php en nuestro navegador veremos algo como esto:

Al no pasar ninguna variable a travs de la URL, nuestro script simplemente nos muestra la pagina que definimos por defecto, sin embargo si agregamos a nuestro index.php?op=1 VOILA! Veremos el contenido que ingresamos en nuestra base de datos, para el campo #1

Vamos por buen camino, sin embargo, aun nos hace falta crear un menu para acceder a los elementos de nuestro contenido. Vamos a crear un archivo menu.php y en el vamos escribir un script que liste los valores de la tabla para el campo menu con un formato de hipervnculo

El script es muy parecido al ejemplo anterior, con la nica diferencia que estamos solicitando en nuestra consulta una referencia a TODOS los datos del campo menu y TODOS los datos del campo id De esa forma, construimos un hipervinculo dinmico que pase por URL la variable correspondiente al id de nuestro articulo, para que leer.php pueda mostrar el contenido de dicho articulo. Cuando incluimos este script en nuestro index.php:

En principio, vamos a introducir el primer elemento de la lista, que corresponde a nuestro index.php y despus hacemos nuestro include del archivo que recin creamos, de modo que en el navegador veremos algo como esto:

nicamente, nos hace falta incluir los ttulos de nuestro contenido, esto lo hare con un archivo llamado leertitulos.php, que sera muy parecido a nuestro leer.php

Lo incluimos donde mas nos guste en nuestro index.php, aunque claro esto no hace falta que lo explique. Hemos terminado con nuestro index.php, y por ende con nuestro INDEX sin embargo nuestro panel de administracin aun esta muy incompleto y es que solo tenemos un formulario para ingresar datos a nuestra base de datos. Datos que eventualmente podramos necesitar editar o bien eliminar.

Dar de baja un registro en la tabla


Una tarea que vamos a realizar muy a menudo, es eliminar un registro, pero claro para eliminar un registro, primero necesitamos enlistarlos, esto lo haremos exactamente como en los ejemplos anteriores, crearemos un archivo al que llamaremos listedit.php y vamos a incluir el siguiente script

Como siempre, vamos a incluir nuestro archivo conect.php de modo que accedamos a nuestra base de datos. En este script se envia el parametro del a travez de la URL dentro del while, si este parametro es enviado entonces se ejecuta el query: DELETE FROM tabla DONDE campo=valor Si no se enva este valor, nicamente seguimos ejecutando el script que enlista cada uno de los elementos de nuestra base de datos, sin embargo no hace falta que detalle esto pues hemos hablado suficiente de cmo enlistar valores. La nica diferencia con los ejemplos anteriores es que los enlistamos a modo de tabla. Esto en el navegador, Se vera ms o menos as:

Aunque editar por supuesto aun no funciona pues no hemos creado nuestra pgina de edicin.

Actualizar un registro en la base de datos


Vale, ahora vamos a crear una pgina donde podamos editar nuestros datos, vamos a llamarle editar.php y vamos a crear el siguiente formulario:

Probablemente os preguntarais que es eso de hidden pues un campo oculto no es mas que un elemento de formulario que no se puede editar, lo utilizaremos para almacenar el valor de la variable antes de ser modificada. Con respecto a $mostrar[campo] si, es exactamente lo que creen, parte de un php que aun no hemos escrito, pero que llamara a dichos valores desde una base de datos.

Efectivamente, lo nico nuevo en este script es la consulta a MySQL que no es mas que: UPDATE tabla SET campo=valor_nuevo WHERE campo=valor_viejo De igual forma, definimos si se ejecuta uno u otro segmento del script considerando las acciones del usuario, Veamos el script completo:

Y en el navegador, si hacemos click en editar de nuesto listedit.php, veremos algo como esto:

De modo que de esta forma podemos editar los elementos de nuestra base de datos, pero vamos a ponerlo todo junto para crear un precario panel de administracin, pero que valga para esta gua introductoria. Ahora, este panel de administracin debe estar protegido pues no deseamos que cualquier usuario de nuestro sitio tenga acceso a modificar nuestra informacin.

Creando un sistema de autentificacin


Estamos considerando que nuestro sitio nicamente ser editado por una persona, por lo que haremos un sistema de autentificacin muy bsico para nuestro panel de administracin. En primera instancia, vamos a mover todos los archivos que pertenecen al panel de administracin a una carpeta del mismo nombre, en mi caso he creado un archivo index2.php donde he incluido el contenido de los otros archivos. (esto no hace falta explicarlo pues lo hemos visto para nuestro index.php) en la misma carpeta, vamos a crear un nuevo documento de nombre index.php Vamos a crear un formulario que solicite al usuario el username y la contrasea para entrar al rea de administracin:

Ahora, Vamos a introducir un cartelito que diga Introduce tu clave si no se ha enviado ninguna, o bien Clave equivocada si el usuario ha introducido una clave incorrecta.

Entonces, en el navegador no veremos mas que un formulario, sin embargo dado que el archivo login.php aun no existe, es un formulario que no tiene ninguna utilizad, por eso, vamos a crear un nuevo documento llamado login.php En esta pagina, mediante una clusula condicional evaluamos si los valores del campo corresponden a los del usuario del panel de administracin:

Si los datos corresponden, entonces creamos una sesin con la funcin session_start(); tambin podramos usar una cookie, pero una variable de sesin es mas segura que una cookie pues se almacena en el servidor. Despus, asignamos un valor a nuestra variable de sesin en $_SESSION[valor asociativo] y procedemos a redireccionar al usuario a nuestro index2.php si la contrasea no es correcta, unidamente mandamos al usuario a la pagina index.php con un valor de retorno. Si probamos este sistema, en teoria funciona sin embargo un usuario podria simplemente escribir en el navegador url/administracin/index2.php y tendria acceso a nuestro panel de administracin, entonces debemos restringir ese acceso. Para eso vamos a crear un nuevo archivo que incluiremos en todos los documentos que deseemos restringir, le llamaremos llave.php

En este script, evaluamos si el contenido de la variable $_SESSION es si, contenido que se le asigna tras comprobarse que el campo de username y pass corresponde con la clave y contrasea, si el contenido de la variable $_SESSION es diferente de si entonces enviamos al usuario a la pagina de login.

Ahora, solo hace falta incluir el archivo llave.php en cada uno de los archivos que deseamos restringir.

De modo que si intentamos acceder a los mismos por URL, nos enviara a la pagina de login. Ahora solo hace falta crear un documento que finalice la session del usuario, yo le llamare salir.php

Un link a este archivo permitir al usuario terminar la session, aunque si no hace click la sesin terminara al cabo de un determinado tiempo de inactividad. Finalmente hemos creado un sitio interactivo, con contenido dinamico, que probablemente puede quedar mucho mejor, pero eso lo dejo a su creatividad, mi objetivo con este pequeo curso es unicamente mostrar las nociones basicas para la creacin de un sitio web dinamico con el uso de php y MySQL, mas adelante en futuros cursos aprenderemos un poco mas sobre JavaScript y DHTML.

Donde pedir ayuda?


Si no entiendes algo, o tienes problemas con este curso, puedes escribirnos en nuestro foro http://revolutionteam.info donde con gusto el equipo de desarrolladores y administradores del sitio te ayudaremos con tus dudas, o que mejor. Si tienes sugerencias o hay algo que podria ser mejor en este curso. Avisanos

Vous aimerez peut-être aussi