Daniel Segovia

Blog personal

Archive for the ‘7 – Desarrollar una aplicación web’ Category

Subir archivos

Hacer un comentario

El protocolo HTTP nos permite enviar datos a través de sus headers. Tú puedes subir imágenes, documentos PDF, audios, videos o algún documento de texto, a decir verdad se pueden subir archivos sin importar su tipo.
Como primera medida necesitamos saber que al formulario HTML debe ser POST (por la gran cantidad de información que vamos a enviar) y agregar una encriptación especial.

Un ejemplo básico de un formulario para subir archivos.

<form enctype="multipart/form-data" action="subir.php" method="post">
Seleccione el archivo: <input name="archivo" type="file" /><br />
<input type="submit" value="Subir" />
</form>

La diferencia con los formularios que veníamos viendo es que al tag form se le agrega el atributo enctype.

Cuando el formulario es enviado recibiremos en el array $_FILES toda la información necesaria para procesarla a gusto.
La primera clave del array será el nombre usado en el formulario, es nuestro ejemplo nos llegará a subir.php $_FILES['archivo'], dentro de ese array encontraremos más índices para usar.

  • name: Nos proporciona el nombre del archivo.
  • type: Recibimos el tipo de archivo, por ejemplo para un archivo JPG recibimos image/jpeg o image/pjpeg.
  • tmp_name: El nombre del archivo temporal sobre el servidor.
  • error: el código de error, un entero de 0 a 4.
  • size: un entero que proporciona el número en bytes del archivo subido.

Los códigos de error pueden ser los siguientes, PHP tiene predefinidas 5 constantes con los valores de los errores

  • UPLOAD_ERR_OK (0): El archivo fue subido exitosamente sin ningún error.
  • UPLOAD_ERR_INI_SIZE (1): El archivo subido supera el valor máximo definido en upload_max_file del php.ini.
  • UPLOAD_ERR_FORM_SIZE (2): El archivo subido excede el valor especificado en MAX_FILE_SIZE del formulario
  • UPLOAD_ERR_PARTIAL (3): Hubo un error mientras se subía el archivo y éste fue subido parcialmente
  • UPLOAD_ERR_NO_FILE (4): No hay ningún archivo subido por que el usuario no seleccionó nada en el formulario

En el ejemplo siguiente, haremos una comprobación de que el archivo sea correctamente subido, sí ésta es correcta, moveremos el archivo subido a una carpeta que quede accesible para nosotros, recordemos que los archivos se suben a una carpeta temporal, por eso debemos moverlo, o copiarlo, a una carpeta a la cual podamos acceder sin que éste sea borrado. Para esto usaremos la función move_uploaded_file

<?php
if(!empty($_FILES)){
    if($_FILES['archivo']['error'] == UPLOAD_ERR_OK){
        if(move_uploaded_file($_FILES['archivo']['tmp_name'], 'archivos/' . $_FILES['archivo']['name'])){
            $msj = "El archivo fue subido correctamente";
        }else{
            $msj = "Error al intentar copiar el archivo";
        }
    }else{
        $msj = "Ha ocurrido un error al intentar subir el archivo: [{$_FILES['archivo']['error']}]";
    }
}
?>
<html>
<head>
<title>Subir archivo con PHP</title>
</head>
<body>
<?php if(isset($msj)){ ?>
    <p><?=$msj;?></p>
<?php } ?>
<form enctype="multipart/form-data" action="" method="post">
Seleccione el archivo: <input name="archivo" type="file" /><br />
<input type="submit" value="Subir" />
</form>
</body>
</html>

En este script subimos lo que es enviado en el formulario a la carpeta archivos, para poder escribir ésta debe tener los permisos necesarios para que podamos escribir sobre ella. Dependiendo del sistema operativo los permisos pueden darse de maneras diferentes, muchas veces estos también pueden ser dados a través del FTP.

En principio esto funciona sin problemas, pero el usuario estará subiendo archivos a nuestro servidor, entonces no solo tendremos que validar que el archivo haya subido satisfactoriamente, sino que también debemos estar seguros que ese archivo no pondrá en peligro nuestra aplicación.

En el capítulo de seguridad veremos en detalle que y como corroborar.

Written by Daniel Segovia

mayo 21st, 2012 at 4:12 pm

Posted in 7.6 Subir archivos

Datos sensibles en cookie

Hacer un comentario

