Você está na página 1de 30

1.

INTRODUCCIN A LA SINTAXIS DE PHP

Explicamos las pautas principales a seguir para incluir PHP en el cdigo de nuestra pgina, la forma de introducir comentarios. PHP se escribe dentro de la propia pgina web, junto con el cdigo HTML y, como para cualquier otro tipo de lenguaje incluido en un cdigo HTML, en PHP necesitamos especificar cules son las partes constitutivas del cdigo escritas en este lenguaje

MODOS DE ABRIR Y CERRAR LAS ETIQUETAS ETIQUETAS


!" y "# !$ y $# !"p%p y "# !script language&'p%p'#

DEFINICIONES

TIPOS DE COMENTARIOS ETIQUETAS


(( + (, y ,(

DEFINICIONES
)omentario de una l*nea )omentario de una l*nea )omentario de varias lineas

2. VARIABLES EN PHP VARIABLES NUMERICAS


.nteros 4eal /entero&01102 /real&5 676892 -lmacenan cifras 3umeros sin decimales 3umeros con o sin decimal -lmacenan te:tos compuestos de n;meros y(o cifras /cadena&=Hola amigo= -lmacenan series de informaciones num<ricas y(o alfanum<ricas /sentido?6@&=ver=2 /sentido?0@&=tocar=2 /sentido?5@&=oir=2 /sentido?7@&=gusto=2A /sentido?8@&=oler=2 >e trata de conjuntos de variables y funciones asociadas

VARIABLES ALFNUMERICAS
)adenas -lmacenan variables alfanum<ricas

TABLAS
-rrays >on las variables que guardan las tablas

OBJETOS

COMBINACIONES DE OPERACIONES TIPO


.ntre cadenas y numeros

EJEMPLO
<? $cadena="5"; //esto es una cadena $entero=3; //esto es un entero echo $cadena+$entero ?> <?php $foo = 'Bob'; // Asigna e !a or 'Bob' a $foo $bar = "$foo; // #eferencia $foo !$a $bar% $bar = "&i no'bre es $bar"; // &odifica $bar%%% echo $foo; // $foo ta'bi(n se 'odifica% echo $bar; ?>

RESULTADO
B

Cariables asignadas por referencia D colocar un =E= antes del nombre de la variableF

Mi nombre es GobMi nombre es Gob

3. CAMBIO DEL TIPO DE LAS VARIABLES EN PHP


PHP no requiere que indiquemos el tipo que va a contener una variable, sino que lo deduce del valor que asignemos a la variable Not ! Se excluyen en este caso el cambio de variables a tipo Array porque puede darse el caso de que una l nea de cdigo pueda significar dos cosas.
$a = ")"; //$a es una cadena $a*+, = "f"; //-.sta'os editando e

$ndice de

a cadena o for/ando a arra0?

Fo"# $o .n cualquier caso, podemos forHar una variable para que cambie de tipo con la funcin setTypeDF
set10pe2$!ariab e3"nue!o4tipo"5;

la funcin setTypeDF actualiHa el tipo de /variable a =nuevoItipo= y devuelve un boleano indicando si %ubo <:ito o no en la conversin .ntre =nuevoItipo= tenemosJ =integer=, =double=, =string=, =array=, =object=
$!ariab e = "63"; $!ariab e = 2int5 $!ariab e;

LOS FOR%ADOS PERMITIDOS TIPOS


DintF, DintegerF DrealF, DdoubleF, DfloatF DstringF DarrayF DobjectF entero DintegerF doble DdoubleF cadena DstringF array DarrayF objeto DobjectF

FUERZA A

&.VARIABLES EN SISTEMA EN PHP VARIABLE


/HTTPIK>.4I-L.3T

DESCRIPCIN
3os informa principalmente sobre el sistema operativo y tipo y versin de navegador utiliHado por el internauta >u principal utilidad es que podemos redireccionar nuestros usuarios %acia pginas optimiHadas para su navegador

/HTTPI-)).PTIL-3LK-L. 3os devuelve la o las abreviaciones de la lengua considerada como principal por el navegador 4esulta ;til para enviar al internauta a las pginas escritas en su lengua /HTTPI4.M.4.4 3os indica la K4L desde la cual el internauta %a tenido acceso a la pgina Muy interesante para generar botones de =-trs= dinmicos o para crear nuestros propios sistemas de estad*sticas de visitas 3os devuelve una cadena con la K4L del script que est siendo ejecutado Muy interesante para crear botones para recargar la pgina >e trata de un array que almacena los nombres y contenidos de las variables enviadas al script por K4L o por formularios L.T >e trata de un array que almacena los nombres y contenidos de las variables enviadas al script por medio de un formulario PN>T >e trata de un array que almacena los nombres y contenidos de las cooQies Ceremos qu< son ms adelante -lmacena la variable usuario cuando se efect;a la entrada a pginas de acceso restringido -lmacena la variable password cuando se efect;a la entrada a pginas de acceso restringido Muestra la direccin PP del visitante 3os devuelve el pat% f*sico en el que se encuentra alojada la pgina en el servidor Luarda el identificador de sesin del usuario

/PHPI>.LM /HTTPIL.TIC-4> /HTTPIPN>TIC-4> /HTTPI)NNOP.IC-4> /PHPI-KTHIK>.4 /PHPI-KTHIPR /4.MNT.I-SS4 /SN)KM.3TI4NNT /PHP>.>>PS

VARIABLES SUPERGLOBALES
se definen automticamente en un mbito global.

TIPOS
/LLNG-L> /I>.4C.4 /IL.T /IPN>T /I)NNOP. /IMPL.> /I.3C /I4.TK.>T

DESCRIPCIN
)ontiene una referencia a cada variable disponible en el espectro de las variables del script Las llaves de esta matriH son los nombres de las variables globales Cariables definidas por el servidor web directamente relacionadas con el entorno en don el script se esta ejecutando Cariables proporcionadas al script por medio de HTTP L.T Cariables proporcionadas al script por medio de HTTP PN>T Cariables proporcionadas al script por medio de HTTP cooQies Cariables proporcionadas al script por medio de la subida de fic%eros via HTTP Cariables proporcionadas al script por medio del entorno Cariables proporcionadas al script por medio de cuaquier mecanismo de entrada del usuario y por lo tanto no se puede confiar en ellas La presencia y el orden en que aparecen las variables en esta matriH es definido por la directiva de configuracin variablesIorder Cariables registradas en la sesin del script

/I>.>>PN3

'. MBITO DE LAS VARIABLES EN PHP MBITO


lugar o lugares donde las variables tienen valide!

TIPO

DESCRIPCIN

EJEMPLO
// dec ara'os e uso de !ariab es g oba es echo $'i!ariab e; echo $otra!ariab e; function 'ifuncion257 g oba $'i!ariab e3 //!ariab e g oba echo $'i!ariab e; echo $otra!ariab e; // !ariab e

Llobales Las variables creadas "fuera# function 'ifuncion257 g oba $'i!ariab e3 $otra!ariab e de una funcin

locales

