viernes, 10 de julio de 2009

Ejercicio Clases

Buenas, les dejo para que bajen el ejercicio resuelto planteado la clase del viernes (grupos y solistas usando clases abstractas) y el ejemplo de la clase forma.

Les recomiendo que vean ambos y consulten dudas.

«bajar archivos»

Saludos

jueves, 9 de julio de 2009

Ejemplo clase menu + CSS

Gente, les subo una continuación del ejemplo que dimos el lunes 06/07 de la clase menú.
Le agregué a la clase un par de propiedades mas y el constructor, y a su vez les estoy pasando un ejemplo utilizando una hoja de estilos.
Saludos

«bajar archivo»

domingo, 14 de junio de 2009

Toque en "La comuna" / UNDERGROUND 3

Bueno gente, como quizá alguno de uds. sepa, este Jueves 18 a las 21:45 / 22 Hrs, estaré tocando junto con mi banda "Significación" en La Comuna (Soriano 1401 esquina Santiago de Chile).
Estamos participando en el concurso "UNDERGROUND 3" y ya estamos en semifinales. Las anticipadas me las piden a mi y salen $70 así que si están en en la vuelta a esa hora, espero verlos.

martes, 9 de junio de 2009

Ejercicio de sesión

Crear 3 páginas PHP.

- index.php: Muestre en caso de no haber iniciado la sesión, un formulario para hacer "login". Y si se inició la sesión se muestre el texto "usted ya ha iniciado la sesión. Haga click aquí para cerrar la sessión". El formulario de login debe enviar la información a login.php. y el texto "click aquí" de "Haga click aquí para cerrar la sessión", envía a logout.php para terminar la sesión.

- login.php: Recibe los datos del formulario de login (index.php) y en caso de ser correctos inicia la sesión y redirige a index.php.

- logout.php: Termina la sessión y redirige a index.php

SESIONES, variables de sesión.

Para trabajar con sesiones, lo primero a tener en cuenta es el uso de la funcion "session_start".

Esta función, verifica si una sessión ya fue creada. Si es así, continua con ella, sino crea una nueva sesión.


Es IMPORTANTE recordar que el uso de esta función debe darse al inicio del documento. Antes de cualquier código html.

ej:


<?php

session_start();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Documento sin t&iacute;tulo</title>

</head>


<body>

</body>

</html>


------

Bien, una vez inicializada la sesión (usando session_start) podemos comenzar a trabajar con la variable $_SESSION.

Podemos definir una variable de sesión de esta forma:


$_SESSION['usuario'] = "pepe";


esta variable estará presente a lo largo de la sesión. Esto significa hasta que se cierre la ventana del navegador o hasta que se termine explícitamente la sesión.

Para esto, usaremos la función session_unset, que termina la sesión borrando también todas las variables que se hayan guardado en $_SESSION.


Ej:


session_unset();


A recordar que siempre que se desee usar la variable $_SESSION, se debe haber inicializado la sesion con la función "session_start"

Recibiendo datos desde Formularios. POST Y GET


Ahora pasaremos a recibir los datos desde un formulario que tengamos creado.

Para esto utilizaremos las variables de php $_POST y $_GET que van a contener toda la información que el visitante haya completado en nuestro formulario y haya enviado.

En el trabajo con formularios vimos que al escribir el tag FORM, definíamos un método de envío de datos (atrituto "method" del tag FORM).

Al trabajar con las variables $_POST y $_GET se debe tener en cuenta qué metodo fue utilizado en el formulario del que recibiremos los datos, ya que si se utilizó el método de envio "post" utilizaremos la variable $_POST, y si utilizamos el método "get" entonces utilizaremos la variable $_GET.

Siguiendo esa nota de precaución, pasemos a trabajar con los datos que recibimos.


-----


Supongamos que tenemos este formulario:


<form method="post" action="guardar.php">

Nombre:

<input type="text" name="nombre" />

<br />

Clave:

<input type="password" name="clave" />

<br />

Edad:

<input type="text" name="edad" />

<br />

Gustos:

<br />

<input type="checkbox" value="libros" name="libros" /> Libros:

<input type="checkbox" value="comidas" name="comidas" /> Comidas:

<input type="checkbox" value="mascotas" name="mascotas" /> Mascotas:

<br />

Comida Favorita:

<br />

<input type="radio" value="1" name="comida_favorita" /> Dulce

<br />

<input type="radio" value="2" name="comida_favorita" /> Salado

<br />

Género

<select name="genero">

<option value="caballero">masculino</option>

<option value="dama">femenino</option>

</select>

<br />

Comentarios:

<br />

<textarea name="mensaje"></textarea>

<br />

<br />

<input type="reset" value="Resetear" />

<input type="submit" value="Enviar" />

</form>


Para trabajar con los datos que el visitante complete:

1) en el tag FORM, al principio, usamos el atributo "action" para indicar que archivo recibirá los datos que se envien en este formulario. Así que el archivo "guardar.php" será en que tenga todo el código para manejar los datos del formulario.

2) en el tag FORM, al principio, usamos el atributo "method" para indicar el método de envío de datos. En este ejemplo fue "post" esto significa que todo los datos de nuestro usuario (que se envien por este formulario) llegarán en la variable $_POST.


Con estos datos el código en "guardar.php" puede ser el siguiente:


<?php


$nombre = $_POST['nombre'];

$clave = $_POST['clave'];