Cualquier dato puede ser almacenado en una cookie, pero es importante saber que lo que almacenamos puede tener un mal uso por terceros, por lo que debemos tomar los recaudos pertinentes.
Una manera de hacer un login automático puede ser guardar el nombre de usuario en una cookie y también la contraseña, cuando el visitante ingresa si las cookies están definidas y tiene contenido podríamos buscar en la base para validar estos datos y loguearlo automáticamente.
Esto sería una manera de hacerlo pero aquí se comprometen los datos del usuario de una manera grosera, la contraseña nunca puede ser guardada en un archivo de texto, cualquier con acceso físico a la computadora podría leer esta información.
Por lo tanto debemos tener en cuenta que es lo que deseamos guardar y tomar determinados recaudos a la hora de guardarlos, en el capítulo de seguridad en aplicaciones web veremos un poco más en detalle que y como guardarlo.

Written by Daniel Segovia

marzo 22nd, 2012 at 5:46 pm

Posted in 7.5 Cookies

Tagged with ,

Eliminar una cookie

Hacer un comentario

Eliminar una cookie puede hacerse de 2 maneras, la primera es definir una una cookie con el mismo nombre de la que deseamos eliminar sin ningún parámetro extra

<?php
setcookie("nombre_cookie");
?>

Y la segunda es usar setcookie y enviar como parámetro un tiempo de caducidad pasado.

<?php
setcookie("nombre_cookie", "", time() - 3600);
//Fijate la fecha de caducidad 1 hora atrás
?>

Written by Daniel Segovia

marzo 22nd, 2012 at 5:39 pm

Definir una cookie

Hacer un comentario

La función setcookie define una cookie para ser enviada en las cabeceras HTTP, al ser enviada a través de las cabeceras es obligatorio que nuestro script no genere ninguna salida, esto se debe a que es una restricción del protocolo.
Cualquier carácter que sea impreso, inclusive hasta una espacio, antes de usar setcookie producirá un error

setcookie acepta 7 parámetros, sin embargo, solamente es obligatorio el primero, aquí una lista de los parámetros en el orden correcto de la función.

  • name: El nombre de la cookie.
  • value: El valor que será guardado en la cookie.
  • expire: El tiempo en el que expira la cookie. Es una fecha Unix, por lo que probablemente use la función time() o mktime().
  • path: Por defecto utiliza ‘/’, esto significa que la cookie estará disponible para todo el dominio. Por ejemplo sí este parámetro es seteado en ‘/administrador’ la cookie podrá ser utilizada en el directorio administrador y todos sus subdirectorios.
  • domain: La cookie estará disponible para el dominio
  • secure: Indica si la cookie debe viajar en forma segura en una conexión HTTPS desde el cliente
  • httponly: Si este parámetro esta en TRUE la cookie será legible solo por el protocolo HTTP, es decir no será posible acceder por otros lenguajes como ser javascript
<?php
setcookie("nombre_cookie", "Este es el valor de mi cookie", time() + 3600);
// La cookie expira en 1 hora.
?>

Ahora para recuperar la cookie tenemos $_COOKIE

<?php
echo $_COOKIE['nombre_cookie'];
?>

Recordemos que estos procesos se realizan a través de los headers HTTP, entonces si en un mismo script, seteo la cookie, recién ésta estará disponible en el próximo request que se realice sobre el dominio. Es decir, en nuestro primer request la cookie será enviada y se generará el archivo de texto con la información, por ende si necesito usar esta cookie estará disponible en el próximo request.

Written by Daniel Segovia

marzo 22nd, 2012 at 5:33 pm

Posted in 7.5 Cookies

Introducción a las Cookies

Hacer un comentario

Una cookie es información que se envía a través del servidor web y es almacenada en el disco rígido del visitante por medio del navegador en un archivo de texto.
Cuando haya una nueva petición al mismo dominio las cookies desde nuestro disco rígido serán enviadas al servidor web, por lo tanto, de esta manera nos permitirá recuperar la información guardada en la cookie, entonces de acuerdo a hayamos guardado en las cookies podremos determinar siguientes acciones.
Una manera frecuente de usar una cookie es en los inicios de sesión automáticos, el famoso checkbox que dice “No cerrar sesión” en la mayoría de los portales.
La identificación de la cookie es una combinación de la computadora, navegador y usuario.

Written by Daniel Segovia

marzo 15th, 2012 at 5:14 pm