Las variables creadas "dentro# de una funcin

oca

(. OPERADORES OPERADORES $%&%'P(, )&)ES*+'P*'(,Operadores arit !ti"os T D


) W , >uma 4esta

Operadores de Operadores Operadores de i$"re e$to "o para"i#$ %#&i"os T


&& X&

Operadores "o 'i$ados T D

D
Pgualdad Sesigual Menor que

T
-nd Nr X

D
U N 3o

VV/variable -umenta de 6 el /variableV&61 >uma 61 a valor de /variable /variable WW/variable 4educe de 6 el /variableW&61 valor de /variable 4esta 61 a /variable

Multiplicacin !

/variable &=aY )oncatena las ado= cadenas /variable y =aYado=

Sivisin

!& #

Menor igual que Mayor que Mayor igual que

$ Sevuelve el resto de la divisin

#&

*. TABLAS O ARRAYS EN PHP ARRAYS TIPO


-rrays con numeros

EJEMPLO
$sentido*),="!er"; $sentido*6,="tocar"; $sentido*3,="oir"; $sentido*8,="gustar"; $sentido*5,="o er"; <? $'oneda*"espana",="9eseta"; $'oneda*"francia",=":ranco"; $'oneda*"usa",=";o ar"; ?>

-rrays con cadenas

