miércoles, 21 de noviembre de 2012

JAVA SCRIPT VALIDAR ENTRADAS DEL TECLADO


OBJETIVO:  Validar campo de texto sólo para escribir letras, números con javascript

<script> function soloLetras(e){
 key = e.keyCode || e.which;

Obtenemos el caracter presionado por el usuario con toLowerCase() convertiríamos la letra a minúscula. Con esto guardamos la letra presionada por el usuario en la variable tecla.
tecla = String.fromCharCode(key).toLowerCase();

Se Crear una lista con todas las letras permitidas .
letras = " áéíóúabcdefghijklmnñopqrstuvwxyz";

Crear una lista de teclas especiales tales 8,37,39,46
especiales = [8,37,39,46];
tecla_especial = false

se busca si está la tecla presionada por el usuario en el array de teclas especiales "especiales"
 for(var i in especiales){
         if(key == especiales[i]){
                                                     tecla_especial = true;
                                                   break;
                                             }
          }

Verificamos si un caracter está dentro de otra cadena con indexOf . devolviendo como valor la posición de la cadena encontrada o el valor de -1 si es que no la encuentra , que para este caso queremos
                               if(letras.indexOf(tecla)==-1 && !tecla_especial)

falso si la tecla presionada no está en la lista de letras permitidas hecha por nosotros                               
return false;
                          }
 </script>

Usamos el evento onkeypress del campo de texto para hacer la llamada a la función
<input type="text" onkeypress="return soloLetras(event)">

INVESTIGACION:
Fuente:

Si hay algo que no podemos evitar es que la persona que visita tu página copie y pegue un texto no deseado al "input text" . Para eso podemos agregarle el atributo "onblur" a la etiqueta input llamando a una función que limpie el "input text" si es que encuentra un caracter no deseado.
Código :

<script>
function soloLetras(e){
    key = e.keyCode || e.which;
    tecla = String.fromCharCode(key).toLowerCase();
    letras = " áéíóúabcdefghijklmnñopqrstuvwxyz";
    especiales = [8,37,39,46];
    tecla_especial = false
    for(var i in especiales){
 if(key == especiales[i]){
     tecla_especial = true;
     break;
        }
    }
    if(letras.indexOf(tecla)==-1 && !tecla_especial)
        return false;
}
function limpia(){
    var val = document.getElementById("miInput").value;
    var tam = val.length;
    for(i=0;i<tam;i++){
 if(!isNaN(val[i]))
 document.getElementById("miInput").value='';
    }
}
</script>

<input type="text" onkeypress="return soloLetras(event)" onblur="limpia()" id="miInput">

EJEMPLO DETALLADO JAVASCRIPT


Esta es una tarea dejada por la ingeniera donde se detalla lo que hace cada codigo :


<HTML>                           Abre el código html.
<HEAD>                          Abre la cabecera del documento.
 <title>Ejemplo de JavaScript</title>  Se coloca el titulo Ejemplo de JavaScript.