Posted in 7.5 Cookies

Configuración de sesiones

Hacer un comentario

Ahora una explicación de los items más importantes en la configuración de las sesiones en PHP, en la siguiente imagen puede verse la configuración actual del servidor donde estemos corriendo nuestros scripts, con la función info(), nativa de PHP, en la sección Sessions

Sesiones

  • session.auto_start en caso de estar encendido iniciará las sesiones automáticamente cuando los visitantes ingresen a nuestro sitio, por defecto esta apagado
  • session.cache_expire determina el tiempo de vida de la sesión, éste está expresado en minutos
  • session.name especifica el nombre de la sesión que se utiliza como nombre de la cookie. El valor predeterminado es PHPSESSID.
  • session.save_path define el argumento que se pasa al controlador de almacenamiento. Esta será la ruta donde se creen los archivos de las sesiones.
  • session.use_cookies especifica si el módulo usará cookies para almacenar el identificador de sesión en el cliente. El valor predeterminado es 1 (habilitado).

Written by Daniel Segovia

marzo 13th, 2012 at 1:13 pm

Posted in 7.4 Sesiones

Trabajar con sesiones

Hacer un comentario

Cómo hemos explicado anteriormente las sesiones nos guardarán información mientras pasemos de una página a la otra.

Las sesiones en PHP trabajan con un array llamando $_SESSION y cada key que generemos serán el contenedor de la información que deseemos guardar.
session_start() creará una nueva sesión o reanudará la sesión que ya fue creada. Esta función envía varias cabeceras HTTP por eso es importante que sea llamada antes de imprimir algún carácter en el navegador.

Nota: La configuración de PHP posee session.auto_start, por defecto en 0, por ende, deshabilitado. Sí es habilitado no se requerirá inicializar las sesiones con session_start()

Veamos un ejemplo, en el que con sesiones contaremos la cantidad de páginas que va visitando el usuario.

<?php
//header.php
session_start();
 
if(isset($_SESSION['contador'])){
    $_SESSION['contador']++;
}else{
    $_SESSION['contador'] = 1;
}
?>
<html>
<head>
    <title>Contador</title>
</head>
<body>
<div id="header"><a href="1.php">1</a> - <a href="2.php">2</a> - <a href="3.php">3</a></div>
<div id="contenido">
<?php
//footer.php
?>
</div><!--fin de div id contenido-->
<div id="footer">Usted ha visitado <?=$_SESSION['contador'];?></div>
</body>
</html>
<?php
//1,php
require_once 'header.php';
?>
Usted esta en la p&aacute;gina 1.php
<?php
require_once 'footer.php';
?>
<?php
//2.php
require_once 'header.php';
?>
Ahora estamos en 2.php
<?php
require_once 'footer.php';
?>
<?php
//3.php
require_once 'header.php';
?>
Esta es la &uacute;ltima 3.php
<?php
require_once 'footer.php';
?>

Written by Daniel Segovia

febrero 28th, 2012 at 5:27 pm

Introducción a sesiones

Hacer un comentario

Es habitual trabajar con sesiones en desarrollos PHP. El objetivo de las sesiones es almacenar información a través de los diferentes archivos mientras dure la navegación del usuario. Es decir, el usuario puede estar visitando las diferentes secciones de nuestra aplicación y nosotros podemos guardar determinados datos que creamos convenientes.

Cuando un usuario ingresa a nuestra aplicación una sesión única es generada, ésta será exclusiva de él y durará el tiempo que él este en nuestro sitio. Cualquier información puede ser almacenada en ellas, datos del usuario, páginas que visite o algunas preferencias que seleccione.

PHP posee un conjunto de sencillas funciones para trabajar con las sesiones que veremos a continuación en este capítulo.

Written by Daniel Segovia

febrero 28th, 2012 at 4:12 pm

Posted in 7.4 Sesiones

Tagged with , ,

Seguridad en aplicaciones Web

Hacer un comentario

Es verdad que un porcentaje muy alto de los usuarios que usen nuestras aplicaciones seguirán los pasos que nosotros pretendemos que hagan.
Luego tendremos un grupo reducido de usuarios que por medio de algún error hagan que la aplicación no se comporte como nosotros deseamos.
Por último tendremos un grupo de usuarios malintencionados que busquen errores en nuestra aplicación con fines varios, pueden buscar robar información, el hecho romper simplemente por maldad, instalar algo en el servidor donde corre nuestra aplicación o cualquier otro fin.
Sin importar que grupo de usuarios está accediendo a nuestra aplicación debemos tener un sistema seguro.
Existen muchos niveles que puede ser blanco de ataque, así que desde el lado que nos compete debemos tomar todos los recaudos para que su funcionamiento sea óptimo y seguro.

