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>”;

Anuncios

Publicado el 28 septiembre, 2016 en Desarrollo Entorno Servidor. Añade a favoritos el enlace permanente. Comentarios desactivados en Repaso PHP.

Los comentarios están cerrados.

A %d blogueros les gusta esto: