Diferencia entre revisiones de «Usuario:ManuelRomero/PHP/Resumen»
De WikiEducator
< Usuario:ManuelRomero | PHP
(→Cookies) |
(→Sesiones) |
||
Línea 377: | Línea 377: | ||
===Sesiones=== | ===Sesiones=== | ||
+ | *Crear una variable de sesión es poder almacenar y disponer de esa variable mientras dure la conversación entre cliente y servidor | ||
+ | *El cliente va enviando solicitudes al servidor y el servidor le va respondiendo | ||
+ | ;Cuando hablamos de enviar solicitudes, hablamos de solicitar páginas | ||
+ | El cliente siempre se comunica con el servidor solicitándole una página | ||
+ | ;Cuando hablamos de que el servidor responde, hablamos de le entrega una página solicitada | ||
+ | El servidor entrega una página al cliente. Si esa página tiene código php, antes de entregarla lo ejecuta | ||
+ | *Cada entrega se pierde todo lo que el servidor hubiera ejecutado antes | ||
+ | *Si quiero almacenar algún valor, una manera de hacerlo es con sesiones | ||
+ | ;crear una variable de sesion | ||
+ | <source lang=php> | ||
+ | .... | ||
+ | //Aquí leo el nombre que me puede venir de un formulario | ||
+ | $nombre = $_POST['nombre`]; | ||
+ | //Ahora guardo esta variable y así conoceré ese nombre en veces sucesivas de esta conversación entre cliente y servidor | ||
+ | $_SESSION['nombre']= "maria"; | ||
+ | </source> | ||
+ | ;Leer una variable de sesion | ||
+ | *En proximas conexiones podré saber el nombre del usuario | ||
+ | <source lang=php> | ||
+ | .... | ||
+ | // leo el nombre de la sesion | ||
+ | $nombre = $_SESSION['nombre`]; | ||
+ | ... | ||
+ | </source> | ||
+ | ;Borrar una variable de sesion | ||
+ | *Se elmina con la función ya conocida unset(..) | ||
+ | <source lang=php> | ||
+ | .... | ||
+ | //Ahora elmino la variable de sesion | ||
+ | unset($_SESSION['nombre']); | ||
+ | </source> | ||
+ | |||
===Autentificación=== | ===Autentificación=== | ||
Revisión de 21:29 13 mar 2015
Contenido
Instalación
- Apache
- php
- mysql
- netbeans
- java
- debug
Sintaxis básica
- Código embebido
<?php ..... ?>
- 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>
- 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 ?>
Array
- Son estructuras o colecciones de alguna manera ordenadas de valores de cualquier tipo
- Existen muchas funciones para trabajar con ellas
- Definirlo
<?php $miArray = array();//Crea un array vacío $otroArray = array("Maria", "Luis", "Pedro", "Marta", "Carol"); $otroArrayVacio = []; $array4 = [1,5,4,3,2]; ?> <7source> ;Añadir elementos después del último que hubiera <source lang=php> <?php $miArray[] =10 ; $otroArray[] = "Marga"; $otroArrayVacio[] =8; $array4 []=15; ?>
- Añadir elementos en una posición concreta
<?php $miArray[5] =10 ; //El próximo elemento se añadirá en la posicón 6 aunque solo haya 2 elementos $otroArray[2] = "Marga"; //Si ya existiera la posición 2 se sustituiría $otroArrayVacio[10] =8; $array4 [1]=15; ?>
- Eliminar una posición del array
- Se usa la conocida función unset(...)
- Por ejemplo eliminar las posición previamente añadidas
- Añadir elementos en una posición concreta
<?php unset($miArray[5]); //Elimina el elemento de la posicón 6 Si fuera el último el siguiente que añadamos sin indexar cubrirá esa posición, si no se dejará un hueco unset($otroArray[2]); unset($otroArrayVacio[10]); unset($array4 [1]); ?>
- Funciones que más hemos usado con array
count($array) o size($array)
- Nos dice el número de elementos de un array, que no tiene porqué coincidir con el siguiente elemento a añadir.
- Tipos de array
- Es importante tener clara la diferencia entre array asociativo y array indexado
- Ambos casos son colección de elementos por que son array
- Se diferencian en la forma que voy a indicar cada posición de los diferentes elementos
- indexado
- La posición de cada elemento la especifico con un número
$misNotasIndexado =[6,7,8,7,6,7,8,7];
- Es igual que hacer
$misNotasIndexado =[0=>6,1=>7,2=>8,3=>7,4=>6,5=>7,6=>8,7=>7];
- asociativo
- La posición de cada elemento la especifico con una cadena de caracteres
- En este caso a la hora de insertar un array, hay que especificar obligatoriamente en valor del índice
$misNotasAsociativo =["maria"=>6,"ana"=>7,"nieves"=>8,"luis"=>7,"ester"=>6,"carlos"=>7,"pedro"=>8,"nieves"=>7];
- Recorrer un array foreach(....)
- Hay diferentes maneras de recorre un array, pero esta estructura es la más cómoda
- La forma de interpretarla narrativamente sería
para el array $misNotasIndexado coge cada elemento y almacénalo en $nota
foreach ($misNotasIndexado as $nota){ echo "Valor de la nota : $nota"; }
- También podría acceder a los índices
para el array $misNotasIndexado coge cada indice y guardalo en $indice y cada elemento de esa posición y almacénalo en $nota
foreach ($misNotasIndexado as $indice => $nota){ echo "Valor de la nota $indice : $nota"; }
- En el caso de arrays asociativo nos interesará la mayoría de las veces acceder al valor del índice y del elemento
para el array $misNotasAsociativo coge cada indice y guardalo en la variable $persona y cada elemento de esa posición y almacénalo en $nota
foreach ($misNotasAsociativo as $persona => $nota){ echo "Valor de la nota $persona : $nota"; }
- Es importante marcar que las variables $indice, $persona o $nota, son variables que creamos nosotros y pueden lógicamente tener cualquier nombre
Estructuras de control
- Ya sabemos que hay 3 tipos de estructuras de control
- 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 }
- 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 segurao
do{ //instrucciones }while (expresion_booleana);
- Observar que en este caso al final va un ; pues separamos de la siguiente instrucción
- 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 { }
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
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
Funciones
- Escribir con un nombre un conjunto de instrucciones
- Una vez descrita la puedo invocar donde quira
- Solo las variables internas definidas como global las puedo utilizar fuera de la función con el valor que ésta hubiera dejado
- parámetros: una función adminte parámetros que son los valores con los que la función puede operar
- Estos valores son pasados cuando invocamos a la función
.... function miFuncion ( $param_valor1, $param_valor2){ echo "valor de los parámetros : $param_valor1, $param_valor2"; } miFuncion(54, 86); //En este caso se imprimirá: '''''valor de los parámetros : 54, 86 '''''
- Pueden tener un valor por defecto, en cuyo caso si no paso valor cuando la invoque se toma ese valor
.... function miFuncion ( $param_valor1 = 1, $param_valor2 = 1){ echo "valor de los parámetros : $param_valor1, $param_valor2"; } miFuncion(54); //La invoco solo con un parámetro //En este caso se imprimirá: '''''valor de los parámetros : 54, 1 '''''
- return, en un momento dado la función puede devolver un valor
.... function calculaMayor ( $p1, $p2){ if ($p1> $p2) return $p1; else return $p2; } $mayor = calculaMayor(58, 45); echo "El mayor es $mayor);
Cookies
- son ficheros que se guardan el el cliente
- Lo escribe un servidor concreto en un cliente concreto (una ip de un navegador )
- Estos ficheros son parejas variable-valor
- Es importante tener claro
- quién escribe la cookie (el servidor)
- donde la escribe (en el cliente : una ip en un navegador)
- qué escribe (una pareja variable = valor p.e. nombre = "maria")
- cuando la tendré displible y como. En la superglobal $_COOKIE['nombre_variable'], el servidor la recibe la próxima vez que el cliente acceda a él.
Recuerda como operar con ellas
- Escribir una coockie
- esta acción escribirá una cookie en el cliente
..... setCookie("nombre", "maria",time()+3600); //Escribo una cookie con la pareja nombre = maria y una duracción de 3600 segundos //Recuerda que la duracción es a partir de este instante time() //Si no establezco este parámetro o pongo 0, la cookie durará lo que dure la sesión.
- Leer una coockie
..... $nombre = $_COOKIE['nombre']; //Esta acción almacenará en la variable $nombre el valor de la cookie, siguiendo con el ejemplo almacenará maría.
- Borrar una cookie
- Tendré que escribirla con un tiempo negativo
..... setCookie("nombre", "maria",time()-1); //Esta acción tendrá el efecto de borrar o anular la cookie
Sesiones
- Crear una variable de sesión es poder almacenar y disponer de esa variable mientras dure la conversación entre cliente y servidor
- El cliente va enviando solicitudes al servidor y el servidor le va respondiendo
- Cuando hablamos de enviar solicitudes, hablamos de solicitar páginas
El cliente siempre se comunica con el servidor solicitándole una página
- Cuando hablamos de que el servidor responde, hablamos de le entrega una página solicitada
El servidor entrega una página al cliente. Si esa página tiene código php, antes de entregarla lo ejecuta
- Cada entrega se pierde todo lo que el servidor hubiera ejecutado antes
- Si quiero almacenar algún valor, una manera de hacerlo es con sesiones
- crear una variable de sesion
.... //Aquí leo el nombre que me puede venir de un formulario $nombre = $_POST['nombre`]; //Ahora guardo esta variable y así conoceré ese nombre en veces sucesivas de esta conversación entre cliente y servidor $_SESSION['nombre']= "maria";
- Leer una variable de sesion
- En proximas conexiones podré saber el nombre del usuario
.... // leo el nombre de la sesion $nombre = $_SESSION['nombre`]; ...
- Borrar una variable de sesion
- Se elmina con la función ya conocida unset(..)
.... //Ahora elmino la variable de sesion unset($_SESSION['nombre']);