0% encontró este documento útil (0 votos)
39 vistas

PHP 2

Este documento describe cómo crear un formulario web para realizar pedidos de pizza en línea. El formulario solicita el nombre, dirección y cantidad deseada de tres tipos de pizza. Al enviar el formulario, la información se graba en un archivo de texto separando cada pedido.

Cargado por

migue
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
39 vistas

PHP 2

Este documento describe cómo crear un formulario web para realizar pedidos de pizza en línea. El formulario solicita el nombre, dirección y cantidad deseada de tres tipos de pizza. Al enviar el formulario, la información se graba en un archivo de texto separando cada pedido.

Cargado por

migue
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 18

Aplicaciones Web

[email protected]

Dr. Leonardo Chancay García 1


PHP

[email protected]

Dr. Leonardo Chancay García 2


Vectores
• Se utiliza el delimitador [ ] para • También podemos obviar el
acceder a los diferentes elementos subíndice cuando asignamos los
del vector. valores:

• Se puede crear en el instante, sin $dias[]=31;


tener que declararlo: $dias[]=28;

$dias[0]=31; $dias[]=31;

$dias[1]=28; • El vector, puede ir creciendo en


forma dinámica
• Se puede acceder por subíndice.
echo count($dias); //3
echo $dias[0]; //31
• Automáticamente comienza a
echo $dias[1]; //28 numerarse desde cero.

Dr. Leonardo Chancay García 3


Vectores
<html>
<head> • La función sizeof(<nombre del vector>) es
<title>Problema</title> equivalente a count
</head>
• Otra forma de inicializar un vector es
<body> definirlo e inicializarlo simultáneamente:
<?php
$edades=array("menores","jovenes","adultos");
$nombres[] = "juan";
$nombres[] = "pedro"; • Estamos definiendo el vector edades con
$nombres[] = "ana";
tres componentes, numeradas
automáticamente de cero a dos.
for ($f = 0; $f < count($nombres); $f++) {
echo $nombres[$f];
echo "<br>";
}
?>
</body>
</html>

Dr. Leonardo Chancay García 4


Vectores
• PHP es muy común utilizar la estructura ‘foreach'
• En cada repetición del 'foreach' la variable $nombre almacena una componente
del vector $nombres
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$nombres[] = "juan";
$nombres[] = "pedro";
$nombres[] = "ana";
foreach ($nombres as $nombre) {
echo $nombre;
echo "<br>";
}
?>
</body>
Dr. Leonardo Chancay García 5
</html>
Creación de un archivo de texto
• Para la registración de datos en el <html>
servidor disponemos de dos <head>
herramientas que se complementan en <title>Problema</title>
muchos casos (archivos de texto y bases </head>
de datos)
<body>
• Presentaremos el tema resolviendo un <form action="pagina2.php" method="post">
problema: Implementación de un libro Ingrese su nombre:
de visitas. <input type="text" name="nombre">
<br>
Comentarios:
<br>
<textarea name="comentarios" rows="10" cols=“40">
</textarea>
<br>
<input type="submit" value="Registrar">
</form>
</body>
</html> pagina1.html

Dr. Leonardo Chancay García 6