E.E/P0( )E %A10A *(, A++A2S3


<? $pais=arra0 2 "espana" =>arra0 2 "no'bre"=>".spa<a"3 " engua"=>"=aste "'oneda"=>"9eseta" 53 "francia" =>arra0 2 "no'bre"=>":rancia"3 " engua"=>":ranc(s"3 "'oneda"=>":ranco" 5 5; echo $pais*"espana",*"'oneda", //>aca en panta ?> a? "9eseta" ano"3

3o %emos introducido punto y coma =2= al final de cada l*nea .sto es simplemente debido a que lo que %emos escrito puede ser considerado como una sola instruccin

FUNCIN
arrayIvalues DmiIarrayF asortDmiIarrayF y arsortDmiIarrayF countDmiIarrayF QsortDmiIarrayF y QrsortDmiIarrayF list D/variable6, /variable0 F&miIarray ne:tDmiIarrayF, prevDmiIarrayF, resetDmiIarrayF y endDmiIarrayF eac%DmiIarrayF

DESCRIPCIN
Lista los valores contenidos en miIarray Nrdena por orden alfab<tico directo o inverso en funcin de los valores 3os da el numero de elementos de nuestro array Nrdena por orden alfab<tico directo o inverso en funcin de las claves -signa cada una variable a cada uno de los valores del array 3os permiten movernos por dentro del array con un puntero %acia delante, atras y al principio y al final 3os da el valor y la clave del elemento en el que nos encontramos y mueve al puntero al siguiente elemento

+. TRABAJO CON TABLAS O ARRAYS EN PHP MODIFICAR EL N,MERO DE ELEMENTOS DE UN ARRAY TIPO DESCRIPCIN EJEMPLO Red("ir e% ta a)o de ($ arra*
4ecorta algunas .jemplo 6J .jemplo 0J array4slice$- casillas del arreglo, to ar e%e e$tos desde e% To ar e%e e$tos a sabiendo los *ndices i$di"e + ,asta e% -. partir de% /$di"e 0. de las casillas que <? echo "<p>"; deseamos conservar $entrada = arra0 //'odifico otra
2"&igue "3 "9epe"3 "@uan"3 "@u io"3 "9ab o"5; //'odifico e ta'a<o $sa ida = arra04s ice 2$entrada3 +3 35; //'uestro e arra0 foreach 2$sa ida as $actua 5 echo $actua % "<br>"; !e/ $sa ida = arra04s ice 2$sa ida3 )5; //'uestro e arra0 foreach 2$sa ida as $actua 5 echo $actua % "<br>"; ?>

RESULTADO
Res(%tado 01
&igue 9epe @uan @u io

Res(%tado 21
&igue 9epe @uan 9epe @uan

array4s5ift$- .sta funcin e:trae el el primer elemento del array y lo devuelve -dems, acorta la longitud del array eliminando el elemento que estaba en la primera casilla

<? &igue $entrada = arra0 2"&igue "3 "9epe"3 9epe "@uan"3 "@u io"3 "9ab o"5; @uan //Auito a pri'era casi a @u io $sa ida = arra04shift 2$entrada5; 9ab o //'uestro e arra0 echo "Ba funciCn de!ue !e? " % $sa ida % Ba funciCn "<br>"; de!ue !e? foreach 2$entrada as $actua 5 echo $actua % "<br>"; 9epe echo "<p>"; @uan //Auito a pri'era casi a3 Aue ahora @u io ser$a a segunda de arra0 origina 9ab o $sa ida = arra04shift 2$entrada5; echo "Ba funciCn de!ue !e? " % $sa ida % "<br>"; //'uestro e arra0 foreach 2$entrada as $actua 5 echo $actua % "<br>"; ?>

unset$-

<? $estadios4futbo = arra02"Barce ona"=> "Dou =a'p"3"#ea &adrid" => ">antiago destruir una variable Bernabeu"3"Ea encia" => "&esta a"3"#ea >ociedad" => "Anoeta"5; dada //'ostra'os os estadios foreach 2$estadios4futbo as $indice=>$actua 5 echo $indice % " FF " % $actua % "<br>"; echo "<p>"; //e i'ina'os e estadio asociado a rea 'adrid unset 2$estadios4futbo *"#ea &adrid",5; //'ostra'os os estadios otra !e/ foreach 2$estadios4futbo as $indice=>$actua 5 echo $indice % " FF " % $actua % "<br>"; ?>

>e utiliHa para

A( e$tar e% ta a)o de ($ arra*


array4pus5 Pnserta al final del array una serie de casillas, el n;mero de casillas del array aumentar en tantos elementos como se %ayan indicado en el parmetro de la funcin
<? $tab a = arra0 2"BagartiGa"3 "Ara<a"3 "9erro"3 "Hato"3 "#atCn"5; //au'enta'os e ta'a<o de arra0 arra04push2$tab a3 "HorriCn"3 "9a o'a"3 "Iso"5; foreach 2$tab a as $actua 5 echo $actua % "<br>"; ?>

Lagartija -raYa Perro Lato 4atn Lorrin Paloma Nso

Array4merge Knion de dos arrays <? $tab a = arra0 2"BagartiGa"3 "Ara<a"3 $-

Lagartija -raYa "9erro"3 "Hato"3 "#atCn"5; Perro $tab a6 = arra0 Lato 2")6"3"38"3"85"3"56"3")6"5; 4atn $tab a3 = arra0 2">auce"3"9ino"3"DaranGo"3"=hopo"3"9erro 60 57 "3"38"5; 78 //au'enta'os e ta'a<o de arra0 80 $resu tado = arra04'erge2$tab a3 $tab a63 $tab a35; 60 foreach 2$resu tado as $actua 5 >auce echo $actua % "<br>"; Pino ?> 3aranjo 1a'bi(n pueden introducirse nue!as )%opo casi as? Perro $tab a = arra0 57 2">auce"3"9ino"3"DaranGo"5;
$tab a*3,="A garrobo";

-. CADENAS EN PHP CADENAS EN PHP


E6emplo 7
$cadena=".sta es a infor'aciCn de 'i !ariab e"; echo $cadena; //sacar$a ".sta es a infor'aciCn de 'i !ariab e" echo ".sta es a infor'aciCn de 'i !ariab e"; //dar$a e

E6emplo 8
<? $cadena)="9erro"; $cadena6=" 'uerde"; $cadena3=$cadena)%$cadena6; echo $cadena3; //. resu tado es? "9erro 'uerde" ?>

E6emplo 9
<? $a=55; $'ensaGe="1engo $a a<os"; echo $'ensaGe; //. resu tado es? "1engo 55 a<os" ?>

'is'o resu tado

CARACTERES ESPECIALES $dento de las comillasCAR3CTER


\/ \= \\ \B(0 \t \n \r

EFECTO DE LA CADENA
.scribe dlar en la cadena .scribe comillas en la cadena .scribe contrabarra en la cadena .scribe B(0 y no 7 en la cadena Pntroduce una tabulacin en nuestro te:to )ambiamos de l*nea 4etorno de carro

DIFERENCIA ENTRE ./ 0 12"3 E$ p,p45'od*657 te8to 7659'od*6:1


<J1&B> <J.A;> <1K1B.>ca'bio inea%php</1K1B.> </J.A;> <BI;L> <? echo "Jo a3 Mn sigo en a 'is'a $nea eGecutada pero no en cCdigo fuente%<br>Ahora ca'bio de $nea eGecutada pero continuo en a 'is'a en e cCdigo fuente%" ?> </BI;L> </J1&B>

E$ ;TML45'od*6 te8to 59'od*6:1


<J1&B> <J.A;> <1K1B.>ca'bio inea%php</1K1B.> </J.A;> <BI;L> Jo a3 sigo en a 'is'a $nea eGecutada pero no en cCdigo fuente%<br>Ahora ca'bio de $nea eGecutada pero continuo en a 'is'a en e cCdigo fuente%</BI;L> </J1&B>

14. FUNCIONES EN PHP


0a funcin podr a ser definida como un con6unto de instrucciones que explotan ciertas variables para reali!ar una tarea ms o menos elemental. 0as funciones integradas en PHP son muy fciles de utili!ar. %an slo 5emos de reali!ar la llamada de la forma apropiada y especificar los parmetros y:o variables necesarios para que la funcin realice su tarea. 0o que puede parecer ligeramente ms complicado, pero que resulta sin lugar a dudas muy prctico, es crear nuestras propias funciones. )e una forma general, podr amos crear nuestras propias funciones para conectarnos a una base de datos o crear los encabe!ados o etiquetas meta de un documento H%/0. .jemplo de creacin de una funcin J Dcrea el encabeHado de nuestro documento HTML y coloca el titulo que queremos a la pginaF
<? function hacer4encabe/ado2$titu o5 7 $encabe/ado="<ht' ><head>t<tit e>$titu o</tit e></head>";

echo $encabe/ado; N ?>

.sta funcin podr*a ser llamada al principio de todas nuestras pginas de la siguiente formaJ
$titu o="&i Oeb"; hacer4encabe/ado2$titu o5;

Se esta forma automatiHamos el proceso de creacin de nuestro documento La forma de incluirlos en nuestro script es a partir de la instruccin require o includeJ requireD=libreria p%p=F o includeD=libreria p%p=F .jemploJ
<? //funciCn de encabe/ado 0 co ocaciCn de function hacer4encabe/ado2$titu o5 7 $encabe/ado="<ht' >n<head>nt<tit e>$titu o</tit e>n</head>n"; echo $encabe/ado; N ?> titu o

Por otra parte tendr*amos nuestro script principal pgina p%p Dpor ejemploFJ
<? inc ude2" ibreria%php"5; $titu o="&i Peb"; hacer4encabe/ado2$titu o5; ?> <bod0> . cuerpo de a pQgina

</bod0> </ht' >

%odas las funciones ir clasificndolas en distintos arc5ivos por temtica3 ;unciones de conexin a bases de datos, funciones comerciales, funciones generales, etc. %ambi<n puede resultar muy prctico el utili!ar una nomenclatura sistemtica a la 5ora de nombrarlas

11. MAS SOBRE FUNCIONES! PASO DE PARMETROS PASO DE PARMETROS


Los parmetros son los datos que reciben las funciones y que utiliHan para realiHar las operaciones de la funcin Kna funcin puede recibir cualquier n;mero de parmetros, incluso ninguno - la %ora de definir la funcin, en la cabecera, se definen los parmetros que va a recibir
function f) 2$para'etro)3 $parQ'etro65

Los parmetros tienen un mbito local a la funcin donde se estn recibiendo

TIPOS DE PASO DE PAR3METROS


Por valor

DESCRIPCIN

EJEMPLO

RESULTADO

.l cambio de un dato de un parmetro no actualiHa el dato de la variable que se pas a la funcin - pesar de que cambiemos el valor del parmetro dentro de la funcin, la variable original no se ve afectada por ese cambio el cambio del valor de un parmetro dentro de una funcin s* afecta al valor de la variable originalDcolocamos un =E= antes del parmetroF

function por!a or 2$para'etro)57 $para'etro)="ho a"; echo "<br>" % $para'etro); //i'pri'e "ho a" N $'i!ariab e = "esto no ca'bia"; por!a or 2$'i!ariab e5; echo "<br>" % $'i!ariab e; //i'pri'e "esto no ca'bia"

%ola esto no cambia

Por referencia

<? function porreferencia2"$cadena5 7 $cadena = '>i ca'bia'; N $str = '.sto es una cadena'; porreferencia 2$str5; echo $str; // K'pri'e '>i ca'bia' ?> function pordefecto 2$para'etro)="pepe"; $para'etro6=35 $para'etro) tiene co'o !a or por defecto "pepe"3 'ientras Aue $para'etro6 tiene 3 co'o !a or por defecto% >i a'a'os a a funciCn sin indicar !a ores a os parQ'etros3 estos to'arQn os !a ores asignados por defecto pordefecto 25 // $para'etro) !a e "pepe" 0 $para'etro6 !a e 3 >i a'a'os a a funciCn indicando un !a or3 este serQ tenido en cuenta para e pri'er parQ'etro% pordefecto 2"ho a"5 // $para'etro) !a e "ho a" 0 $para'etro6 !a e 3 AtenciCn3 esta'os ob igados a dec arar todos os parQ'etros con !a ores por defecto a fina %

>i cambia

por defecto

>irven para que los parmetros contengan un dato predefinido, con el que se inicialiHarn si no se le pasa ning;n valor en la llamada de la funcin Los valores por defecto se definen asignando un dato al parmetro al declararlo en la funcin

12. MS SOBRE FUNCIONES! RETORNO DE VALORES


0as funciones pueden retornar valores. Para ello se utili!a la palabra =return= indicando a continuacin el dato o variable que tienen que retornar. 0a funcin puede tener m>ltiples return, aunque slo devolver datos por uno de ellos cada ve! porque, cuando se llama a return, se termina la e6ecucin de la funcin devolviendo el dato indicado.

NOMBRE
funcin '?A

EJEMPLO
<? function i!a2$base3 $porcentaGe=)R57 return $base S $porcentaGe /)++; N echo i!a2)+++5 % "<br>"; echo i!a2)+++3T5 % "<br>"; echo i!a2)+3+5 % "<br>"; ?> function s'a 4nu'bers25 7 return arra0 2+3 )3 65; N ist 2$/ero3 $one3 $tOo5 = s'a 4nu'bers25;