Como primera medida es fundamental no creerle al usuario, nosotros pretendemos que el usuario nos envíe un número y él nos termina enviando una cadena de texto, por error, negligencia o mal intención. Para evitarlo validaremos que lo que recibimos es lo que pretendemos recibir.

En el ejemplo anterior lo que se envía por el formulario ingresa directamente en la base de datos, ahora nosotros sabemos que queremos que llegue, entonces haremos un cast, esto significa forzar a que el dato se convierta en el tipo de dato que deseamos.

PHP ofrece estas posibilidades para forzar los tipos de datos.

  • (int), (integer) – forzado a integer
  • (bool), (boolean) – forzado a boolean
  • (float), (double), (real) – forzado a float
  • (string) – forzado a string
  • (array) – forzado a array
  • (object) – forzado a object
  • (unset) – forzado a NULL (PHP 5)

Le agregamos algunos campos al formulario para trabajar con más tipos de datos.

<html>
<head>
    <title>Registrarse</title>
</head>
<body>
<h1>Registraci&oacute;n</h1>
<form method="post" action="registrarse.php">
    <table width="400">
        <tr>
            <td width="150"><label>Nombre:</label></td>
            <td width="250"><input type="text" name="nombre" /></td>
        </tr>
        <tr>
            <td><label>Email:</label></td>
            <td><input type="text" name="email" /></td>
        </tr>
        <tr>
            <td><label>Edad:</label></td>
            <td><input type="text" name="edad" /></td>
        </tr>
        <tr>
            <td><label>Colores:</label></td>
            <td>
                Rojo - <input type="checkbox" name="colores[]" value="Rojo" /> <br />
                Celeste - <input type="checkbox" name="colores[]" value="Celeste" /> <br />
                Blanco - <input type="checkbox" name="colores[]" value="Blanco" /> <br />
                Negro - <input type="checkbox" name="colores[]" value="Negro" /> <br />
            </td>
        </tr>
        <tr>
            <td><label>Contrase&ntilde;a:</label></td>
            <td><input type="password" name="contrasena"/></td>
        </tr>
        <tr>
            <td colspan="2" align="right"><input type="submit" name="registrarse" value="Registrarse"/></td>
        </tr>
    </table>
</form>
</body>
</html>

Y aquí el procesamiento de lo que viene por el formulario tomando los recaudos de los que estamos hablando.

<?php
$mysqli = new mysqli("localhost", "usuario", "password", "nombre_base");
 
if (mysqli_connect_errno()) {
    printf("Imposible conectarse: %s\n", mysqli_connect_error());
    exit();
}
 
$query = "INSERT INTO usuarios (nombre,email,edad,colores,contrasena) VALUES (?,?,?,?,?)";
 
$nombre = (string) $_POST['nombre'];
$email = (string) $_POST['email'];
$edad = (int) $_POST['edad'];
$colores = (array) $_POST['colores'];
$contrasena = (string) $_POST['contrasena'];
 
$colores = implode($colores, ",");
 
/* Ejecuto el método prepare y este me va a devolver el objeto */
if ($stmt = $mysqli->prepare($query)) {
 
    /* Reemplazo las ? por las variable con bind_param */
    $stmt->bind_param('ssiss', $nombre, $email, $edad, $colores, $contrasena);
 
    /* ejecuto el  query */
    $stmt->execute();
 
    /* cierro stmt */
    $stmt->close();
}
?>
<html>
<head>
    <title>Registrarse</title>
</head>
<body>
<h1><?=$nombre;?>, usted se ha registrado exitosamente</h1>
</body>
</html>

Written by Daniel Segovia

febrero 22nd, 2012 at 3:40 pm

Posted in 7.8 Seguridad

Entradas de usuarios

Un comentario

