Diferencia entre revisiones de «Usuario:ManuelRomero/NewPHP/inaem 2018/resumen»

De WikiEducator
Saltar a: navegación, buscar
(Ver si enviamos un formulario)
(Ver si enviamos un formulario)
Línea 296: Línea 296:
  
 
}
 
}
 +
</source>
 +
===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
 +
<source lang=html5>
 +
<!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>
 +
 +
</source>
 +
;El php
 +
*Para leer el nombre y el pass
 +
*Muy importante: los valores del atributo '''name''' del input correspondinete
 +
 +
<source lang=php>
 +
$user = $_POST['nombre'];
 +
$pass = $_POST['pass'];
 
</source>
 
</source>

Revisión de 05:45 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
  1. Secuenciales
  2. Selectivas
  3. 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'];