E<PLICACIN
La funcin recibe un parmetro llamado /porcentaje con 6Z como valor por defecto Sevuelve el porcentaje dado aplicado a la base tambi<n indicada por parmetro -s* pues, en la primera ejecucin de la funcin, como no se indica el porcentaje, se mostrar el 6Z$ de 6111 .n la segunda, se muestra el [$ de mil y en la tercera, el 1$ de 61

RESULTADO
6Z1 [1 1

+etornar m>ltiples valores $usando array-

listDF se usa para asignar una lista de variables en /Hero valdr 1, una sola operacin /one valdr 6 y /two valdr 0

13. CONTROL DEL FLUJO EN PHP! CONDICIONES IF


Presentamos una de las %erramientas principales usadas para controlar el flujo de nuestros scriptsJ Los condicionales PM La programacin e:ige en muc%as ocasiones la repeticin de acciones sucesivas o la eleccin de una determinada secuencia y no de otra dependiendo de las condiciones espec*ficas de la ejecucin )omo ejemplo, podr*amos %acer alusin a un script que ejecute una secuencia diferente en funcin del d*a de la semana en el que nos encontramos .ste tipo de acciones pueden ser llevadas a cabo gracias a una paleta de instrucciones presentes en la mayor*a de los lenguajes .n este cap*tulo describiremos someramente algunas de ellas propuestas por PHP y que resultan de evidente utilidad Para evitar el complicar el te:to, nos limitaremos a introducir las ms importantes dejando de lado otras cuantas que podrn ser fcilmente asimilables a partir de ejemplos prcticos L 5 6o/$767o/85 79 )uando queremos que el programa, llegado a un cierto punto, tome un camino concreto en determinados casos y otro diferente si las condiciones de ejecucin difieren, nos servimos del conjunto de instrucciones if, else y elseif La estructura de base de este tipo de instrucciones es la siguienteJ if DcondicinF \ Pnstruccin 62 Pnstruccin 02

] else \

Pnstruccin -2 Pnstruccin G2

] Llegados a este punto, el programa verificar el cumplimiento o no de la condicin >i la condicin es cierta las instrucciones 6 y 0 sern ejecutadas Se lo contrario DelseF, las instrucciones - y G sern llevadas a cabo .sta estructura de base puede complicarse un poco ms si tenemos cuenta que no necesariamente todo es blanco o negro y que muc%as posibilidades pueden darse .s por ello que otras condiciones pueden plantearse dentro de la condicin principal Hablamos por lo tanto de condiciones anidadas que tendr*an una estructura del siguiente tipoJ if Dcondicin6F \ Pnstruccin 62 Pnstruccin 02

] else \ if Dcondicin0F \ Pnstruccin -2 Pnstruccin G2

] else \ Pnstruccin ^

] ] Se este modo podr*amos introducir tantas condiciones como queramos dentro de una condicin principal Se gran ayuda es la instruccin elseif que permite en una sola l*nea introducir una condicin adicional .ste tipo de instruccin simpifica ligeramente la sinta:is que acabamos de verJ if Dcondicin6F \ Pnstruccin 62 Pnstruccin 02

elseif Dcondicin0F \ Pnstruccin -2 Pnstruccin G2

] else \ Pnstruccin ^

] .l uso de esta %erramienta resultar claro con un poco de prctica Pongamos un ejemplo sencillo de utiliHacin de condiciones .l siguiente programa permitir*a detectar la lengua empleada por el navegador y visualiHar un mensaje en dic%a lengua !HTML# !H.-S# !TPTL.#Setector de Lengua!(TPTL.# !(H.-S# !GNSU# !" ((-ntes de nada introducimos mensajes en forma de variables /espanol&=Hola=2 /ingles&=Hello=2 /frances&=Gonjour=2

((-%ora leemos del navegador cul es su lengua oficial /idioma&substrD/HTTPI-)).PTIL-3LK-L.,1,0F2

((Mormulamos las posibilidades que se pueden dar if D/idioma && =es=F \ec%o =/espanol=2] elseif D/idioma&&=fr=F \ec%o =/frances=2] else \ec%o =/ingles=2] "# !(GNSU# !(HTML#

E:86;t " 56"7<t Para poder ver el funcionamiento de este script es necesario cambiar el idioma preferido lo cual puede ser realiHado a partir del men; de opciones del navegador Para leer la lengua aceptada por el navegador lo que %acemos es definir una variable D@idiomaF y, mediante la funcin substr, recogemos las dos primeras letras del cdigo correspondiente al idioma aceptado por el navegador D/HTTPI-)).PTIL-3LK-L.F La tercera parte de script se encarga de ver si el navegador est en espaYol DesF, franc<s DfrF o en cualquier otro idioma que no sea ninguno de estos dos y de imprimir el mensaje que proceda en cada caso - notar que, cuando se trata de comparar variables, ponemos un doble igual =&&= en lugar de un simple =&= .ste ;ltimo queda reservado e:clusivamente para asignar valores a variables 2&.= Co/t"o> $8> 9>;:o 8/ PHP! B;6>85 I .structura y funcionamiento de los bucles w%ile y do(w%ile

Los ordenadores, como cualquier mquina, estn diseYados para realiHar tareas repetitivas .s por ello que nuestros programas pueden aprovec%arse de este principio para realiHar una determinada secuencia de instrucciones un cierto n;mero de veces Para ello, utiliHamos las estructuras llamadas en bucle que nos ayudan a, usando unas pocas l*neas, realiHar una tarea incluida dentro del bucle un cierto numero de veces definido por nosotros mismos PHP propone varios tipos de bucle cada uno con caracter*sticas especificasJ B;6>8 ?@7>8 >in duda el bucle ms utiliHado y el ms sencillo Lo usamos para ejecutar las instrucciones contenidas en su interior siempre y cuando la condicin definida sea verdadera La estructura sintctica es la siguiente w%ile DcondicinF \ instruccion62 instruccion02

] Kn ejemplo sencillo es este bucle que aumenta el tamaYo de la fuente en una unidad a cada nueva vuelta por el bucleJ !" /siHe&62 R%ile D/siHe!&ZF \ ec%o=!font siHe&/siHe#TamaYo /siHe!(font#!br#n=2 /siHeVV2 ] "# E:86;t " 56"7<t - modo de e:plicacin, diremos que, antes de nada, %emos de definir el valor de la variable que vamos a evaluar en la condicin -lgo absolutamente obvio pero fcil de olvidar .n este caso le %emos atribuido un valor de 6 que