</HEAD>                      Cierra Cabecera del documento.
<BODY>                       Abre el cuerpo del documento.
<script LANGUAGE="JavaScript">  Se inicia javascript para ponerlo en memoria.
<!--                                                       Apartir de aca vine la programación javascript.
var cad = "Hello World",i;   Creamos una cadena asignando  la palabra Hello Word a la variable CAD .
var ja = new Array();                   Creamos un objeto le asignamos a la variable ja un array.
ja = cad.split("o");                        Lo que va a separar la cadena es la variable o.
with(document) {                          Se empieza a dar las opciones.
write("La cadena es: "+cad+"<BR>");  Se imprime el resultado de cada sin modificaciones.
write("Longitud de la cadena: "+cad.length+"<BR>"); Muestra la longitud de la cadena será 11   .                                                                                                             espacios
write("En grande: "+cad.big()+"<BR>"); Se cambia el tamaño de la letra por una grande.
write("Caracter 3 es: "+cad.charAt(3)+"<BR>"); Buscamos un caracter especifico el de la posición 3 dentro de la cadena que almacena la variable.

write("Fuente FIXED: "+cad.fixed()+"<BR>");  Muestra la cadena cambiada a la fuente Fixed.
write("De color: "+cad.fontcolor("#FF0000")+"<BR>"); Cambiamos el color de la cadena por el color correspondiente al numero hexadecimal.
write("De color: "+cad.fontcolor("salmon")+"<BR>"); Cambiamos el color de la cadena expresado por su nombre.
write("Tamaño 7: "+cad.fontsize(7)+"<BR>");  Especificamos el tamaño de la letra correspondiente al numero 7.
write("<I>orl</I> esta en la posicion: "+cad.indexOf("orl")); Cadena q da la poscicion dodne se encuentra en la cadena cad.
write("<BR>En cursiva: "+cad.italics()+"<BR>"); Cambia la letra y la muestra en cursiva.
write("La primera <I>l</I> esta, empezando a contar por detras,"); Escribe en pantalla lo expresado entre comillas.
write(" en la posicion: "+cad.lastIndexOf("l")+"<BR>") ; Empieza a buscar empezando desde atrás el parámetro I en la cadena y muestra la posición en la que se encuentra como indexOf.
write("Haciendola enlace: "+cad.link("doc.htm")+"<BR>"); Hace enlace con el valor de cad.
write("En pequeño: "+cad.small()+"<BR>"); Cambia el valor de cad a letra pequeña.
write("Tachada: "+cad.strike()+"<BR>"); Cambia el valor de cad a letra tachada.
write("Subindice: "+cad.sub()+"<BR>"); Cambia el valor de cad a letra subíndice.
write("Superindice: "+cad.sup()+"<BR>"); Cambia el valor de cad a letra superindice.
write("Minusculas: "+cad.toLowerCase()+"<BR>"); Cambia el valor de cad a letra minuscula.
write("Mayusculas: "+cad.toUpperCase()+"<BR>"); Cambia el valor de cad a letra mayuscula.
write("Subcadena entre los caracteres 3 y 10: "); Muestra lo escrito entre comillas.
write(cad.substring(2,10)+"<BR>"); Busca los valores entre los índices 2 y 10 y los devuelve.
write("Entre los caracteres 10 y 3: "+cad.substring(10,2)+"<BR>");  Busca los valores entre los índices 10 al 2 y los devuelve.
write("Subcadenas resultantes de separar por las <B>o:</B><BR>"); Muestra lo escrito entre comillas.
for(i=0;i<ja.length;i++) write(ja[i]+"<BR>"); Devolverá el resultado de separar la cadena del  indicador "o".

} //--> Cierra código script.
</script> 

</BODY> Cierra cuerpo del documento.
</HTML Cierra documento.


RESULTADO DEL CODIGO:

La cadena es: Hello World
Longitud de la cadena: 11
Haciendola ancla: Hello World
En grande: Hello World
Parpadea: Hello World
Caracter 3 es: l
Fuente FIXED: 
Hello World
De color: 
Hello World
De color: 
Hello World
Tamaño 7: 
Hello World
orl esta en la posicion: 7
En cursiva: Hello World
La primera l esta, empezando a contar por detras, en la posicion: 9
Haciendola enlace: 
Hello World
En pequeño: 
Hello World
Tachada: Hello World
Subindice: 
Hello World
Superindice: 
Hello World
Minusculas: hello world
Mayusculas: HELLO WORLD
Subcadena entre los caracteres 3 y 10: ello Worl
Entre los caracteres 10 y 3: llo Worl
Subcadenas resultantes de separar por las o:
Hell
W
rld

lunes, 19 de noviembre de 2012

INVESTIGACION DE AJAX


INVESTIGACION DE AJAX
REFERENCIAS:

