Repaso PHP

Repaso PHP

 

1. Elementos del lenguaje PHP.

<body>

<?php

$titulo = $tituloIntroducidoPorUsuario;

echo «<h1>». $titulo .»</h1>»;

$edadMinima = 20;

?>

 

Para visualizar los contenidos de esta página has de tener al menos

años.

 

……………………….

int time()

$now = time();

echo «hoy es «. date(«l, j-n-Y», $now) . «<br>Son las «. date(«h:i:s», $now);

$_SERVER Contiene información sobre el entorno del servidor web y el entorno de ejecución.

$_GET Contiene las variables pasadas mediante el método GET.

$_POST Contiene las variables pasadas mediante el método HTTP POST.

$_COOKIE Contiene las variables pasadas mediante el método Cookies HTTP.

$_REQUEST Contiene el contenido de $_GET, $_POST y $_COOKIE (no es aconsejable su uso).

$_FILES Contiene los ficheros subidos al servidor mediante el método HTTP POST.

$_SESSION Contiene las variables de sesión disponibles.

$numero=8;

echo «<br>tabla de multiplicar del «. $numero;

// uso de un for para realizar la tabla de multiplicar del número 8

for ($i=0;$i<=10;$i++) {

echo «<br>». $numero . «*». $i . «=». $numero*$i;

}

3. Funciones.

programa.php

<?php

echo «Bienvenido a la página web del ciclo»;

include «definiciones.php»;

echo $ciclo . » módulo: «. $modulo;

?>

definiciones.php

<?php

$modulo = «DWES»;

$ciclo = «DAW»;

?>

<?php

$iva = 0.21;

$pcSinIva = 300;

$pcConIva = $pcSinIva + calcularIva($pcSinIva, $iva);

function calcularIva($precio, $iva){

$conIva = $precio * $iva;

return $conIva;

}

function muestraPrecioFinal($precioFinal) {

echo «El precio del ordenador (iva incluido)= «. $precioFinal;

}

muestraPrecioFinal($pcConIva);

?>

3.3. Argumentos.

function calcularIva($precio, $iva=0.21){

$conIva = $precio * $iva;

return $conIva;

}

precioConIva = calcularIva(500);

4. Tipos de datos compuestos.

// array numérico

$modulos1 = array(«Programación», «Bases de datos», …, «Desarrollo web en entorno servidor»);

// aunque no es necesario como se puede observar en el ejemplo anterior, se podría

//definir un array numérico indicando los indices

$modulos1 = array(0 => «Programación», 1 => «Bases de datos», …, 9 => «Desarrollo web en entorno servidor»);

// array asociativo

$modulos2 = array(«PR» => «Programación», «BD» => «Bases de datos», …, «DWES» => «Desarrollo web en entorno servidor»);

$meses = array(«Enero», «Febrero», «Marzo», …, «Diciembre»);

print_r($meses);

// array bidimensional

$ciclos = array(

«DAW» => array («PR» => «Programación», …, «BD» => «Bases de datos»),

«DAM» => array («PR» => «Programación», …, «PMDM» => «Programación multimedia «)

);

echo $matriz[1][3];

// array numérico

$modulos[0] = «Programación»;

$modulos[1] = «Bases de datos»;

$modulos[9] = «Desarrollo Web en Entorno Servidor»;

//array asociativo

$mesesEspanyol[«january»] = «Enero»;

$mesesEspanyol[«february»] = «Febrero»;

$mesesEspanyol[«december»] = «Diciembre»;

4.1. Recorrer arrays.

// recorrer array accediendo sólo a los elementos

$meses = array(«jan» => «Enero», «feb» => «Febrero», …, «dec» => «Diciembre»);

foreach ($meses as $mes) {

echo «mes: «. $mes .»<br />»;

}

// recorrer array accediendo a los elementos y sus claves

$meses = array(«jan» => «Enero», «feb» => «Febrero», …, «dec» => «Diciembre»);