corresponde a la letra ms pequeYa .l paso siguiente es crear el bucle en el que imponemos la condicin que la variable no e:ceda el valor de Z La instruccin a ejecutar ser imprimir en nuestro documento un cdigo HTML en el que la etiqueta font y el mensaje que contiene var*an a medida que @si!e cambia su valor .l siguiente paso es incrementar en una unidad el valor de /siHe .sto se puede %acer con una e:presin como la mostrada en el bucle D/siHeVVF que en realidad es sinnima deJ /siHe&/siHeV6 Ceremos otras de estas abreviaciones ms adelante Ot"o 8:8A<>o $8> 2;2>8 B@7>8 .l bucle w%ile se suele utiliHa cuando no se sabe e:actamente cuantas iteraciones se deben realiHar antes de acabar Camos a utiliHarlo en otro ejemplo, en el que %ay que recorrer una cadena %asta encontrar un carcter dado >i lo encuentra, escribir su posicin >i no, escribir que no se %a encontrado Not ! Para %acer este ejercicio necesitamos conocer la funcin de cadena strlenDF, que obtiene la longitud de la cadena que se le pase por parmetro int strlen Dstring cadF Sevuelve un entero igual a la longitud de la cadena !" /cadena & =%ola a todo el mundo=2

((recorro la cadena %asta encontrar una =m= /i&12 w%ile D/cadena?/i@X&=m= EE /i! strlenD/cadenaFF\ /iVV2 ]

if D/i&&strlenD/cadenaFF ec%o =3o se encuentra =2 else ec%o =.st en la posicin /i=2 "# .n este ejemplo se define una cadena con el valor =%ola a todo el mundo= Posteriormente se recorre esa cadena %asta el final de la cadena o %asta encontrar el caracter =m=, utiliHando una variable /i que lleva la cuenta de los caracteres recorridos -l final del bucle w%ile, si se sali porque se encontr el caracter =m=, la variable /i valdr un n;mero menor que la longitud de la cadema >i se sali por llegar al final de la cadena, la variable /i valdr lo mismo que la longitud en caracteres de esa cadena .n el condicional simplemente se comprueba si /i vale o no lo mismo que la longitud de la cadena, mostrando los mensajes adecuados en cada caso Podemos ver el ejemplo en funcionamiento

B;6>8 $oC?@7>8 .ste tipo de bucle no difiere en e:ceso del anterior La sinta:is es la siguienteJ do \ instruccion62 instruccion02

] w%ile DcondicinF La diferencia con respecto a los bucles A5ile es que este tipo de bucle eval;a la condicin al final con lo que, incluso siendo falsa desde el principio, <ste se ejecuta al menos una veH

2'.= Co/t"o> $8> 9>;:o 8/ PHP! B;6>85 II .structura y funcionamiento de los bucles for y foreac% .:plicamos como salir de un bucleJ GreaQ y continue

.ste es el segundo art*culo sobre los bucles en PHP que publicamos en el Manual de PHP .l anterior art*culo e:plic acerca de los bucles w%ile y doWw%ile -s* pues, a%ora vamos a dedicarnos a los otros tipos de bucles, que son el bucle for, para iterar un n;mero dado de veces, foreac%, ;til para recorrer arrays, as* como las sentencias breaQ y continue B;6>8 9o" PHP est provisto de otros tipos de bucle que tambi<n resultan muy prcticos en determinadas situaciones .l ms popular de ellos es el bucle for que, como para los casos anteriores, se encarga de ejecutar las instrucciones entre llaves La diferencia con los anteriores radica en cmo se plantea la condicin de finaliHacin del bucle Para aclarar su funcionamiento vamos a e:presar el ejemplo de bucleA5ile visto en el cap*tulo anterior en forma de bucle forJ !" Mor D/siHe&62/siHe!&Z2/siHeVVF \ ec%o=!font siHe&/siHe#TamaYo /siHe!(font#!br#n=2 ] "# E:86;t " 56"7<t Las e:presiones dentro del par<ntesis definen respectivamenteJ WPnicialiHacin de la variable Calida para la primera vuelta del bucle W)ondicin de evaluacin a cada vuelta >i es cierta, el bucle continua W-ccin a realiHar al final de cada vuelta de bucle B;6>8 9o"8 6@ .ste bucle, implementado en las versiones de PHP7, nos ayuda a recorrer los valores de un array lo cual puede resultar muy ;til por ejemplo para efectuar una lectura rpida del mismo 4ecordamos que un array es una variable que guarda un conjunto de elementos DvaloresF catalogados por claves La estructura general es la siguienteJ

Moreac% D/array as /clave&#/valorF \ instruccion62 instruccion02 2 ] Kn ejemplo prctico es la lectura de un array lo cual podr*a %acerse del siguiente modoJ !" /moneda&arrayD=.spaYa=&# =Peseta=,=Mrancia= &# =Mranco=,=K>-= &# =Solar=F2 Moreac% D/moneda as /clave&#/valorF \ ec%o =PaisJ /clave MonedaJ /valor!br#=2 ] "# E:86;t " 56"7<t .ste script se encargar*a de mostrarnos por pantalla el contenido del array @moneda 3o resultar*a mala idea crear una funcin propia basada en este bucle que nos permitiese visualiHar arrays monodimensionales y almacenarla en nuestra librer*a .sta funcin podr*a ser definida de esta formaJ Munction mostrarIarray D/arrayF \ Moreac% D/array as /clave&#/valorF \ec%o =/clave&#/valor!br#=2] ] B"8 D 0 6o/t7/;8 .stas dos instrucciones se introducen dentro de la estructura y nos sirven respectivamente para escapar del bucle o saltar a la iteracin siguiente Pueden resultarnos muy prcticas en algunas situaciones Surante una iteracin de un bucle podemos saltar directamente a la siguiente iteracin, sin seguir con la actual, con la instruccin continue Tambi<n podemos detener completamente las repeticiones de cualquier bucle con breaQ, lo que parar la ejecucin de la iteracin actual y de las siguientes que pudiera %aber R898"8/67 ! >i deseas ver la construccin de un bucle for y otros tipos de bucles, en v*deo te recomendamos el siguiente videotutorial .structuras de control, C*deo 0J bucles for, w%ile y doWw%ile -dems, si deseas aprender la estructura de control switc% y las instrucciones breaQ y continue, as* como ver otro ejemplo de foreac%, te recomendamos ver los Cideotutoriales de estructuras de control en PHP PP

