This commit is contained in:
2024-02-14 11:13:53 +01:00
parent 8ba2e6d10b
commit 4e56440f32
8 changed files with 723 additions and 237 deletions

View File

@@ -1,237 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EJERCICIO3 PHP CONDICIONALES</title>
</head>
<body>
<h2>1.</h2>
<?php
//1. Comprueba las siguientes condiciones, e indica si se entra o no en el condicional:
echo 1;
if (True && True) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 2;
if (False && True) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 3;
if (1 == 1 && 2 == 1) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 4;
if ("test" == "test") {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 5;
if (1 == 1 || 2 != 1) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 6;
if (True && 1 == 1) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 7;
if (False && 0 != 0) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 8;
if (True || 1 == 1) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 9;
if ("test" == "testing") {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 10;
if (1 != 0 && 2 == 1) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 11;
if ("test" != "testing") {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 12;
if ("test" == 1) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 13;
if (!(True && False)) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 14;
if (!(1 == 1 && 0 != 1)) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 15;
if (!(10 == 1 || 1000 == 1000)) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 16;
if (!(1 != 10 || 3 == 4)) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 17;
if (!("testing" == "testing" && "Zed" == "Cool Guy")) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 18;
if (1 == 1 && (!("testing" == 1 || 1 == 0))) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 19;
if ("chunky" == "bacon" && (!(3 == 4 || 3 == 3))) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
echo 20;
if (3 == 3 && (!("testing" == "testing" || "PHP" == "Fun"))) {
echo "Entro en el condicional";
} else {
echo "No entro en el condicional";}
echo '<br>';
?>
<h2>2.</h2>
<?php
/*2. Control de acceso por edad:
(Obten el año de nacimiento con un random entre 1900 y 2023)
(Obten el año actual del sistema en lugar de escribirlo a mano en una variable con date('Y'))
-Calcula la edad.
-Si es mayor de edad, dile que puede pasar dentro.
-Si es menor, dile que no puede pasar.
-Si tiene más de 65 años, dile que es demasiado mayor para entrar.*/
$actual=date("Y");
$nacido=rand(1900,2023);
$edad=$actual-$nacido;
echo $edad;
echo '<br>';
if ($edad<18) { echo 'No puedes pasar';} else if ($edad>65) {echo 'Eres muy mayor';} else {echo 'Puedes pasar';}
echo '<br>';
?>
<h2>3.</h2>
<?php
/*3. La función date() con el parametro 'D' nos devuelve las tres primeras letras del día de la semana en inglés: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
Ej.echo date('D'); // Salida Mon
Empleando switch debemos hacer que en la página salga un mensaje como este con el día en español "Hoy es XXXX".*/
echo date('D');
echo '<br>';
//Switch
//Mon, Tue, Wed, Thu, Fri, Sat, Sun
$diaIngles=date('D');
switch ($diaIngles) {
case 'Mon':
echo "Hoy es Lunes";
break;
case 'Tue':
echo "Hoy es Martes";
break;
case 'Wed':
echo "Hoy es miercoles";
break;
case 'Thu':
echo "Hoy es Jueves";
break;
case 'Fri':
echo "Hoy es Viernes";
break;
case 'Sat':
echo "Hoy es Sabado";
break;
case 'Sun':
echo "Hoy es Domingo";
break;
default:
echo "No se a que es igual";
break;
}
echo '<br>';
?>
<h2>4.</h2>
<?php
/*4.Crea un simulador de tirada de dados dobles:
- Da la puntuación de la tirada.
- Debe indicarnos si la tirada es par o impar.
- Si sacamos una tirada doble debe indicarlo.*/
//Ahora lo pasamos a tres dados indica cuando se saca un doble y un trio
echo 'Con dos dados';
echo '<br>';
$dado1=rand(1,6);
$dado2=rand(1,6);
$tirada=$dado1+$dado2;
echo $dado1;
echo '<br>';
echo $dado2;
echo '<br>';
echo "Tu tirada es $tirada";
echo '<br>';
if ($dado1 == $dado2) {echo 'Tu tirada es doble';} else {echo 'Tu tirada no es doble';}
echo '<br>';
if (($tirada%2)==0){echo 'Tu trirada es par';} else {echo 'Tu trirada es impar';};
//Ahora lo pasamos a tres dados indica cuando se saca un doble y un trio
echo '<br>';
echo '<br>';
echo 'Con tres dados';
echo '<br>';
$dado1=rand(1,6);
$dado2=rand(1,6);
$dado3=rand(1,6);
$tirada=$dado1+$dado2+$dado3;
echo $dado1;
echo '<br>';
echo $dado2;
echo '<br>';
echo $dado3;
echo '<br>';
echo "Tu tirada es $tirada";
echo '<br>';
if (($tirada%2)==0){echo 'Tu trirada es par';} else {echo 'Tu trirada es impar';};
echo '<br>';
if ($dado1 == $dado2 && $dado2 == $dado3) {echo 'Tu tirada es triple';} else
if ($dado1 == $dado2 || $dado2 == $dado3 || $dado1 == $dado3) {echo 'Tu tirada es doble';}
echo '<br>';
?>
</body>
</html>

View File

@@ -0,0 +1,127 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Intro3 PHP FUNCIONES</title>
</head>
<body>
<h1>Funciones en PHP</h1>
<form>
<?php
//--- Declarar
/*function nombre_de_funcion(tipo_de_parametro $parametros): tipo_return
{ ...
return ...;
}*/
//--- Llamar
//nombre_de_funcion($parametros);
//--- Estructura correcta
/**
* Función con educación
* @return {string}
*/
function saludar_ahora(): string
{
return 'Hola, soy una función';
}
echo saludar_ahora();
echo '<br>';
// Hola, soy una función
// --- Nuestros parámetros de entrada pueden tener un valor por defecto.
/**
* Saluda a una persona
* @param {string} - Nombre
* @return {string}
*/
function saludar(string $nombre = 'Anónimo'): string
{
return 'Hola, persona llamada ' . $nombre ;
}
echo saludar();
echo '<br>';
// Hola, persona llamada Anónimo.
echo saludar('Picasso');
echo '<br>';
// Hola, persona llamada Picasso.
//De forma automática PHP arreglará las incompatibilidades de tipos.
function incrementar(int $num): int
{
return $num + 1;
}
echo incrementar(4.5);
echo '<br>';
// 5
//Podemos declarar el modo estricto para que no admita errores de tipo
//declare(strict_types=1);
//Return con posibilidad de null
//function nombre(): ?string {...}
//Es posible indicar 2 tipos diferentes de parametros
//function nombre(): int|string
// -------------- Algunas funciones de arrays ------------
// Diccionario
$apartamentos = [
[
'precio/noche' => 40,
'ciudad' => 'Valencia',
'wifi' => True,
'pagina web' => 'https://hotel.com'
],
[
'precio/noche' => 87,
'ciudad' => 'Calpe',
'wifi' => True,
'pagina web' => 'https://calpe.com'
],
[
'precio/noche' => 67,
'ciudad' => 'Valencia',
'wifi' => False,
'pagina web' => 'https://denia.com'
],
[
'precio/noche' => 105,
'ciudad' => 'Benidorm',
'wifi' => False,
'pagina web' => 'https://benidorm.com'
]
];
//array_walk (Iterar) // Puede modificar el array original
array_walk($apartamentos, function ($apartamento, $posicion) {
echo $posicion+1 .' '. $apartamento['ciudad'] . '<br>';
});
/*
1 Valencia
2 Calpe
3 Valencia
4 Benidorm
*/
echo '<br>';
//array_filter (filtrar) // No modifica el original
$todosLosApartamentosValencia = array_filter($apartamentos, function ($apartamento) {
return $apartamento['ciudad'] === 'Valencia';
});
// Extraería los dos array con ciudad Valencia
//array_map (modificar)
$apartamentosMasBaratos = array_map(function ($apartamento) {
return array_merge($apartamento, ['precio/noche' => $apartamento['precio/noche'] - 1]);
}, $apartamentos);
// Le restará a todos los precio/noche
//array_reduce (calcular)
$media = array_reduce($apartamentos, function ($acumulador, $apartamento) {
return $apartamento['precio/noche'] + $acumulador;
}, 0) / count($apartamentos);
?>
</body>
</html>

View File

@@ -0,0 +1,79 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Intro5 PHP FORMULARIOS</title>
</head>
<body>
<h1>Formularios</h1>
<form action="" method="get">
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre"><br><br>
<label for="email">Email:</label>
<input type="email" id="email" name="email"><br><br>
<label for="telefono">Teléfono:</label>
<input type="text" id="telefono" name="telefono"><br><br>
<label for="nombre1">Nombre 1:</label>
<input type="text" id="nombre1" name="nombres[]"><br>
<label for="nombre2">Nombre 2:</label>
<input type="text" id="nombre2" name="nombres[]"><br>
<label for="nombre3">Nombre 3:</label>
<input type="text" id="nombre3" name="nombres[]"><br><br>
<input type="reset" value="Limpiar datos" /><br>
<input type="submit" value="Enviar">
</form>
<?php
//En el formulario method indica como se envía la información(get y post)
//En el formulario action indica a donde se envía la información, si no indicamos nada va a la misma página
// Variables superglobales en PHP son variables predefinidas que están disponibles en todos los ámbitos (locales, globales, funciones, etc.)
//$_REQUEST es un array asociativo con los datos que llegan del formulario $_GET, $_POST y $_COOKIE
//var_dump($_REQUEST) para consultarlo
//
//Accedo al array para obtener el dato nombre
//echo $_REQUEST['nombre'];
//$_REQUEST su uso se desaconseja por seguridad
//$_GET datos enviados a través de la URL con el método GET name=>value --- key=>value
//$_POST datos enviados a través del cuerpo de la solicitud con el método POST
// Verificamos si el formulario fue enviado
if ($_SERVER["REQUEST_METHOD"] == "GET") {
// Verificamos si se han enviado datos
if (isset($_GET["nombre"]) && isset($_GET["email"])) {
// Obtenemos los datos del formulario
$nombre = $_GET["nombre"];
$email = $_GET["email"];
var_dump($_REQUEST);
// Accedo a los datos
echo "<h2>Variables enviadas</h2>";
echo "Nombre: " . $nombre . "<br>";
echo "Email: " . $email . "<br>";
} else {
echo "Por favor, complete todos los campos del formulario.";
}
// Captar una variable con operador ternario
$telefono = isset($_GET['telefono']) ? $_GET['telefono'] : null;
}
//var_dump($_REQUEST);
echo "<br>";
echo $telefono;
echo "<br>";
// ---Usar campos para enviar arrays, debemos poner el mismo name
//<input type="text" id="nombre1" name="nombres[]">
$array_nombres = isset($_GET['nombres']) ? $_GET['nombres'] : [];
echo "<br>";
//var_dump($array_nombres);
echo "<br>";
?>
</body>
</html>

View File

@@ -0,0 +1,98 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>INTRO 5 FORMULARIOS PHP SUBIR ARCHIVOS</title>
</head>
<body>
<h2>1. SUBIR ARCHIVOS</h2>
<!-- Formulario -->
<form method="post" enctype="multipart/form-data">
<p>
<!-- Campo archivo -->
Adjuntar* <input type="file" name="fichero_usuario" required>
</p>
<p>
<!-- Campo archivo -->
Adjuntar* <input type="file" name="fichero_usuario2" required>
</p>
<!-- Campo archivo -->
<p>
</p>
<p>
<!-- Botón limpiar -->
<input type="reset" value="Limpiar">
</p>
<p>
<!-- Botón submit -->
<input type="submit" value="Enviar">
</p>
</form>
<?php
// Necesitaremos usar siempre el method POST y añadir enctype="multipart/form-data". Por último usar el input de tipo archivo (file).
// $_FILES variable superglobal, es un array multidimendional que recoge la informacion de los archivos subidos
//Acceso a los datos de cada fichero
//El nombre original del fichero en la máquina del cliente.
// $_FILES['fichero_usuario']['name']
//El tamaño, en bytes, del fichero subido.
//$_FILES['fichero_usuario']['size']
//El nombre temporal del fichero en el cual se almacena el fichero subido en el servidor.
//$_FILES['fichero_usuario']['tmp_name']
// Para realizar la gestión del archivo se utiliza:
//move_uploaded_file(ruta_archivo_temporal, ruta_destino)
// Verificar que hay archivos que subir
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["fichero_usuario"]) && isset($_FILES["fichero_usuario2"])) {
// Definir directorio donde se guardará
$dir_subida = 'uploads/';
//datos del arhivo
$nombre_archivo = $_FILES['fichero_usuario']['name']; // Nombre original archivo
$tipo_archivo = $_FILES['fichero_usuario']['type'];
$tamano_archivo = $_FILES['fichero_usuario']['size'];
$ruta_archivo_temporal= $_FILES['fichero_usuario']['tmp_name'];
$tamano_archivo2 = $_FILES['fichero_usuario2']['size'];
// Definir la ruta final del archivo
$ruta_destino = $dir_subida .$_FILES['fichero_usuario']['name'];
$ruta_destino2 = $dir_subida .$_FILES['fichero_usuario2']['name'];
//Variable llamada $_FILES
print_r($_FILES);
//Limitación de tamaño
$max_file_size=1000000;
if ($tamano_archivo<$max_file_size && $tamano_archivo2<$max_file_size) {
// Moverlo de la carpeta temporal a la definitiva, usando el método move_uploaded_file().
//move_uploaded_file($archivo_temporal, $ruta_destino)
move_uploaded_file($_FILES['fichero_usuario']['tmp_name'], $ruta_destino);
move_uploaded_file($_FILES['fichero_usuario2']['tmp_name'], $ruta_destino2);
echo "<p>Archivo subido correctamente</p>";
} else {echo "<p>Los archivos son demasido grandes</p>";}
}
// Función pathinfo()
// $archivo='/ruta/del/archivo/nombre_archivo.txt';
//$extension = pathinfo($archivo, PATHINFO_EXTENSION);// 'txt'
//PATHINFO_DIRNAME: Devuelve el directorio padre del archivo.
//PATHINFO_BASENAME: Devuelve el nombre base del archivo, incluida la extensión.
//PATHINFO_EXTENSION: Devuelve la extensión del archivo.
//PATHINFO_FILENAME: Devuelve el nombre del archivo sin la extensión.
//Buscar elementos en un array
//in_array($elemento_buscado, $array)
?>
</body>
</html>