foreach ($meses as $key => $valor) {

echo «clave: «. $key .» – valor: «. $valor .»<br />»;

}

5. Formularios web.

<form name=»input» action=»procesa.php» method=»post»>

<fieldset>

<legend>Datos personales</legend>

<label for=»nombre»>Nombre:</label>

<input type=»text» name=»nombre» id=»nombre»><br>

<label for=»apellidos»>Apellidos:</label>

<input type=»text» name=»apellidos» id=»apellidos»><br>

<label for=»fechaNacimiento»>Fecha de nacimiento:</label>

<input type=»date» name=»fechaNacimiento» id=»fechaNacimiento»>

</fieldset>

<fieldset>

<legend>Ciclo que cursa</legend>

<label for=»ciclo»>Ciclo:</label>

<select name=»ciclo» id=»ciclo»>

<option>DAW</option>

<option>DAM</option>

<option>ASIR</option>

</select>

</fieldset>

<fieldset>

<legend>Módulos que convalida</legend>

<input type=»checkbox» name=»modulos[]» value=»LM» id=»LM»>

<label for=»LM»>Lenguajes de marcas y sistemas de gestión de información</label><br>

<input type=»checkbox» name=»modulos[]» value=»SI» id=»SI»>

<label for=»SI»>Sistemas informáticos</label><br>

<input type=»checkbox» name=»modulos[]» value=»BD» id=»BD»>

<label for=»BD»>Bases de datos</label><br>

<input type=»checkbox» name=»modulos[]» value=»PR» id=»PR»>

<label for=»PR»>Programación</label><br>

<input type=»checkbox» name=»modulos[]» value=»DWES» id=»DWES»>

<label for=»DWES»>Desarrollo web en entorno servidor</label><br>

<input type=»checkbox» name=»modulos[]» value=»DWEC» id=»DWEC»>

<label for=»DWEC»>Desarrollo web en entorno cliente</label><br>

</fieldset>

<input type=»submit» value=»Enviar» />

</form>

Las clases.

<?php

class Coche {

// atributos

var $marca;

var $modelo;

var $color;

var $encendido;

// métodos

function arrancar() {

$this->encendido = true;

}

function apagar() {

$this->encendido = false;

}

function pintar($nuevoColor) {

$this->color = $nuevoColor;

}

}

?>

Para instanciar un objeto de una clase determinada se usa la palabra new:

$miCoche = new Coche;

$tuCoche = new Coche();

3.1. MySQLi.

// utilizando constructores y métodos de la programación orientada a objetos

$conexion = new mysqli(‘localhost’, ‘usuario’, ‘contraseña’, ‘base_de_datos’);

echo conexion->server_info;

// utilizando llamadas a funciones

$conexion = mysqli_connect(‘localhost’, ‘usuario’, ‘contraseña’, ‘base_de_datos’);

echo mysqli_get_server_info($conexion);

Usando clases:

//primero instanciar y luego se usa el método connec para establecer la conexión

$conexion = new mysqli();

$conexion->connect(‘localhost’, ‘user’, ‘pass’, ‘BD’);

//usando el constructor para establecer la conexión directamente

$conexion = new mysqli(‘localhost’, ‘user’, ‘pass’, ‘BD’);

Usando la interfaz procedimental

$conexion = mysqli_connect(‘localhost’, ‘user’, ‘pass’, ‘BD’);

$conexion = new mysqli(‘localhost’, ‘user’, ‘pass’, ‘BD’);

if($conexion->connect_errno != NULL)

echo «Error conectando a la base de datos: «. $conexion->connect_error;

Ejecución de consultas.

$resultado = $conexion->query(‘DELETE FROM stock WHERE unidades=0’);

Generalmente se realizarán consultas de uno de los cuatro tipos siguientes:

INSERT – Para insertar registros de la base de datos.