-plicaciones webJ paso de variables y memoria de estados 2(.= P 5 " E "7 2>85 <o" > URL 6o/ PHP Ceremos cmo transferir variables de una pgina a otra por medio de la K4L, en PHP

Gucles y condiciones son muy ;tiles para procesar los datos dentro de un mismo script >in embargo, en un sitio Pnternet, las pginas vistas y los scripts utiliHados son numerosos Muy a menudo necesitamos que nuestros distintos scripts est<n conectados unos con otros y que se sirvan de variables comunes Por otro lado, el usuario interacciona por medio de formularios cuyos campos %an de ser procesados para poder dar una respuesta Todo este tipo de factores dinmicos %an de ser eficaHmente regulados por un lenguaje como PHP .s posible que ya os %ayis percatado de que las variables de un script tienen una valideH e:clusiva para el script y que nos resulta imposible conservar su valor cuando ejecutamos otro arc%ivo distinto aunque ambos est<n enlaHados .:isten varias formas de enviar las variables de una pgina a otra de manera a que la pgina destino reconoHca el valor asignado por el script de origenJ P 5 " E "7 2>85 <o" URL Para pasar las variables de una pgina a otra lo podemos %acer introduciendo dic%a variable dentro del enlace %iperte:to de la pgina destino La sinta:is ser*a la siguienteJ !a %ref&=destino p%p"variable6&valor6Evariable0&valor0E =#Mi enlace!(a# Pod<is observar que estas variables no poseen el s*mbolo / delante .sto es debido a que en realidad este modo de pasar variables no es espec*fico de PHP sino que es utiliHado por otros lenguajes -%ora nuestra variable pertenece tambi<n al entorno de la pgina destino.p5p y est lista para su e:plotacin Not ! 3o siempre se definen automticamente las variables recibidas por parmetro en las pginas web, depende de una variable de configuracin de PHPJ registerIglobals, que tiene que estar activada para que as* sea Cer comentarios del art*culo al final de la pgina para ms informacin Para aclarar posibles dudas, veamos esto en forma de ejemplo Tendremos pues dos pginas, origen.5tmlDno es necesario darle e:tensin PHP puesto que no %ay ning;n tipo de cdigoF y destino.p5pJ !HTML# !H.-S# !TPTL.#origen %tml!(TPTL.# !(H.-S# !GNSU# !a %ref&=destino p%p"saludo&%olaEte:to&.sto es una variable te:to=#Paso variables saludo y te:to a la pgina destino p%p!(a# !(GNSU# !(HTML# !HTML# !H.-S# !TPTL.#destino p%p!(TPTL.# !(H.-S# !GNSU# !" ec%o =Cariable /saludoJ /saludo !br#n=2

ec%o =Cariable /te:toJ /te:to !br#n= "# !(GNSU# !(HTML# E:86;t " 8:8A<>o FHTTPGHETGVARS 4ecordamos que es posible recopilar en una variable tipo array el conjunto de variables que %an sido enviadas al script por este m<todo a partir de la variable de sistema /HTTPIL.TIC-4>, que es un array asociativo KtiliHndolo quedar*a as*J !" ec%o =Cariable /saludoJ /HTTPIL.TIC-4>?=saludo=@ !br#n=2 ec%o =Cariable /te:toJ /HTTPIL.TIC-4>?=te:to=@ !br#n= "# Not ! -unque podamos recoger variables con este array asociativo o utiliHar directamente las variables que se definen en nuestra pgina, resulta ms seguro utiliHar /HTTPIL.TIC-4> por dos raHones, la primera que as* nos aseguramos que esa varible viene realmente de la K4L y la segunda, que as* nuestro cdigo ser ms claro cuando lo volvamos a leer, porque quedar especificado que esa variable estamos recibi<ndola por la K4L FGHET - partir de la versin 7 6 1 de PHP se %a introducido el array asociativo /IL.T, que es id<ntico a /HTTPIL.TIC-4>, aunque un poco ms corto de escribir C " 6t8"85 85<867 >85 8/ URL 0 5; 6o$7976 67I/ 6o/ PHP Hay algunos caracteres raros que no se pueden pasar, tal cual, por la K4L Por ejemplo, una K4L no puede contener espacios en blanco, por lo que si intentas enviar una variable por K4L con un valor que tiene un espacio en blanco, te dar problemas Por ejemplo, el signo =,= no puede figurar tampoco en una K4L -s* pues, tenemos que %acer algo para convetir esos caracteres, de modo que no den problemas en la K4L La solucin en PHP es sencilla, simplemente debemos codificar la variable que tiene caracteres conflictivos a formato K4L Para ello utiliHamos la funcin urlencondeDF, que viene en la librer*a de funciones de PHP Podemos encontrar ms informacin sobre esto en la M-TJ Problemas con variables pasadas en la K4L en algunos caracteres R898"8/67 ! >i lo deseas, puedes complementar esta informacin con unos e:plicativos videotutoriales

sobre el

paso de variables por L.T en PHP


2*.= P"o685 " E "7 2>85 $8 9o"A;> "7o5. POST 8/ PHP Ceremos cmo transferir variables con PHP, de una pgina a otra por medio de formularios, lo que se conoce %abitualmente por PN>T

.ste tipo de transferencia es de gran utilidad ya que nos permite interaccionar directamente con el usuario .l proceso es similar al e:plicado para las K4Ls Primeramente, presentamos una primera pgina con el formulario clsico a rellenar y las variables son recogidas en una segunda pgina que las procesaJ

Not ! 3o siempre se definen automticamente las variables recibidas por el formulario en las pginas web, depende de una variable de configuracin de PHPJ registerIglobals, que tiene que estar activada para que as* sea Cer comentarios del art*culo al final de la pgina para ms informacin !HTML# !H.-S# !TPTL.#formulario %tml!(TPTL.# !(H.-S# !GNSU# !MN4M M.THNS&=PN>T= -)TPN3&=destino0 p%p=# 3ombre!br# !P3PKT TUP.&=T.^T= 3-M.&=nombre=#!br# -pellidos!br# !P3PKT TUP.&=T.^T= 3-M.&=apellidos=#!br# !P3PKT TUP.&=>KGMPT=# !(MN4M# !(GNSU# !(HTML# !HTML# !H.-S# !TPTL.#destino0 p%p!(TPTL.# !(H.-S# !GNSU# !" ec%o =Cariable /nombreJ /nombre !br#n=2 ec%o =Cariable /apellidosJ /apellidos !br#n= "# !(GNSU# !(HTML# E:86;t " 8:8A<>o FHTTPGPOSTGVARS 4ecordamos que es posible recopilar en una variable tipo array el conjunto de variables que %an sido enviadas al script por este m<todo a partir de la variable de sistema /HTTPIPN>TIC-4> ec%o =Cariable /nombreJ = /HTTPIPN>TIC-4>?=nombre=@ =!br#n=2 Not ! -unque podamos recoger variables con este array asociativo o utiliHar directamente las variables que se definen en nuestra pgina, resulta ms seguro utiliHar /HTTPIPN>TIC-4> por dos raHones, la primera que as* nos aseguramos que esa varible viene realmente de un formulario y la segunda, que as* nuestro cdigo ser ms claro cuando lo volvamos a leer, porque quedar especificado que esa variable estamos recibi<ndola por un formulario

FGPOST - partir de PHP 7 6 1 se pueden recoger las variables de formulario utiliHando tambi<n el array asociativo /IPN>T, que es el mismo que /HTTPIPN>TIC-4>, pero ms corto de escribir E:8A<>o $8 "85t"7667I/ $8 6685o <o" 8$ $ Para continuar aportando ejemplos al uso de formularios vamos a realiHar una pgina que muestra solicita la edad del visitante y, dependiendo de dic%a edad, permita o no visualiHar el contenido de la web - los mayores de 6B aYos se les permite ver la pgina y a los menores no .l ejemplo es muy sencillo y no valdr*a tal cual est para utiliHarlo a modo de una verdadera restriccin de acceso _nicamente nos sirve para saber cmo obtener datos de un formulario y como tratarlos para realiHar una u otra accin, dependiendo de su valor La pgina del formulario, que %emos llamado edad p%p tendr*a esta formaJ !%tml# !%ead# !title#4estringir por edad!(title# !(%ead#

!body#

!form action&=edad0 p%p= met%od&=post=# .scribe tu edadJ !input type&=te:t= name&=edad= siHe&=0=# !input type&=submit= value&=.ntrar=# !(form#

!(body# !(%tml# .sta es una pgina sin ning;n cdigo PHP, simplemente tiene un formulario Mij<monos en el action del formulario, que est dirigido %acia una pgina llamada edad0 p%p, que es la que recibir el dato de la edad y mostrar un contenido u otro dependiendo de ese valor >u cdigo es el siguienteJ !%tml# !%ead# !title#4estringir por edad!(title# !(%ead#

!body#

!" /edad & /IPN>T?=edad=@2 ec%o =Tu edadJ /edad!p#=2

if D/edad ! 6BF \ ec%o =3o puedes entrar=2 ]else\ ec%o =Gienvenido=2 ] "# !(body# !(%tml# .speramos que este otro cdigo tampoco resulte e:traYo >implemente se recibe la edad, utiliHando el array /IPN>T Luego se muestra la edad y se ejecuta una e:presin condicional en funcin de que la edad sea menor que 6B .n caso positivo Dedad menor que 6BF, se muestra un mensaje que informa de que no se deja acceder al pgina .n caso negativo Dmayor o igual a 6BF se muestra un mensaje de bienvenida Podemos ver el ejemplo en funcionamiento