if($_POST['edad'] > 18){

echo "usted es mayor de edad <br />";

}else{

echo "sos menor de edad <br />";

}


if($_POST['libros'] == "libros"){

echo "debes leer el señor de los anillos!";

}


if($_POST['comida_favorita'] == 1){

echo "tenés que probar el arroz con leche <br />";

}else{

echo "como postre un pan con grasa <br />";

}


echo $_POST['genero'].", muy buenas tardes! <br />";


echo "los comentarios que escribió fueron: <br />".$_POST['comentarios'];


Como se puede ver, en el archivo "guardar.php" estamos usando casi todos los controles que conocemos. Para es fue necesario que en el formulario html hayamos definido un nombre ("name") para cada uno de los controles, sino sería imposible hacer referencia a algun dato escrito por el visitante.

FORMULARIOS

Para pedir/recabar información de los usuarios de nuestro sitio utilizaremos formularios.

En html indicamos el inicio/fin de un formulario con el tag FORM.


Definiendo el formulario:

<form method="post" action="index.php">

</form>


En el tag FORM usaremos "method" para indicar el método de envío de los datos que el usuario escriba y "action" para indicar el archivo destino a donde se enviará la información.

Como métodos posibles tenemos "get" y "post" (sin las comillas), siendo GET el método que envia los datos por el url (y son visibles) y POST el método que se envia en los contenido/headers del documento.

Si no especificamos ACTION, se enviará la información a el mismo archivo donde esté el formulario.


Dentro de este FORM, podremos crear los elementos que usaremos para que el usuario ingrese la información que necesitemos. Estos elementos los llamaremos "controles".

La mayoría de los controles se crean, utilizando el tag INPUT y definiendo un tipo de input (en el atributo TYPE).

Algunos tipos:

- text: Campo de texto de una sola línea (para ingresar un nombre, dirección, teléfono, etc)

- password: Campo de una sola linea para ingresar texto que permanece oculto (por lo general usado en ingreso de claves/contraseñas)

- checkbox: Control de selección múltiple (permite seleccionar varios items de entre un grupo de opciones)

- radio: Control de selección única ( permite seleccionar un solo item de entre un grupo de opciones)

- reset: Boton para resetear todos los elementos del formulario a su estado inicial

- submit: Boton usado para enviar todos los datos ingresados.

- image: Es similar a "submit" solo que se utiliza una imagen en lugar de un texto

- button: Boton personalizable ( permite asignar via javascript, un comportamiento personalizado)


Cada uno de estos tipos (text/password/checkbox/radio/checkbox/radio/reset/image/submit/button) se debe indicar en el atributo "type" de un control.

Para cada control utilizado, es MUY importante definir un "name" (nombre de identificación) que será el que utilicemos para diferenciar los datos al momento de recibir toda la información.

Atributo VALUE

- En el caso de los botones (reset/submit/button) se puede utilizar éste atributo para indicar el texto que se muestra en el botón.

- En el caso de los elementos de seleccion (checkbox/radio) se utiliza para indicar el valor que tendrá la opción seleccionada

- En el caso de los campos de entrada (text/password), se usa para mostrar un valor por defecto.


En todos los casos, cuando se reciben los datos del formulario, el valor que la persona haya seleccionado/escrito en un control, se identifica con el atributo "name". Nunca olvidar el atributo "name"


SELECT y TEXTAREA


El control SELECT permite otra forma de seleccionar una opcion entre varias ( o más de una opcion a la vez, más adelante lo veremos)

pero a diferencia de los inputs "radio" y "checkbox", se muestra como una lista desplegable.

Para usarlo, necesitamos el tag SELECT con el atributo "name", y dentro de este tag, se escribirá el tag OPTION.

Se escribirá un tag OPTION por cada opción que necesitemos se muestre, y en cada OPTION se utilizará el atributo "value" para asignar el valor que tenga la opción seleccionada:

<select name="mascotas">

<option value="si">SI, TENGO MASCOTAS</option>

<option value="no">NO, NO TENGO</option>

</select>

Importante: El valor que se establezca en "value", será el que se envie, y el valor que esté entre "<option>" y "</option>", será el que el usuario vea en pantalla. En este último ejemplo, el texto que el usuario ve, es "SI, SI TENGO MASCOTA" para la primera opción y para la segunda "NO, NO TENGO". Así que por ejemplo, si la persona selecciona la opción "SI, TENGO MASCOTA" se envía el valor que está en el "value" de esa opción (es decir "si").


El control TEXTAREA es usado para escribir texto de más de una línea. Para usarlo solo se debe definir un "name" que será el identificador al recibir lo que se haya escrito. A diferencia de los otros controles, el contenido de este control, irá escrito entre "<textarea>" y "</textarea>".

Ej:

<textarea name="comentario">

este es un texto largo que va a ser mostrado en más de una linea

</textarea>


Aquí un ejemplo de formulario completo:


<form method="post" action="guardar.php">

<input type="text" name="nombre" />

<input type="password" name="clave" />



<input type="checkbox" value="libros" name="libros" />

<input type="radio" value="2" name="sexo" />



<select name="genero">

<option value="m">masculino</option>

<option value="f">femenino</option>

</select>



<textarea name="mensaje">

</textarea>



<input type="reset" value="Resetear" />

<input type="submit" value="Enviar" />

<input type="image" src="foto.jpg" />

<input type="button" value="Saludar" />

</form>