Sirve para crear aplicaciones interactivas las cuales se ejecutan en el cliente se puden realizar cambios en las paginas sin que estas deban recargarse
Las funciones de llamada del AJAX se realizan en el JavaScript
El acceso a los datos se realiza mediante : XMLHttpRequest.
Los motores no entienden javascript por lo que no son almacenadas en los historiales
No puede volver a la pagina anterior.
CODIGO PARA MANDAR DATOS con GET :
conexion1.open('GET','pagina1.php?puntaje='+voto+'&nombre='+nom, true);
PASAR DATOS CON POST:
Hay varios puntos a tener en cuenta para cuando codificamos los datos para el envío por el método POST:
  1. Cuando llamamos al método open del objeto XMLHttpRequest como primer parámetro indicamos el string 'POST'
  conexion1.open('POST','pagina1.php', true);
 
  1. Llamamos al método setRequestHeader indicando que los datos a enviarse están codificados como un formulario.
  conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  1. Llamamos al método send del objeto XMLHttpRequest pasando los datos:
conexion1.send("nombre=juan&clave=z80");
Podemos concatenar datos extraidos de un formulario y enviarlos a través del método send.

JAVASCRIPT


INVESTIGACION de JAVA SCRIPT:
Javascript es diferente a  java tienen semánticas y propósitos diferentes tiene sintaxis parecida al C. La utilización este mejora la interfaz con el usuario y paginas web dinámicas. Surge para extender las capacidades del html. Sus comandos los analiza el HTML cuando deben ser ejecutados los comandos por eso es un lenguaje embebe.
Ejemplo:
<html>
<head>
</head>
<body>
<script language="javascript">
document.write('Hola Mundo');
</script>

</body>
</html>
Este código es el que inicializa el javascript:
<script language="javascript">
</script>

Para imprimir datos es el comando write
document.write('Hola Mundo'); son olvidar que la información debe ir entre comillas simples
EL JAVASCRIPT es sensible a MAYUSCULAS y minúsculas.
OTROS EJEMPLOS:
Acceder al elemento HTML con el id especificado y cambiar su contenido:
<html>
<html>
<body>

<h1>My First Web Page</h1>

<p 
id="demo">My First Paragraph</p>

<script>
document.getElementById("demo").innerHTML="My First JavaScript";
</script>


</body>
</html>
2.- El siguiente ejemplo escribe un elemento <p> directamente en la salida de documentos HTML:
<html>
<html>
<body>

<h1>My First Web Page</h1>

<script>
document.write("<p>My First JavaScript</p>");
</script>

</body>
</html>
3.- MOSTRAR ADVERTENCIA

<html>
<body>

<h1>My First Web Page</h1>

<p>My First Paragraph.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
document.write("Oops!
The document disappeared!");
}
</script>


</body>
</html>

CODIGO PHP PARA VER FECHA ACTUAL PC


CODIGO:

<html>
<head>
<body>
<titlle>
<h1>
<La Fecha Actual de la Pc es :>
<h2>
</tittle>
</head>
<?
Print DATE ( “ d/m/y ”);
?>
<body>
</html>

miércoles, 14 de noviembre de 2012

ORQUESTACION DE SERVICIOS WEB y EL MODELO LINDA


ORQUESTACION DE SERVICIOS WEB
MODELO LINDA
SERVICIOS WEB:
Un servicio web es un sitio en la web que nos ofrece la posibilidad de realizar una o múltiples tareas a través de él. Mientras que con un programa común, todas las tareas se realizan en nuestro equipo, cuando utilizamos un servicio web lo que hacemos es dar las instrucciones a realizar y recibir el resultado. Y esa tarea se realiza en otra pc.
Para usar un servicio web, todo lo que tenemos que hacer es entrar a su dirección por medio de nuestro navegador. Sin embargo, existen programas que nos permiten usar servicios concretos sin necesidad del navegador, sólo con ellos y una conexión a Internet. Un programa así, recibe el nombre de cliente.
Servicios web hay muchos, y cada vez se están apareciendo más. Hoy día, podemos hacer casi cualquier cosa empleando tan sólo un navegador para acceder a un servicio: retocar imágenes, editar vídeos, crear hojas de cálculo, etc.
Para la utilización de servicios web es necesario estandarizar la programación con xml. El propósito de un servicio web es dar apoyo a la programación de software grandes como detallados (pequeños).


grafico de interoperación de los servicios web