28.- Conceptos de programacin en PHP por la prctica

Vdeo en el que aclaramos y practicamos con conceptos bsicos de programacin como variables, estructuras de control, bucles, etc.

Vdeo en el que aclaramos practicamos con conceptos !sicos de programacin como "aria!les# estructuras de control# !ucles# etc.
En este vdeo explicamos algunos conceptos de programacin bsicos, orientados a personas que no saben programacin o que tienen poca experiencia programando. Es la tercera de una serie de tres clases gratuitas impartidas en DesarrolloWeb.com para acercarse al mundo de la programacin con ! . El ob"etivo es concretar en lneas de cdigo, y desde un punto de vista prctico, algunos de los conceptos vistos durante las dos primeras clases de ! para no#programadores, como son las variables, estructuras de control para la toma de decisin y para $acer bucles o repeticiones. %dems, queremos reali&ar alg'n e"emplo prctico que nos ayude a demostrar lo 'til que es ! para tareas del da a da de los desarrolladores, como es el envo y recepcin de un (ormulario. retendemos acercar el mundo de ! para personas que no tienen conocimientos de programacin de una manera rpida y dar re(erencias para seguir aprendiendo, as como presentar tambi)n lasegunda convocatoria del *urso de ! que estamos organi&ando en EscuelaIT. En este artculo encontrars los cdigos de los e"ercicios reali&ados en clase y

al (inal del todo, el vdeo de la propia clase, "unto con el turno de preguntas que nos reali&aron los estudiantes. *omen&amos la clase explicando cmo arrancar un servidor +eb para poder programar con ! en local, por si alguien todava anda perdido con ese asunto, y cmo colocar arc$ivos dentro del servidor para poder acceder a ellos desde ,local$ost,. % partir de ello reali&amos dos e"emplos$% Conceptos !sicos para la programacin con PHP % modo de primeros pasos, y de introduccin al mundo de la programacin y del lengua"e ! , en este e"emplo se mostraron en cdigo conceptos bsicos de la programacin. .. *omentarios /. Variables y tipos 0. 1peradores, aritm)ticos, de cadena, comparacin, asignacin 2. Estructuras de control para toma de decisiones 3. 4ucles El listado de cdigo que se reali& en directo es el siguiente<U;I=1L9. ht' >

<ht' > <head> <tit e>.G ) de 9J9</tit e> </head>

<bod0>

<h)>.sto0 en 9J9UU</h)> <?php

//codigo 9J9 //echo "Jo a 'undoUU";

// !ariab es $'i!ariab e = 6363; $!6 = "teVto";

//hacer a go con e echo $!6; echo "<br>";

as

//operaciones // )+8 // "ho a" % "'undo" // $!3 = "pepe";

/S .sto es un co'entario de 'uchas $neas S/

$contador = 5 + 5; $contador = $contador + )+;

echo $contador;

// estructuras de contro $edad = 38; if2$edad < )W57 echo ">i es 'enor de )W"; N

// repeticiones o buc es Ohi e2$contador < )++57 // todo esto se repetirQ echo "contador !a e " % $contador; echo "<br>"; $contador = $contador + T; N ?>

</bod0> </ht' >

2% E&emplo prctico de en"o

recepcin de un 'ormulario

En un segundo e"ercicio prctico de esta clase de ! se mostr lo (cil que es enviar datos desde un (ormulario a una pgina +eb y recibirlos para procesar y reali&ar acciones di(erentes seg'n sus valores.

5e explic que un (ormulario se $ace en !678, tal como estamos acostumbrados a $acer si ya $emos reali&ado pginas +eb en alguna ocasin. El cdigo de la pgina con el (ormulario !678 que reali&amos es el siguiente<U;I=1L9. ht' >

<ht' > <head> <tit e>:or'u ario</tit e> </head>

<bod0> <h)>.Ge'p o con for'u arios</h)> <for' 'ethod="post" action="recibeFfor'u ario%php"> Do'bre? <input t0pe="teVt" na'e="no'bre" !a ue=".scribe tu no'bre"> <br> .dad? <input t0pe="teVt" na'e="edad" !a ue=""> <br> <input t0pe="sub'it" !a ue=".n!iar"> </for'> </bod0> </ht' >