Ahora que podemos mezclar el HTML y PHP necesitaremos que el usuario empiece a interactuar en nuestra plataforma.
Una registro de usuarios es un ejemplo de la interacción que estoy hablando, el usuario completará sus datos en un formulario, luego estos serán enviados a un archivo PHP para ser procesados, de esta manera comenzaremos a ver como el usuario nos enviará información, en este caso lo guardaremos en una base de datos, pero es a modo de ejemplo ya que el proceso a realizar es indiferente para nosotros por que cualquiera sea la acción que tomemos no es importante, lo importante aquí es que estaremos recibiendo información a través del formulario para realizar la acción que creamos conveniente.

Los formularios HTML podemos, a grandes rasgos, dividirlos en 4.

  • Apertura del formulario con el tag <form>
  • Los tags para que el usuario ingrese la información, por ejemplo <input>, <textarea> o <select> entre otros
  • El botón para enviar el formulario con el tag <input>
  • EL cierre del formulario con el tag </form>

Creamos un formulario que pida al usuario ingresar su nombre completo, su email y una contraseña, estos datos serán enviados a un archivo PHP y será el encargado de guardarlos en una base de datos MySQL

<html>
<head>
    <title>Registrarse</title>
</head>
<body>
<h1>Registraci&oacute;n</h1>
<form method="post" action="registrarse.php">
    <table width="400">
        <tr>
            <td width="150"><label>Nombre:</label></td>
            <td width="250"><input type="text" name="nombre" /></td>
        </tr>
        <tr>
            <td><label>Email:</label></td>
            <td><input type="text" name="email" /></td>
        </tr>
        <tr>
            <td><label>Contrase&ntilde;a:</label></td>
            <td><input type="password" name="contrasena"/></td>
        </tr>
        <tr>
            <td colspan="2" align="right"><input type="submit" name="registrarse" value="Registrarse"/></td>
        </tr>
    </table>
</form>
</body>
</html>

Como podemos observar muchos de los tags HTML que utilizamos tienen lo que se denominan atributos

El tag <form> posee 2 atributos, el primero es method y éste especificará el método HTTP que usará cuando envíe la información. El segundo es action y especifica donde será enviada la información cuando el formulario sea enviado.

Luego tenemos el tag <input> nuestro primero atributo es type y posee las siguientes variantes button, checkbox, file, hidden, image, password, radio, reset, submit, text, en este ejemplo usamos 3 de éstas, text que será un campo de texto libre, password que también será un campo de texto libre pero no serán mostrados los caracteres que iremos tipeando y por último submit que será un botón que al presionarlo enviará el formulario completo al action del form. También tenemos el atributo name que es un nombre que identificará al elemento y el último atributo usado aquí es value este será el valor predeterminado que tomará el elemento.

Ahora recibamos la información que nos provee el formulario y guardemos ésta en la base de datos.
Creamos un archivo registrarse.php (que es el action del formulario) e insertamos los datos.
La información nos llegará al archivo PHP en un array llamado $_POST los índices del array serán igual a los name que hemos definido en el formulario

<?php
$mysqli = new mysqli("localhost", "usuario", "password", "base");
 
if (mysqli_connect_errno()) {
    printf("Imposible conectarse: %s\n", mysqli_connect_error());
    exit();
}
 
$query = "INSERT INTO usuarios (nombre,email,contrasena) VALUES (?,?,?)";
 
/* Ejecuto el método prepare y este me va a devolver el objeto */
if ($stmt = $mysqli->prepare($query)) {
 
    /* Reemplazo las ? por las variable con bind_param */
    $stmt->bind_param('sss', $_POST['nombre'], $_POST['email'], $_POST['contrasena']);
 
    /* ejecuto el  query */
    $stmt->execute();
 
    /* cierro stmt */
    $stmt->close();
}
?>
<html>
<head>
    <title>Registrarse</title>
</head>
<body>
<h1><?=$_POST['nombre'];?>, usted se ha registrado exitosamente</h1>
</body>
</html>

Written by Daniel Segovia

febrero 7th, 2012 at 4:38 pm

Separando la lógica de la vista

Hacer un comentario

Vamos a embeber código de la mejor manera posible, separando 100% la lógica que le queremos dar al sistema de la vista que lo va a mostrar.
La manera es con include o require, básicamente programaremos nuestra lógica en un archivo y este será incluido por nuestra vista.

<?php
//logica.php
if (date('H') >= 14 && date('H') <= 19) {
    $mensaje = 'Buenos tardes';
} elseif (date('H') >= 6 && date('H') <= 13) {
    $mensaje = 'Buenos d&iacute;as';
}else {
    $mensaje = 'Buenos noches';
}
?>
<?php
//index.php
include "logica.php";
?>
<html>
<head>
    <title>Saludo</title>