ORQUESTACION DE UN SERVICIO WEB:
La orquestación de servicios web se basa mas en enfocarse en la actividad de un solo usuario teniendo en cuenta como un director no hay q confundir con coreografía de servicio web que mas se basa en la interacción de los usuarios. Gracias a la orquestación se puede saber  que servicio web se puede utilizar en que momento determinado teniendo en cuenta entradas y salidas


Resumiendo las facilidades de manejar este lenguaje tenemos:
§  Un mecanismo de correlación de mensajes basado en propiedades.
§  Variables del tipo XML y WSDL.
§  Un modelo de lenguaje extensible de componentes para permitir escribir expresiones y consultas (queries) en múltiples lenguajes: BPEL soporta Xpath 1.0 predeterminadamente.
§  Construcciones de programación estructurada incluyendo "if-then-elseif-else", "while", "sequence" (posibilita la ejecución de comandos en orden) y "flow" (posibilita la ejecución de comandos en paralelo).
§  Un sistema de ámbito (scoping) que permite el encapsulamiento de lógica con variables localesmanejadores de fallo, manejadores de compensación y manejadores de eventos.
§  Ámbitos serializados para controlar los accesos a las variables.
OBJETIVOS DEL USO DE SERVICIOS WEB
Definir procesos de negocio utilizando un lenguaje basado en XML.. Definir una serie de conceptos de orquestación de servicios Web que pretenden ser usados por vistas internas o externas de un proceso de negocio. Proveer sistemas de control jerárquicos Brindar la posibilidad de la creación y terminación implícitas de instancias de procesos, como un mecanismo básico de ciclo de vida. Operaciones avanzadas de ciclo de vida como por ejemplo "suspender" y "continuar" pueden agregarse en futuras versiones para mejorar el manejo del ciclo de vida. Definir un modelo de transacción de largo plazo que se base en técnicas probadas tales como acciones de compensación y ámbito, de tal manera a brindar recuperación a fallos para partes de procesos de negocios de largo plazo.
Todo lo anterior se puede resumir en que se usan los servicios Web como modelo para la descomposición y ensamblaje de procesos usando estándares de servicios Web . para el uso de procesos ya sea diferente su objetivo.
ELEMENTOS:
En un lenguaje BPEL intervienen:
·         Socios.:Son los servicios web invocados por un proceso.
·         Variables. :Son recipientes de los datos de un proceso.
·         Actividades:
Invoke. Invocar una operación en un servicio web.
 Receive. Esperar a la recepción de una invocación sobre una
operación del sitio web.
nReply. Generar la respuesta de una operación
entrada/salida.
Wait. Esperar un tiempo.
Assign. Asignar valores a variables.
Throw. Lanzar excepciones.
Terminate. Terminar la instancia.
Empty. No hacer nada.
·         Manejadores:
De fallos (Fault Handlers). Se ejecutan cuando se lanza una excepción.Similar al manejo de excepciones en lenguajes deprogramación.
 De compensación (Compensationhandlers). Se ejecutan para deshacer una operación.
Relacionados con el tratamiento de transacciones.
De eventos. Se ejecutan cuando se recibe un mensaje particular o se produce una
determinada alerta.

MODELO LINDA:

Es un modelo de comunicación asincrónica entre procesos compartiendo datos (metiendo y sacando datos de un espacio) q recibe el nombre de tuplas las cuales están listadas, separadas por comas y encerradas entre parentesis
 Ejemplo de tuplas
("Nueva York","Los Angeles",2001/12/14,media-mañana)
(veh´ıculo1,42.46583,-2.42716)
("Miguel Cervantes","El Quijote")
(vuelo,Madrid,Londres,10:00,12:00)
Se utiliza para modelos abiertos y cerrados. Se basa en comandos que dicen al servicio web como usar la tupla:

COMUNICACIÓN ASINCRONICA: Es cuando los procesos se comunican enviando o recibiendo mensajes a través de canales ( donde se ejecuta el programa). LINDA lo que hace es que le da la opción al que recibe la información de escoger lo que va a recibir es decir leo solo determinados mensajes ya que solo quiero algunos ya que no me interesan todos.