6oda la parte de ! se queda simplemente en la recepcin de los datos de ese (ormulario y su procesamiento, que en este e"emplo se reali& en una pgina y arc$ivo aparte. El procesamiento que se implement es muy sencillo, simplemente para darnos cuenta de que bsicamente con ! podemos acceder a los datos del (ormulario de una manera muy sencilla, a trav)s de los arrays 9: 156 y mencionando sus ,$ermanos, 9:;E6 o 9:<E=>E56. El e"emplo es muy simple, aunque poco a poco (uimos complicando un poco para introducir diversos m)todos de integrar cdigo ! en una pgina !678, por lo que el listado a continuacin puede parecer un poco comple"o en un primer vista&o, aunque en la clase se explica todo per(ectamente y paso a paso.
<U;I=1L9. ht' >

<ht' > <head> <'eta charset="utfFW" /> <tit e>recibo datos de for'</tit e>

</head>

<bod0>

<?php //recibo $no'bre4usuario = $49I>1*"no'bre",; $edad4usuario = $49I>1*"edad",;

//!a ido

os datos

//echo "Jo a " % $no'bre4usuario % " tu edad es " % $edad4usuario;

// to'a de decisiCn en funciCn de if2$edad4usuario >= )W57 ?> <di! st0 e="co or? b ue;"> <b> <?php

a edad

echo "Jo a $no'bre4usuario3 co'o tu edad es $edad4usuario3 puedes !er este contenidoUU"; ?> </b></di!> <?php Ne se7 //parte negati!a echo '<span st0 e="co or? red;">'; echo "Bo siento $no'bre4usuario3 no puedes !er esta pQginaUUU AdiCsU"; echo "</span>"; N

?>

</bod0> </ht' >

Vdeo completo de la tercera clase de PHP para no-programadores % continuacin puedes ver el vdeo completo de la clase en el que se reali&an

los e"emplos de cdigo anteriores, paso por paso, a lo largo de ?@ minutos. Esperamos que os sirva para aclarar muc$os conceptos y tambi)n que os resulte entretenido. <ecuerda que puedes seguir aprendiendo ! con nosotros de manera autodidacta con los manuales gratuitos de DesarrolloWeb.com en la seccin y que si te interesa aprender de manera intensiva, guiada y personali&ada, con clases en vivo durante las prximas semanas, puedes apuntarte con nosotros al *urso completo de ! . %ttpJ((www youtube com(watc%"feature&playerIembeddedEv&BoK4TMqIp)1

2(.- )utollamada de pginas


ginas que se llaman a si mismas pasando datos por 156 o ;E6- (ormularios reentrantes y variables pasadas por ><8 a la misma pgina. %l incluir un (ormulario en una pgina se debe indicar, a trav)s del atributo action, el nombre del arc$ivo ! al que enviaremos los datos escritos en el (ormulario. De este modo, para un esquema de envo de datos por (ormulario, pueden participar dos pginas- una que contiene el (ormulario y otra que recibe los datos de dic$o (ormulario. 8o mismo ocurre cuando enviamos variables por una ><8. 6enemos una pgina que contendr el enlace y otra pgina que recibir y tratar esos datos para mostrar unos resultados. En el presente artculo vamos a ver cmo se puede enviar y recibir datos de un (ormulario con una 'nica pgina. %simismo, veremos como en la misma pgina podemos tener enlaces con paso de variables por ><8 y adems, podemos recoger y tratar esos datos con la misma pgina. % este e(ecto podemos llamarte ,autollamada de pginas,, tambi)n se le suele llamar como ,Aormularios reentrantes, o t)rminos similares. Es muy interesante conocer el modo de (uncionamiento de estos scripts, porque sern muy $abituales en nuestras pginas ! y ayudan muc$o a tener los cdigos ordenados. En ambos casos, para (ormularios o envo de datos por la ><8, se debe seguir un esquema como este# *omprobar si recibo datos por ><8 o por (ormulario # 5i no recibo datos

# 7uestro el (ormulario o los enlaces que pasan variables. # 5i recibo datos # Entonces tengo que procesar el (ormulario o las variables de la ><8 Para un 'ormulario Veamos a continuacin como sera el cdigo de un (ormulario reentrante.
<ht' > <head> <tit e>&e </head> a'o a 'i 'is'o%%%</tit e>

<bod0> <? if 2U$49I>157 ?> <for' action="autoF a'ada%php" 'ethod="post">

Do'bre? <input t0pe="teVt" na'e="no'bre" si/e="3+"> <br> .'presa? <input t0pe="teVt" na'e="e'presa" si/e="3+"> <br> 1e efono? <input t0pe="teVt" na'e="te efono" si/e=)8 !a ue="+38 " > <br> <input t0pe="sub'it" !a ue=".n!iar"> </for'> <? Ne se7 echo "<br>>u no'bre? " % $49I>1*"no'bre",; echo "<br>>u e'presa? " % $49I>1*"e'presa",; echo "<br>>u 1e (fono? " % $49I>1*"te efono",; N ?> </bod0> </ht' >

En el e"emplo, el primer paso es conocer si se estn recibiendo o no datos por un (ormulario. ara ello se comprueba con un enunciado i( si existe o no una

variable 9: 156. En concreto i( BC9: 156D querra decir algo como ,5i no existen datos venidos de un (ormulario,. En caso de que no existan, muestro el (ormulario. En caso de que s existan, reco"o los datos y los imprimo en la pgina. 5e puede ver el e"emplo en (uncionamiento en una pgina aparte. Para paso de "aria!les por *+, 8a idea es la misma. *omprobar con un enunciado i( si se reciben o no datos desde una ><8. Veamos el cdigo a continuacin. 5e trata de una pgina que muestra una serie de enlaces para ver las tablas de multiplicar de el . $asta el .@. *ada uno de los enlaces muestra una tabla de multiplicar. ulsando el primer enlace podemos ver la tabla del ., pulsando el segundo la tabla del /, etc. <ecordemos que la pgina se llama a si misma. ara comprenderla ms (cilmente ser interesante verla en (uncionamiento.
<ht' > <head> </head> <tit e>1ab as de 'u tip icar</tit e>

<bod0> <? if 2U$4H.157 for 2$i=);$i<=)+;$i++57 echo "<br><a href='!er4tab a%php?tab a=$i'>Eer N N e se 7 $tab a=$4H.1*"tab a",; ?> <tab e a ign=center border=) ce <? for 2$i=+;$i<=)+;$i++57 echo "<tr><td>$tab a X $i</td><td>=</td><td>" % $tab a S $i % "</td></tr>Mn"; padding=")"> a tab a de $i</a>Mn";

N ?> </tab e> <? N ?> </bod0> </ht' >

Este cdigo es un poco ms complicado, porque $ace un poco ms de cosas que el anterior, pero para el asunto que nos ocupa que es la autollamada de pginas, todo sigue igual de simple. !ay que (i"arse en el i( que comprueba si se reciben o no datos por ><8- i( BC 9:;E6D, que querra decir algo como ,5i no se reciben variables por la ><8,. En caso positivo Bno se reciben datos por ><8D se muestran los enlaces para ver cada una de las tablas y en caso de que s se reciban datos, se muestra la tabla de multiplicar del n'mero que se est recibiendo en la ><8. ara $acer para mostrar los enlaces y las tablas de multiplicar se utili&an bucles (or, que esperamos que no resulten desconocidos para el lector. uede conocerse algo ms sobre los bucles (or en *ontrol del (lu"o en ! - 4ucles EE.

Você também pode gostar