DELETE – Para borrar registros de la base de datos.

UPDATE – Para actualizar registros de la base de datos.

SELECT – Para consultar registros de la base de datos.

@$conexion = new mysqli(‘localhost’, ‘user’, ‘pass’, ‘BD’);

$error = $conexion->connect_errno;

if ($error == null) {

$resultado = $conexion->query(‘DELETE FROM stock WHERE unidades=0’);

if ($resultado) {

echo «<p>Se han borrado «. $conexion->affected_rows . «registros.</p>»;

}

$conexion->close();

}

Transacciones.

$conexion->autocommit(false); //se deshabilita el modo transaccional automático

Consultas preparadas.

$resultado = $conexion->query(‘INSERT INTO alumno (nom, id) VALUES («Juan», 123)’);

$resultado = $conexion->query(‘INSERT INTO alumno (nom, id) VALUES («Ana», 162)’);

$resultado = $conexion->query(‘INSERT INTO alumno (nom, id) VALUES («Luis», 423)’);

$resultado = $conexion->query(‘INSERT INTO alumno (nom, id) VALUES («José», 761)’);

$resultado = $conexion->query(‘INSERT INTO alumno (nom, id) VALUES («María», 113)’);

A continuación se muestra un ejemplo completo del uso de consultas preparadas:

@$conexion = new mysqli(‘localhost’, ‘user’, ‘pass’, ‘BD’);

$consulta = $conexion->stmt_init();

$consulta->prepare(‘INSERT INTO alumno (nom, id) VALUES (?, ?)’);

$nombre = «Juan»; $id = «123»;

$consulta->bind_param(‘ss’, $cod_producto, $nombre_producto);

$consulta->execute();

$nombre = «Ana»;

$id = «162»;

$consulta->bind_param(‘ss’, $cod_producto, $nombre_producto);

$consulta->execute();

$nombre = «Luis»;

$id = «423»;

$consulta->bind_param(‘ss’, $cod_producto, $nombre_producto);

$consulta->execute();

$nombre = «jose»;

$id = «761»;

$consulta->bind_param(‘ss’, $cod_producto, $nombre_producto);

$consulta->execute();

$nombre = «María»;

$id = «113»;

$consulta->bind_param(‘ss’, $cod_producto, $nombre_producto);

$consulta->execute();

$consulta->close();

$dwes->close();

SQL injection.

$consulta = «SELECT * FROM usuarios WHERE nombre='». $_POST[‘nombre’] .»‘; «;

$resultado=$conexion->query($consulta);

$consulta = «SELECT nombre, apellidos FROM alumno WHERE ciclo=’DAW'»;

$resultado = $conexion->query($consulta);

$fila = $resultado->fetch_array(); // Obtenemos el primer registro

$nombre = $fila[‘nombre’]; // O también $fila[0];

$apellidos = $fila[‘apellidos’]; // O también $fila[1];

echo «<p>Alumno: «. $nombre .» «. $apellidos .»</p>»;

$consulta = «SELECT nombre, apellidos FROM alumno WHERE ciclo=’DAW'»;

$resultado = $conexion->query($consulta);

while($fila=$resultado->fetch_array())

{

echo $fila[0] .» – «. $fila[1] .»<br>»;

}

Ejemplo: rellenando una tabla con los datos devueltos por la consulta:

$consulta = «SELECT nombre, apellidos, dirección FROM alumno WHERE ciclo=’DAW'»;

$resultado = $conexion->query($consulta);

echo «<table>»;

rcho «<tr><td>Nombre</td><td>Apellidos</td><td>Dirección</td></tr>»;

while($fila=$resultado->fetch_array())

{

echo «<tr>»;

echo «<td>». $fila[0] .»</td>»;

echo «<td>». $fila[1] .»</td>»;

echo «<td>». $fila[1] .»</td>»;

echo «</tr>»;

}

echo «</table>»;

No Comments

Post A Comment