CARACTERISTICAS DEL MODELO LINDA:
Es un lenguaje de coordinación basado en un espacio lógico de memoria compartida
( TUPLAS).
Los procesos se coordinan introduciendo tuplas en el espacio, retirándolos de manera selectiva y consultado la existencia de tuplas en ese espacio.
TUPLAS Son listas sin anidamientos.

OPERACIONES BASICAS SOBRE TUPLAS:
write(t)   (out)
Š t es una tupla; el proceso deposita la tupla y sigue (no bloqueante)
 take(p)     (in)
Š p es un patrón; el proceso se bloquea hasta que el espacio de tuplas le asigna una que corresponda al patrón. la tupla es quitada del espacio de tuplas
Read(p)     (rd)
Š versión del “take” en que la tupla que le es asignada no se elimina del espacio de tuplas puede haber varios read simultáneos

CONCLUSIONES:
BPEL sigue las ideas básicas de los sistemas de gestión de flujos, y las aplica para la orquestación de Servicios Web.es también bastante próximo a JAVA. Las implementaciones existentes compilan los flujos a JAVA. Está pensado para que los procesos sean  creados gráficamente  ya que crearlos directamente en XML no es factible para procesos complejos EL modelo linda colabora para que el usuario pueda escoger que tupla utilizar de todo un conjunto ya que puede estar compartiendo el mismo espacio de almacenaje de tuplas al que acceden otros procesos.

Bibliografia:
http://iaaa.cps.unizar.es/docencia/SWD/IV.I.3.ModeloCoordinacionLinda.pdf
http://www.tic.udc.es/~fbellas/teaching/adoo-2003-2004/Tema6Apartado6.2.pdf

jueves, 4 de octubre de 2012

Archivos MVC

La ingeniera nos dejo archivos los cuales deben ser pegados en

C.\xampp\htdocs\xampp

para que puedan ser visualizados despues en el navegador colocando

localhost\index

loas archivos son:
 INDEX:  Este llama a la funcion model.php y ejecuta el view.php


<?php
// Requiring the model
require_once('model.php');

// Retrieving the list of posts
$posts = getAllPosts();

// Requiring the view
require('view.php');
?>

INDEX2

Este lo que hace es guardar el nombre , año en la tabla correspondiente a la Base de datos y lo muestra en View.php


<?php

$nombre = $_GET["fname"];

$id = $_GET["age"];
$accion = $_GET["accion"];
echo $nombre;
echo "<BR>";
echo $id;
echo "<BR>";
echo $accion;
echo "<BR>";

require_once('model.php');
 GuardarDatos($nombre, $id);

// Retrieving the list of posts
$posts = getAllPosts();


// Requiring the view
require('view.php');
?>

MODELO:

Este tien funciones de conectarce a la base de datos y de mandar los datos a l funcion Guardardatos


<?php
function conexion()
{
  $link = mysql_connect('localhost', 'root', '');
  mysql_select_db('prueba', $link);
return $link;
}
function getAllPosts()
{
  // Connecting, selecting database
  $link = conexion();

  // Performing SQL query
  $result = mysql_query('SELECT id, descripcion FROM noticias', $link);

  // Filling up the array
  $posts = array();
  while($row = mysql_fetch_array($result, MYSQL_ASSOC))
  {
     $posts[] = $row;
  }

  // Closing connection
  mysql_close($link);

  return $posts;
}
function GuardarDatos($nombre, $id)



VISTA:

Aca se la parte visual para el usuario donde se muestra en la pantalla
<html>
  <head>
    <title>List of Posts</title>
  </head>
  <body>
    <h1>List of Posts</h1>
    <table>
      <tr><th>id</th><th>Descripcion</th></tr>
<?php foreach($posts as $post): ?>
    <tr>
        <td><?php echo $post ['id'] ?></td>
        <td><?php echo $post ['nombre'] ?></td>
    </tr>
<?php endforeach;?>
    </table>

<form action="index2.php" method="get">
Nombre: <input type="text" name="fname" />
id: <input type="text" name="age" />
<input type="hidden" name="accion" value="Guardar" />
<input type="submit" />
</form> 
  </body>
</html>

CONTROLADOR:
Lo que hace es verificar el usuarioy o password ingresados para conectarce a la base de datos