Creación de un archivo de texto
<html> • Creamos o abrimos el archivo de texto
<head> "datos.txt".
<title>Problema</title> • El segundo parámetro de la función fopen
</head> indica la forma de apertura de archivo "a" (lo
crea o si ya existe el archivo lo abre para añadir
<body>
datos al final), "w" (crea el archivo de texto, si
<?php existe borra su contenido) y la última forma de
$ar = fopen("datos.txt", "a") or apertura del archivo es "r" (abre el archivo para
die("Problemas en la creacion"); su lectura).
fputs($ar, $_REQUEST['nombre']); • La función fopen retorna una referencia al
fputs($ar, "\n"); archivo y la almacenamos en una variable
llamada $ar.
fputs($ar, $_REQUEST['comentarios']);
fputs($ar, "\n"); $ar = fopen("datos.txt", "a") or
fputs($ar, "--------------------------------------------------------"); die("Problemas en la creacion”);
fputs($ar, "\n"); • La función die que finaliza la ejecución del
fclose($ar); programa PHP mostrando un mensaje.
echo "Los datos se cargaron correctamente."; • Para la grabación de datos utilizamos la función
?> fputs que tiene dos parámetros: la referencia al
archivo donde grabamos y el string a grabar.
</body>
</html> • El archivo se Guarda en el servidor.
pagina2.php

Dr. Leonardo Chancay García 7


Problema propuesto
Pedido de pizzas via internet.
• Para el ingreso del nombre, dirección
El formulario debe ser: y cantidad de pizzas de cada tipo
disponer objetos de la clase "text".
Nombre:[..............] • Disponer tres objetos de tipo
Direccion:[...................] "checkbox" para seleccionar los tipos
de pizzas.
Jamon y queso:[x]
Cantidad[...] • Por último disponer un botón para el
envío de datos: "submit".

Napolitana:[x] • Grabar en un archivo de texto


llamado "pedidos.txt" cada pedido,
Cantidad[...] separados por una línea de puntos
entre cada pedido
Mozzarella:[x]
Cantidad[...]

[Confirmar]

Dr. Leonardo Chancay García 8


Problema propuesto
<html>
Napolitana:
<head>
<title>Problema</title> <input type="checkbox" name="napolitana">

</head> <input type="text" name="cantnapolitana" size="3">

<body> <br>

<form method="post" action="pagina2.php"> Muzzarella:

Nombre: <input type="checkbox" name="muzzarella">

<input type="text" name="nombre" size="30"> <input type="text" name="cantmuzzarella" size="3">

<br> <br>

Dirección: <input type="submit" value="Confirmar">

<input type="text" name="direccion" size="40"> </form>

<br> </body>

Jamon y Queso: </html>


<input type="checkbox" name="jamonqueso">
<input type="text" name="cantjamonqueso" size="3"> pagina1.php

<br>

Dr. Leonardo Chancay García 9


Problema propuesto
<html>
if (isset($_REQUEST['napolitana'])) {
<head>
fputs($ar, "Cantidad de Napolitana:");
<title>Problema</title>
fputs($ar, $_REQUEST['cantnapolitana']);
</head>
fputs($ar, "\n");
<body>
}
<?php
if (isset($_REQUEST['muzzarella'])) {
$ar = fopen("datos.txt", "a") or
fputs($ar, "Cantidad de Muzzarella:");
die("Problemas en la creacion");
fputs($ar, $_REQUEST['cantmuzzarella']);
fputs($ar, "Nombre:");
fputs($ar, "\n");
fputs($ar, $_REQUEST['nombre']);
}
fputs($ar, "\n");
fputs($ar, "Dirección:"); fputs($ar, "--------------------------------------------------------");

fputs($ar, $_REQUEST['direccion']); fputs($ar, "\n");

fputs($ar, "\n"); fclose($ar);

if (isset($_REQUEST['jamonqueso'])) { echo "El pedido se cargó correctamente.";

fputs($ar, "Cantidad de Jamón y Queso:"); ?>


fputs($ar, $_REQUEST['cantjamonqueso']); </body>
fputs($ar, "\n"); </html>
} pagina2.php

Dr. Leonardo Chancay García 10


Lectura de un archivo de texto
<html> • Para la lectura de un archivo de texto contamos con
<head> la función fgets.
<title>Problema</title>
• La apertura para leer:
</head>
<body> $ar=fopen("datos.txt","r") or
<?php die("No se pudo abrir el archivo");
$ar = fopen("datos.txt", "r") or • Para leer:
die("No se pudo abrir el archivo");
$linea=fgets($ar);
while (!feof($ar)) {
$linea = fgets($ar);
• Se muestra por pantalla el contenido del archivo
"datos.txt" creado en el punto anterior.
$lineasalto = nl2br($linea);
echo $lineasalto; • La función feof retorna true si se ha llegado al final
del archivo.
}
fclose($ar); while (!feof($ar)) {
?> • Dentro de la estructura repetitiva leemos una línea
</body> completa del archivo de texto con la función fgets:
</html>
$linea = fgets($ar);

Dr. Leonardo Chancay García 11


Lectura de un archivo de texto
• La variable $linea contiene una línea completa del archivo de
texto, inclusive el salto de línea (\n)
• Como el navegador no hace un salto de línea con este caracter,
debemos convertir dicho caracter al elemento <br> propia de
HTML. La función que realiza esta actividad se llama nl2br (new
line to br)
• El resultado se almacena en una nueva variable que es la que
realmente imprimimos:
$lineasalto = nl2br($linea);
echo $lineasalto;

Dr. Leonardo Chancay García 12


Problema propuesto
• Confeccionar un programa que <html>
muestre el archivo de pedido de <head>
pizzas via internet del punto anterior. <title>Problema</title>
</head>
• Recordemos que creamos el archivo <body>
de texto llamado pedidos.txt (grabar <?php
la página php en el mismo directorio $ar = fopen("pedidos.txt", "r") or
donde se encuentra el archivo die("No se pudo abrir el archivo");
pedidos.txt) while (!feof($ar)) {
$linea = fgets($ar);
$lineasalto = nl2br($linea);
echo $lineasalto;
}
fclose($ar);
?>
</body>
</html>

Dr. Leonardo Chancay García 13


Vectores - Asociativos
• Un vector asociativo permite acceder a
un elemento del vector por medio de un
• Otras formas de crear un vector asociativo:
subíndice de tipo string.
<?php
• Un vector asociativo se define de la
siguiente forma: $registro = array(
'dni' => '20456322',
<?php
'nombre' => 'Martinez Pablo',
$registro['dni'] = "20456322";
'direccion' => 'Colon 134'
$registro['nombre'] = "Martinez Pablo";
);
$registro['direccion'] = "Colon 134";
echo $registro['dni'];
echo $registro['nombre'];
?>
?>

Dr. Leonardo Chancay García 14


Vectores - Asociativos
<html>
<head>
• En cada repetición del 'foreach' la variable
$clave almacena el subíndice del vector y la
<title>Problema</title>
variable $valor contiene el valor de la
</head> componente del vector:
<body>
foreach ($articulo as $clave => $valor) {
<?php
$articulo = array( echo 'Para la clave :' . $clave . " almacena el
valor: " . $valor;
'codigo' => 1,
'descripcion' => 'manzanas', echo "<br>";
'precio' => 30.25 }
); • Luego se muestra al ejecutar la aplicación:
foreach ($articulo as $clave => $valor) {
Para la clave :codigo almacena el valor: 1
echo 'Para la clave :' . $clave . " almacena el
valor: " . $valor; Para la clave :descripcion almacena el valor:
echo "<br>"; manzanas
} Para la clave :precio almacena el valor: 30.25
?> • Podemos recorrer el vector asociativo
</body> $_REQUEST mediante un foreach e imprimir
</html> tanto la clave como el valor.
pagina1.php

Dr. Leonardo Chancay García 15


Vectores - Asociativos <head>
<title>Problema</title>
</head>
• Desarrollaremos una aplicación que <body>

solicite la carga de 5 números en un <form action="pagina2.php" method="post">


Ingrese primer valor:
formulario HTML y al presionar un
<input type="text" name="valor1">
botón se calcule la suma en el <br>
servidor. Ingrese segundo valor:
<input type="text" name="valor2">
<br>
Ingrese tercer valor:
• Es importante notar que al input de <input type="text" name="valor3">
tipo 'submit' no le definimos la <br>
propiedad 'name', con el objetivo Ingrese cuarto valor:

que no se cargue en el vector <input type="text" name="valor4">


<br>
asociativo ‘$_REQUEST'. Ingrese quinto valor:
<input type="text" name="valor5">
<br>
<input type="submit">
</form>
</body>
</html>
pagina1.html

Dr. Leonardo Chancay García 16


Vectores - Asociativos
• Como vemos podemos recorrer en forma <html>
completa los 5 elementos del vector
<head>
'$_REQUEST' y acceder tanto a su valor como
su clave: <title>Problema</title>

$suma = 0; </head>

foreach ($_REQUEST as $clave => $valor) { <body>


echo "Valor: " . $valor; <?php
echo "<br>"; $suma = 0;
$suma = $suma + $valor; foreach ($_REQUEST as $clave => $valor) {
} echo "Valor: " . $valor;
• Si solo queremos acceder a los valores del echo "<br>";
vector asociativo y no a sus claves, luego
podemos codificar la sintaxis del foreach: $suma = $suma + $valor;

foreach ($_REQUEST as $valor) { }

echo "Valor: " . $valor; echo "La suma es: " . $suma;
echo "<br>"; ?>
$suma = $suma + $valor; </body>
} </html>
pagina2.php

Dr. Leonardo Chancay García 17


Vectores - Asociativos - ejemplos
<html>
<head>
<title>Problema</title>
<html>
</head>
<body> <head>
<?php
<title>Problema</title>
//Almacenar en un vector asociativo la cantidad de dias que tiene
//cada mes del año. Luego accederlo por su nombre como subindice. </head>

$mes['enero'] = 31; <body>


$mes['febrero'] = 29;
<?php
$mes['marzo'] = 31;
$mes['abril'] = 30; $clave['ana'] = "abc123";
$mes['mayo'] = 31;
$clave['luis'] = "z67yui";
$mes['junio'] = 30;
$clave['carlos'] = "sdf3sdf";
$mes['julio'] = 31;
$mes['agosto'] = 31; $clave['laura'] = "dsf3k32";
$mes['septiembre'] = 30;
$clave['pedro'] = "axldds23";
$mes['octubre'] = 31;
$mes['noviembre'] = 30; echo "La clave de luis es:" . $clave['luis'];

$mes['diciembre'] = 31; ?>


echo "Enero tiene:" . $mes['enero'] . "<br>";
</body>
echo "Agosto tiene:" . $mes['agosto'] . "<br>";
echo "Septiembre tiene:" . $mes['septiembre'] . "<br>"; </html>
?>
</body>
</html>
pagina1.php pagina1.php

Dr. Leonardo Chancay García 18

También podría gustarte