Diferencia entre revisiones de «Usuario:ManuelRomero/NewPHP/inaem 2018/resumen»
De WikiEducator
(→Ver si enviamos un formulario) |
|||
Línea 3: | Línea 3: | ||
===Instalación=== | ===Instalación=== | ||
− | * | + | *Instalar '''''apache''''' |
+ | <source lang=php> | ||
+ | apt-get install apache2 | ||
+ | </source> | ||
+ | ;Instalar '''''php''''' | ||
*php (cli y lib) | *php (cli y lib) | ||
+ | <source lang=php> | ||
+ | apt-get install php libapache2-mod-php | ||
+ | </source> | ||
+ | ;Ver el log de posibles errores de apache | ||
+ | <source lang=php> | ||
+ | tail -f /var/log/apache2/error.log | ||
+ | </source> | ||
+ | |||
+ | |||
+ | <source lang=php> | ||
*mysql (cliente y servidor) | *mysql (cliente y servidor) | ||
*netbeans | *netbeans |
Revisión de 00:17 6 feb 2019
Instalación
- Instalar apache
apt-get install apache2
- Instalar php
- php (cli y lib)
apt-get install php libapache2-mod-php
- Ver el log de posibles errores de apache
tail -f /var/log/apache2/error.log
*mysql (cliente y servidor) *netbeans **(java) *debug ===Sintaxis básica=== ;Código embebido <source lang=php> <?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í
<!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 }
Acceder a los contenidos de los input de un formulario
- Importente el atributo method del formulario
Puede ser POST GET
- Si usamos POST leeré con la superglobal $_POST
- Si usamos FET leeré con la superglobal $_GET
- Miramos el ejemplo siguiente
- El html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="estilo.css" type="text/css"/> </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> </body> </html>
- El php
- Para leer el nombre y el pass
- Muy importante: los valores del atributo name del input correspondinete
$user = $_POST['nombre']; $pass = $_POST['pass'];