<?php
// Connecting, selecting database
$link = mysql_connect('localhost', 'myuser', 'mypassword');
mysql_select_db('blog_db', $link);
 
// Performing SQL query
$result = mysql_query('SELECT date, title FROM post', $link);
 
// Filling up the array for the view
$posts = array();
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
  $posts[] = $row;
}
 
// Closing connection
mysql_close($link);
 
// Requiring the view
require('view.php');


 EJEMPLO: 
Aca presentamos el ejemplo que dejo la ingeniera donde se esta llamando a los archivos modelo, vista,controlador, index1 e index2.

<?php
// Connecting, selecting database
$link = mysql_connect('localhost', 'root', 'rootpass');
mysql_select_db('prueba', $link);
 
// Performing SQL query
$result = mysql_query('SELECT id,nombre FROM persona', $link); 
?>

<html>
  <head>
    <title>Lista de Personas</title>
  </head>
  <body>
   <h1>Lista de Personas (Ejercicio 1)</h1>
   <table>
     <tr><th>Date</th><th>Title</th></tr>
<?php

// Printing results in HTML
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    echo "<tr>";
    printf("<td> %s </td>", $row['id']);
    printf("<td> %s </td>", $row['nombre']);
    echo "</tr>";
}
?>

    </table>
  </body>
</html>
<?php

// Closing connection
mysql_close($link);
?>

CONEXIÓN BASE DE DATOS


Para conectar a la base de datos lo que se tiene que hacer es plasmar el código para realizar esto en resumen se utilizan la siguiente estructura de código :

1ro hay que conectarse a la mysql con los siguientes comandos  

mysql_connect("NombreHost","Usuario","Contraseña")
      En caso que no se pueda realizar la conexión se debe mostrar un mensaje que indique ese ERROR:

     echo "Error conectando a la base de datos.";
      exit();
   }

2do tenemos que escoger que base de datos utilizar que este dentro el mysql:

             mysql_select_db("NombreBaseDatos")
      En caso que no exista la Base de datos mostrar indicar ese error:

if (!mysql_select_db("base_datos",$nombre_de_conexion))   {
      echo "Error seleccionando la base de datos.";
      exit();
   } 

3ro  Cerrar Conexion

mysql_close($nombre_de_conexion)


Ejmplo del PHP

miércoles, 3 de octubre de 2012

Pantallas Proyecto de Curso

Colgamos en el link descargas el documento que contiene el primer borrador de las pantallas para proyecto de curso general por si existe algún error con el servidor acá esta otro enlace:




A si pueden descargarlo y realizar modificaciones.

FORMULARIOS 2 ( SUBIR FICHERO )


El subir ficheros puede complicarse un poco pero trataremos de explicarlo con nuestras propias palabras.
1ro Se encesita cambiar el nombre del fichero internamete darle un nombre adicional esto es por que se pueden ingresar datos iguales.
2do Tambien es necesario subirlo a un lugar por un tiempo y de ahí a su destino final.
3ro Tambien existe la posibilidad que no suba correctamente el fichero en ese caso hay que mandar un mensaje de ERROR.
Los código a escribir son :
HTML
<INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400">
<INPUT TYPE="FILE" SIZE="44" NAME="imagen">

PHP
if (is_uploaded_file ($_FILES['imagen']['tmp_name']))
{
   $nombreDirectorio = "img/";
   $idUnico = time();
   $nombreFichero = $idUnico . "-" . $_FILES['imagen']['name'];
   move_uploaded_file ($_FILES['imagen']['tmp_name'],
      $nombreDirectorio . $nombreFichero);
}
else
   print ("No se ha podido subir el fichero\n");

if (is_uploaded_file ($_FILES['imagen']['tmp_name']))
{
   $nombreDirectorio = "img/";
   $nombreFichero = $_FILES['imagen']['name'];
   $nombreCompleto = $nombreDirectorio . $nombreFichero;
   if (is_file($nombreCompleto))
   {
      $idUnico = time();
      $nombreFichero = $idUnico . "-" . $nombreFichero;
   }
   move_uploaded_file ($_FILES['imagen']['tmp_name'],
      $nombreDirectorio . $nombreFichero);
}
else
   print ("No se ha podido subir el fichero\n");

