Diferencia entre revisiones de «Usuario:ManuelRomero/NewPHP/inaem 2018/resumen»
(→Estructuras de control) |
|||
Línea 265: | Línea 265: | ||
*Si pasamos un filtro, no podemos leer arrays. | *Si pasamos un filtro, no podemos leer arrays. | ||
*Siempre leeremos como una cadena de caracteres | *Siempre leeremos como una cadena de caracteres | ||
+ | |||
+ | ===Ver si enviamos un formulario=== | ||
+ | *Para ver si estoy accediendo a una página por que he hecho click en el submit de un formulario sería así | ||
+ | |||
+ | <source lang=html> | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <title></title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <fieldset> | ||
+ | <legend>Datos de acceso</legend> | ||
+ | <form action="index.php"method="POST"> | ||
+ | Nombre | ||
+ | <input type="text" name="nombre" id=""><br /> | ||
+ | Password | ||
+ | <input type="text" name="pass" id=""><br /> | ||
+ | |||
+ | <input type="submit" value="Validar" name="enviar"> | ||
+ | </form> | ||
+ | </fieldset> | ||
+ | </source> | ||
+ | *En este caso el php sería | ||
+ | <source lang=php> | ||
+ | if (isset($_POST['enviar'])) { | ||
+ | |||
+ | //Si estoy aquí es por que he hecho click en el submit cuyo name es enviar | ||
+ | |||
+ | } | ||
+ | </source> |
Revisión de 05:41 5 feb 2019
Instalación
- Apache
- php (cli y lib)
- mysql (cliente y servidor)
- netbeans
- (java)
- debug
Sintaxis básica
- Código embebido
<?php ..... ?>
- PHP es un lenguaje que se ejecuta en el servidor
- El cliente nunca verá ninguna instrucción en la página que el servidor le entrega
- Dónde poner le código
- En un mismo fichero puedo abrir y cerrar etiquetas
- El comportamiento es como si todo es un fichero, que es lo que es
<?php $titulo= "El título de la página " $trozosCodigo =0; ?> <source lang=php> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Probando cosas con título <?php echo $titulo; $trozosCodigo++;?></title> </head> <body> <?php echo "Otro trozo de código php "; $trozosCodigo+; ?> </body> <?php $trozosCodigo+; echo "En total hay $trozosCodigo de código;"; ?> </html>
- Intentamos poner la mayor parte de código posible en la parte superior antes del DocType
- Variables
- Identificadores que empiezan por $
<?php $variable = "valor"; ?>
- Lenguaje fuertemente tipado de declaración dinámica
- 5 tipos básicos
- Los tipos pueden cambiar en cualquier momento
<?php $a= 5; // $a de tipo entero $a="maria"; // $a de tipo string $a=true; // $a de tipo booleano $a=5.5; // $a de tipo float $a=null; // $a de tipo null ?>
Estructuras de control
- Ya sabemos que hay 3 tipos de estructuras de control
- Secuenciales
- Selectivas
- repetitivas o iterativas
- Secuenciales
- Son instrucciones que van una detrás de otra
- Usamos el ; para separar una de otra
//instruccion de asignacion $variable = valor o expresion ; //instruccion de invocacion funcion del sistema o creada por nosotros mail ($destino, $submit, $mensaje, $from) ; //instruccion de escribir echo "hola valientes y entusiastas de la programacion"; //instruccion de lectura $variable = $_POST['variable']; //instruccion de inicio fin de bloque en este caso sin punto y coma { }
- selectivas
if (expresión_booleana) { instrucciones a ejecutar en el caso de que expresión_booleana retorne true Si solo hubiera una instrucción podemos omitir las llaves }else{ instrucciones a ejecutar en el caso de que expresión_booleana retorne false Esta parte no es obligatoria }
if (expresion_booleana) instruccion_if else instruccion_else
if (expresion_booleana) { instruccion_if } else { instruccion_else }
if (expresion_booleana): instruccio_1 instruccio_2 instruccio_3 else: instruccio_1 instruccio_2 instruccio_3 endif;
if (expresion_booleana){ instruccio_1 instruccio_2 instruccio_3 }else{ instruccio_1 instruccio_2 instruccio_3 }
- Tenemos también el llamado selector múltiple
switch ($variable){ case valor1 : instrucciones break; case valor2 : instrucciones break; // ....... default: instrucciones_default break; }
- Recordad que si no ponemos el braek, se ejecutarán todos los case hasta encontrar un break o fin del switch
- La sección default es opcional y se entrará en ella si no hay coincidencia previa
- Lo que se hace en cada case es mirar a ver si el valor de la variable coincide
- bucle
- Como ya sabemos tenemos tres tipos
- El bucle clásico
- Recordemos las tres reglas de hora (inicializar, comparar correctamente, actualizar).
while (expresion_booleana){ //instrucciones }
- El bucle contador
- Ponemos un ejemplo que se va incrementando la variable de 11
- Podemos mocificar cada una de las tres partes del for
for ($var = valor_inicial; $var < valor_final; $var++){ //instrucciones }
- El bucle que ejecuta una iteración segura
do{ //instrucciones }while (expresion_booleana);
- Observar que en este caso al final va un ; pues separamos de la siguiente instrucción
Escribir mensajes
echo"texto ", "mas texto, " tercer parámetro mas texto"; print "solo puedo leer con un parámetro"; printf ("Este me permite escribir con formato usando \%);
Expresiones
- PHP es un lenguaje orientado a expresiones
- Esto quiere decir que en php todo se consideran expresiones
- una expresión es un conjunto de valores (operadorandos) y operadores
- Los operadores actúan sobre los operandos y obtengo un valor como resultado de evaluar y realizar los cálculos de la expresión
Expresiones de asignación
- Dan como resultado el valor que asigno
$a = 5; echo "Quiero ver el valor de esta expresion ".$a=5; //Veré que me imprime 5
Expresiones aritméticas
- Dan como resultado el cálculo obtenido
$b = ($a+5*$c-8 /5)%3// .... (+-*/%)
Expresiones booleanas
- Esta expresión da como resultado un valor true o false
- Puenden ser de dos tipos
comparación
- <, > <=, >=, !=, ==, ===, !==
- Hay qu tener cuidado con la igualdad de valor (==) y la igualdad de valor y tipo (===)
$a = 10; if ($a == true) echo "Esto es cierto porque $a se adapta a true"; if ($a === true) echo "Esto es false porque $a se adapta a true"; $a = "pedro" if ($a == true) echo "Esto es cierto porque $a no es nulo y al transformar en booleano se toma como true"; if ($a === true) echo "Esto no es cierto ya que $a no es true ya que es de tipo string y no booleano ";
- Ver la siguiente tabla para mas detalle
http://php.net/manual/es/types.comparisons.php
lógicas
- and && or || xor
Leer valores
- Para leer valores necesitamos un formulario (no es la única forma pero si la más usada)
- Otras maneras leer de ficheros por ejemplo
- La idea es que al hacer una solicitud web vienen también todos los contenidos de los diferentes input de un formulario
- form
<form action="ficheroPhpAEjecutar.php" method="POST" <input type = "text|radio| ..." name="id_para_leer_en_php" value ="valor_por_defecto" <input type=submit value="enviar"> <form>
- Recordad los atributos importantes
- El name de los input es la forma de leer en servidor
- Cuando hacemos click en el submit es cuando invocamos al fichero especificado
- leer
$variable =$_POST["id_para_leer_en_php"] ; $variable =$_GET["id_para_leer_en_php"] ; $variable =$_REQUEST["id_para_leer_en_php"] ; $variable = intput_filter (INPUT_POST, "id_para_leer_en_php", FILTER.....) ; $variable = intput_filter (INPUT_GET, "id_para_leer_en_php", FILTER.....) ;
- Si pasamos un filtro, no podemos leer arrays.
- Siempre leeremos como una cadena de caracteres
Ver si enviamos un formulario
- Para ver si estoy accediendo a una página por que he hecho click en el submit de un formulario sería así
Idioma no válido.
Necesita especificar un idioma como esto: <source lang="html4strict">...</source>
lenguajes soportados para sintaxis remarcada:
4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <fieldset> <legend>Datos de acceso</legend> <form action="index.php"method="POST"> Nombre <input type="text" name="nombre" id=""><br /> Password <input type="text" name="pass" id=""><br /> <input type="submit" value="Validar" name="enviar"> </form> </fieldset>
- En este caso el php sería
if (isset($_POST['enviar'])) { //Si estoy aquí es por que he hecho click en el submit cuyo name es enviar }