Diferencia entre revisiones de «Usuario:ManuelRomero/PHP/Resumen»

De WikiEducator
Saltar a: navegación, buscar
(Cookies)
Línea 345: Línea 345:
 
*Lo escribe un servidor concreto en un cliente concreto (una ip de un navegador )
 
*Lo escribe un servidor concreto en un cliente concreto (una ip de un navegador )
 
*Estos ficheros son parejas variable-valor
 
*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
 +
<source lang=php>
 +
.....
 +
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.
 +
</source>
 +
 +
;Leer  una coockie:
 +
<source lang=php>
 +
.....
 +
 +
$nombre = $_COOKIE['nombre'];
 +
//Esta acción almacenará en la variable $nombre el valor de la cookie, siguiendo con el ejemplo almacenará maría.
 +
</source>
 +
 +
;Borrar una cookie
 +
*Tendré que escribirla con un tiempo negativo
 +
<source lang=php>
 +
.....
 +
setCookie("nombre", "maria",time()-1);
 +
//Esta acción tendrá el efecto de borrar o anular la cookie
 +
</source>
  
 
===Sesiones===
 
===Sesiones===

Revisión de 21:22 13 mar 2015

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
  1. quién escribe la cookie (el servidor)
  2. donde la escribe (en el cliente : una ip en un navegador)
  3. qué escribe (una pareja variable = valor p.e. nombre = "maria")
  4. 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

Autentificación

Objetos

atributos

métodos

concepto de sobrecarga

Encapsulacion: delimitadores de acceso

constructor

métodos mágicos

elementos estáticos

métodos mágicos