FORMULARIOS

Ejemplo de formularios
}  Fichero principal.php
<HTML>
<BODY>
<FORM ACTION=”otro.php” METHOD=”POST”>
   Colegio: <INPUT TYPE=”text” NAME=”Colegio”>
   <INPUT TYPE=”submit” VALUE=”aceptar”>
</FORM>
</BODY>
</HTML>
}  Fichero otro.php
<HTML>
<BODY>
<?PHP
   $colegio= $_REQUEST[‘colegio’];
   print (“El colegio se llama: $edad”);
?>
</BODY>
</HTML>

TEXT


<INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20">

<?PHP
   $cadena = $_REQUEST[‘cadena’];
   print ($cadena);
?>

RADIO

Sexo:
<INPUT TYPE="radio" NAME=“sexo" VALUE=“M“ CHECKED>Mujer
<INPUT TYPE="radio" NAME=“sexo" VALUE=“H">Hombre

<?PHP
$sexo= $_REQUEST[‘sexo’];
   print ($sexo);
?>

CHECKBOX

<INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje" CHECKED>Garaje
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="jardin">Jardín

<?PHP
   $extras = $_REQUEST[‘extras’];

   foreach ($extras as $extra)
      print (“$extra<BR>\n”);
 ?>

BUTTON

<INPUT TYPE="button" NAME=“actualizar" VALUE="Actualizar datos">

<?PHP
   $actualizar = $_REQUEST[‘actualizar’];
   if ($actualizar)
      print ("Se han actualizado los datos");
?>

FILE

<FORM ACTION="procesa.php" METHOD="post“
   ENCTYPE="multipart/form-data">
   <INPUT TYPE="file" NAME="fichero">
</FORM>


HIDDEN

<?PHP
   print(“<INPUT TYPE=’hidden’ NAME=’username’ VALUE=’$usuario’>\n”);
?>

<?PHP
   $username= $_REQUEST[‘username’];
   print ($username);
?>

PASSWORD

Contraseña: <INPUT TYPE="password" NAME="clave">

<?PHP
   $clave= $_REQUEST[‘clave’];  
   print ($clave);
?>

SUBMIT

<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos">

<?PHP
   $enviar= $_REQUEST[‘enviar’];
   if ($enviar)
      print ("Se ha pulsado el botón de enviar");
?>

SELECT SIMPLE
Color:
<SELECT NAME=“color">
   <OPTION VALUE=“rojo" SELECTED>Rojo
   <OPTION VALUE=“verde">Verde
   <OPTION VALUE=“azul">Azul
</SELECT>

<?PHP
   $color= $_REQUEST[‘color’];
   print ($color);
?>

SELECT MULTIPLE
Idiomas:
<SELECT MULTIPLE SIZE="3" NAME="idiomas[]">
   <OPTION VALUE="ingles" SELECTED>Inglés
   <OPTION VALUE="frances">Francés
   <OPTION VALUE="aleman">Alemán
   <OPTION VALUE="holandes">Holandés
</SELECT>

<?PHP
   $idiomas = $_REQUEST[‘idiomas’];
   foreach ($idiomas as $idioma)
      print (“$idioma<BR>\n”);
?>

TEXTAREA
Comentario:
<TEXTAREA COLS=“50" ROWS=“4" NAME="comentario">
Este libro me parece ...
</TEXTAREA
<?PHP
   $comentario = $_REQUEST[‘comentario’];
   print ($comentario);
?>

Enviar Formulario
<INPUT TYPE="SUBMIT" NAME="enviar“ VALUE="procesar">

if (isset($enviar))
                o bien
if ($enviar == “procesar”)

Subir formulario
PHP.INI:

file_uploads = On
; Archivo temporal
;Archive con extencion maxima
upload_max_filesize = 2M

Formulario:
<INPUT TYPE=”HIDDEN” NAME=”MAX_FILE_SIZE” VALUE='102400'>
<INPUT TYPE=”FILE” NAME="fichero">