martes, 29 de junio de 2010

Flickr

This is a test post from flickr, a fancy photo sharing thing.

miércoles, 1 de julio de 2009

jueves, 11 de junio de 2009

Formularios en php

FORMULARIOS CON PHP

Los Formularios no forman parte de PHP, sino del lenguaje estándar de Internet, HTML. Vamos a dedicar en este capítulo algunas líneas al HTML, para entrar posteriormente a tratarlos con PHP.

Todo formulario comienza con la etiqueta

. Con . Con ACTION indicamos el script que va procesar la información que recogemos en el formulario, mientras que METHOD nos indica si el usuario del formulario va ha enviar datos ( post ) o recogerlos ( get ). La etiqueta indica el final del formulario.

A partir de la etiqueta

vienen los campos de entrada de datos que pueden ser:

Cuadro de texto:

Cuadro de texto con barras de desplazamiento:

Casilla de verificación:

Botón de opción:

Menú desplegable:

Boton de comando:

Campo oculto:

Este último tipo de campo resulta especialmente útil cuando que remos pasar datos ocultos en un formulario.

Como habrás observado todos lo tipos de campo tienen un modificador llamado name , que no es otro que el nombre de la variable con la cual recogeremos los datos en el script indicado por el modificador ACTION de la etiqueta FORM FORM , con value establecemos un valor por defecto.

A continuación veamos un ejemplo, para lo cual crearemos un formulario en HTML como el que sigue y lo llamaremos formulario.htm :

Tu nombre

Tu sistema favorito

¿Te gusta el futbol ?

¿Cual es tu sexo?

Hombre

Mujer

Aficiones

Y ahora creemos el script PHP llamado desde le formulario mis_datos.php :

Todos los datos se encuentran en la variable $_POST, ya que el formulario está enviado por el método post.

if (isset($_POST['enviar']) {

echo "Hola " . $_POST['nombre'] . " que tal estás
n";

echo "Eres " . $_POST['sexo'] . "
n";

echo "Tienes " . $_POST['edad'] . "
n";

echo "Tu sistema favorito es " . $_POST['sistema'] . "
n";

if (isset($_POST['futbol']) {

echo "Te gusta el futbol
n";

} else odigo" style="margin-left: 50">} else {

echo "NO te gusta el futbol
n";

}

if ($_POST['aficiones'] != "") {

echo "Tus aficiones son:
n";

echo nl2br($_POST['aficiones']);

} else {

echo "NO tienes aficiones
n";

}

}

echo "VOLVER AL FORMULARIO"

?>

Una vez rellenados los datos del formulario, pulsamos el botón Enviar datos , con lo que le campo enviar toma lo que su etiqueta value indica, es decir enviar="Enviar datos" . En nuestro script lo primero que evaluamos es que se haya enviado el formulario, y para ello nada mejor que comprobar que la variable $enviar no está vacía. Le ponemos el signo dólar delante a enviar , ponemos el signo dólar delante a enviar , ya que en PHP todas las variables se les refiere con este signo.

Hay que tener en cuenta que si fusionáramos el código de ambos ficheros, nos ahorraríamos uno, pero no también se puede hacer en dos como lo estamos haciendo. Si la variable $enviar está vacia, enviamos el formulario.

if ($enviar) {

echo "Hola " . $nombre . " que tal estás
n";

echo "Eres " . $sexo . "
n";

echo "Tienes " . $edad . "
n";

echo "Tu sistema favorito es " . $sistema . "
n";

if ($futbol) {

echo "Te gusta el futbol
n";

} else {

echo "NO te gusta el futbol
n";

}

if ($aficiones != "") {

<>

echo "Tus aficiones son:
n";

echo nl2br($aficiones);

} else {

echo "NO tienes aficiones
n";

}

echo "VOLVER AL FORMULARIO"

} else {

">

Tu nombre

Tu sistema favorito

¿Te gusta el futbol ?

¿Cual es tu sexo?

Hombre

="codigo" style="margin-left: 100">

Mujer

Aficiones

} //fin IF

?>

La variable de entorno $PHP_SELF , es una variable de entorno que nos devuelve el nombre del script que estamos ejecutando. Y por último, hacer notar el uso de la función nl2br() , nl2br() , con la cuál sustituimos los retornos de carro del texto, los cuáles no reconocen los navegadores, por la etiqueta
.

Descarga de ficheros desde un formulario

Vamos a ver un caso especial, como descargar un archivo desde un formulario. Para ello utilizaremos una etiqueta INPUT de tipo FILE , soportada a partir de las versiones de los navegadores Nestcape Navigator 2.0 e Internet Explorer 4.0.

El formulario debe usar el método post , y el atributo post , y el atributo enctype debe tener el valor multipart/form-data . Además al formulario debemos añadirle un campo oculto de nombre MAX_FILE_SIZE , al cuál le daremos el valor en bytes del tamaño máximo del archivo a descargar.

Cuando el formulario es enviado, PHP detectará automáticamente que se está descargando un archivo y lo colocará en un directorio temporal en el servidor. Dicho directorio será que el que esté indicado en el archivo de configuración php.ini , o en su defecto en el directorio temporal del sistema.

Cuando PHP detecta que se está descargando un archivo crea varias variables con el prefijo del nombre del archivo pero con distintas terminaciones. La variable terminada en $_FILES['archivo']['name'] contiene el nombre original del archivo, $_FILES['archivo']['size'] contiene el tamaño en bytes de éste, y la variable $_FILES['archivo']['type'] nos indicará el tipo de archivo si éste es ofrecido por el navegador.

Si el proceso de descarga no ha sido correcto la variable archivo tomará el valor none y _size será 0 , y si el proceso ha sido correcto, pero la variable $_FILES['archivo']['size'] da 0 , quiere decir que el archivo a descarga supera el tamaño máximo indicado por MAX_FILE_SIZE .

Una vez descargado el archivo, lo primero que debemos hacer es moverlo a otro lugar, pues sino se hace nada con él, cuando acabe la ejecución de la página se borrará.

Veamos un ejemplo de todo lo dicho.

if (isset($_POST['enviar']) {

if ($_FILES['archivo']['name'] != "" && $_FILES['archivo']['size'] != 0){

echo "Nombre: $archivo_name
n";

echo "Tamaño: $archivo_size
n";

echo "Tipo: $archivo_type
n";

if (! move_uploaded_file ($_FILES['archivo']['tmp_name'], "directorio/".$_FILES['archivo']['name'])) {

echo "

No se ha podido copiar el archivo

n";

}

} elseif ($_FILES['archivo']['name'] != "" && $FILES['archivo']['size'] == 0) {

echo "

Tamaño de archivo superado

n";

} else {

echo "

No ha escogido un archivo para descargar

n";

}

echo "


n";

}

?>

" METHOD="post">

Archivo a descargar

viernes, 5 de junio de 2009

lunes, 1 de junio de 2009

compas


compas
Cargado originalmente por samaniego.jennifer
con los chicos