</head>
<body>
<?= $mensaje; ?>
<?php
//Usar <?php echo $mansaje; ?> es lo mismo que usar <?=$mensaje;?>
?>
</body>
</html>

Veamos el resultado.

<html>
<head>
    <title>Saludo</title>
</head>
<body>
Buenos tardes</body>
</html>

Written by Daniel Segovia

enero 26th, 2012 at 3:57 pm

Embebiendo código PHP y organizándolo

Hacer un comentario

En el ejemplo anterior podemos observar como embebimos código PHP dentro de una estructura de HTML.
Aquí trabajaremos en un concepto similar pero la diferencia será el orden que le demos a nuestro bloques de código.
Por lo general, lo más recomendable es separar nuestro código PHP y HTML lo más posible, esta separación puede darse en archivos diferentes trabajando con includes o bien separaremos nuestro código en bloques, por un lado la lógica del PHP y por el otro el HTML. Esto hará mucho más legible el sistema en si, tanto como para futuras modificaciones como también para que cuando algún colega desarrollador necesite añadir, modificar o eliminar parte nuestro desarrollo.

<?php
if (date('H') >= 14 && date('H') <= 19) {
    $mensaje = 'Buenos tardes';
} elseif (date('H') >= 6 && date('H') <= 13) {
    $mensaje = 'Buenos d&iacute;as';
}else {
    $mensaje = 'Buenos noches';
}
?>
<html>
<head>
    <title>Saludo</title>
</head>
<body>
<?php echo $mensaje; ?>
</body>
</html>

El resultado es el mismo que antes.

<html>
<head>
    <title>Saludo</title>
</head>
<body>
Buenos tardes</body>
</html>

Written by Daniel Segovia

enero 26th, 2012 at 1:35 pm

Embeber código PHP

Un comentario

Naturalmente PHP no puede ser embebido en archivos HTML ya que éstos últimos, en configuraciones predeterminadas, no serán procesados por el interprete de PHP.
Sin embargo, si estamos desarrollando una aplicación web necesitaremos tener código HTML y PHP en un mismo archivo.
Los archivos con extensión .php serán procesados por el interprete, pero este interprete solamente procesará el contenido delimitado dos tags que da comienzo al código php y ?> que finaliza el mismo, lo que este por fuera de éstos tags no será procesado, por ende puede ser tranquilamente código HTML

Un ejemplo

<html>
<head>
    <title>Saludo</title>
</head>
<body>
<?php
if (date('H') >= 14 && date('H') <= 19) {
    echo 'Buenos tardes';
} elseif (date('H') >= 6 && date('H') <= 13) {
    echo 'Buenos d&iacute;as';
}else {
    echo 'Buenos noches';
}
?>
</body>
</html>

Aquí viene la parte importante, todo lo que es procesado en php y enviado a la salida, en este caso con echo, se transforma en simple texto plano, para este caso el resultado del script será el siguiente.

<html>
<head>
    <title>Saludo</title>
</head>
<body>
Buenos tardes</body>
</html>

Como puede observarse en el resultado se imprime el “Buenas tardes”, esto se produce por que la hora en la que se ejecuto el script fue cerca de las 15, por lo tanto en condicional entro en las condiciones de mayor e igual a 14 y menor e igual a 19.
Al fin y al cabo lo importante no es por que parte de if sigue el flujo del sistema, en este punto lo más importante de comprender es que la salida es texto plano, que luego será nuestra salida será interpretada por el navegador con el que estemos visualizando la página web.

Written by Daniel Segovia

enero 26th, 2012 at 1:12 pm

Posted in 7.2 Embeber código

Tagged with , , ,

Introducción al desarrollo de aplicaciones web

Hacer un comentario

La mayoría de las páginas web está hecha en PHP por lo tanto en este capítulo veremos la interacción que existe entre el HTML y PHP.
Aquí una lista global de lo que estaremos realizando a continuación

  • Embeber código PHP en archivos HTML
  • Mostrar contenido dinámico
  • Recoger información de formularios
  • Seguridad sobre la información recibida
  • Datos persistentes a través de Cookies y Sessions
  • Organizar una aplicación Web

Written by Daniel Segovia

enero 25th, 2012 at 12:11 pm