FORMULARIO HTML Y POST PHP

Posted: 8 septiembre, 2010 by Valor in PHP

Primero creamos una página llamada “index.html” de la siguiente forma:

<html>

<head>

<title>FORMULARIO</title>

</head>

<body>

Creamos un formulario de html

action es la página .php que recibe el formulario, y el metodo de pasar los valores es post

<form action=”recibe_formulario.php” method=”post”>

Ingresamos un número, especificando el tipo y el nombre de la variable que recibirá la página .php

<input type=”text” name=”numero”>

Creamos el cuadro que manda el dato “numero” a “recibe_formulario.php”

<input type=”submit” value=”Enviar”>

</form>

</body>

</html>

A continuación creamos una página “recibe_formulario.php”, que recibe el valor de “numero” y lo muestra.

<html>

<head>

<title>recibe formulario</title>

</head>

<body>

El siguiente código es php

<?php

echo “El numero es : “.$_POST["numero"];

?>

</body>

</html>

De esta forma pasamos un valor de un formulario html a otra página php mediante “post”

Menú horizontal simple con CSS

Posted: 30 julio, 2010 by javierolas in CSS, HTML

Vamos a intentar hacer un menú horizontal básico mediante CSS para meter en la barra de navegación de nuestra página. Para ello vamos a utilizar las listas HTML <ul><li> pero vamos a darle un ‘toque’ modificando la visualización retocando unas cuantas propiedades.

Empezamos en el fichero CSS, añadiendo un nuevo id que denominaremos mimenu y empezamos a cambiar propiedades :

mimenu ul   :  quitamos los margenes, quitamos el padding, definimos una fuente bonita, lo hacemos flotante a la izquierda para que se adapte bien a nuestra barra, ocupamos el 100% del espacio, borde todo alrededor y un color de fondo.

*html mimenu ul : hack para IE, que modifica el ancho para que no tengamos problemas con ese navegador ¡!

mimenu ul li : hacemos que la lista sea inline para que salga horizontal.

mimenu ul li a : flotando a la izquierda, definimos color de texto, un pequeño padding o margen interno y le quitamos la decoración tipica de los tag <a>

mimenu ul li a:hover : cuando la opción de menú está seleccionada  el color del texto es distinto y el el de fondo también, para que de idea de resaltado

El archivo .css quedaría más o menos así.

<style type=”text/css”>
#mimenu ul   /* opciones generales del menu */
{
margin: 0;
padding: 0;
margin-bottom: 1em;
float: left;
font: bold 100% Tahoma;
width: 100%;
border: 1px solid #625e00;
background-color: #f1f1f1;
}
*html #mimenu ul  /* regla especial para IE */
{
width: 99%;
}
#mimenu ul li /* opciones de la lista */
{
display: inline;
}
#mimenu ul li a  /* opciones de cada elemento */
{
float: left;
color: #000;
padding: 2px 12px;
text-decoration: none;
}
#mimenu ul li a:hover  /* opciones del elemento al seleccionarlo */
{
color: #fff;
background-color: #a3a3a3;
}
</style>
Para poder usar este menú incluiriamos el siguiente código en nuestro .html
<div id=”mimenu”>
<ul>
<li><a href=”./uno.html”>Opcion 01</a></li>
<li><a href=”./dos.html”>Opcion 02</a></li>
<li><a href=”./tres.html”>Opcion 03</a></li>
<li><a href=”./cuatro.html”>Opcion 04</a></li>
</ul>
</div>
Con lo que ya tendriamos un menú horizontal  básico basado en listas y CSS.

Tag pre en div ancho fijo

Posted: 22 julio, 2010 by javierolas in HTML

El tag <pre> define un bloque de texto preformateado. Esto significa que, el navegador debe de : conservar los espacios en blanco intactos, debe de mostrar el texto con una fuente de ancho fijo, debe respetar el largo de linea y respetar los saltos de linea.  Actualmente esta etiqueta está en desuso y el W3C recomienda la subsitución por el tag <p>.      El problema es cuando usamos esta etiqueta dentro de una caja de ancho fijo y alineada al centro (por ejemplo).  Si la linea de texto del pre es más ancha que el ancho de su caja contenedora los navegadores actuan de dos maneras posibles, a saber :

El 99% de los navegadortes normales (Firefox, Chrome, safari, opera) respetan la posición, alineamiento y tamaño de la caja contenedora y “sacan” el texto por fuera de la caja, ya que al ser texto preformateado tiene obligación de respetar el largo de linea, comportamiento de lo más normal, bajo mi humilde punto de vista punto de vista. Respeta todas las normas ya que el problema es de programación (si haces una caja de 600px no hagas lineas <pre> de 700px tio).

El Internet explorer y otros demonios, ante este dilema, se salta las normas a la torera. Cambia la alineación de la caja contenedora, por lo tanto su posición, le cambia el tamaño y lo acomoda al largo de linea del pre.

Un ejemplo claro de lo que estamos hablando lo podemos ver en

http://siga21server.sytes.net/nuevo/ubuntu.html

dependiendo de con que navegador lo abramos, así lo veremos.  La solución es sencilla, o ajustamos el ancho de linea del pre al tamaño de la caja contenedora, o hacemos caso al W3C y nos pasamos al <p>, aunque no sea tan vistoso.

Mientras los fabricantes de navegadores sigan tirando cada uno por su lado, nosotros seguiremos teniendo estos problemas.

Saludos.

Diferencia entre id y class

Posted: 16 julio, 2010 by Valor in CSS

Voy a suponer que son iguales y se pueden utilizar indistintamente.

Pero se diferencian en:

1 – La sintaxis del selector id utiliza # como prefijo, y class utiliza .  como prefijo del nombre de la regla CSS

2 – El valor del atributo class no identifica al elemento que lo contiene, lo que hace es asociar los valores del estilo al elemento. Con class podemos poner varios atributos, y se puede repetir cuantas veces sea necesario

incluso podemos aplicarlo a distintos tags. Un font:31px; es aplicable mediante class a un <h1> y a un <p> por ejemplo…

3- El atributo id identifica de forma única a un elemento dentro de un documento HTML.

El valor del atributo id de un elemento no puede repetirse en ningún otro atributo id del mismo documento.

Que me lio

id para identificar algo único, cabecera, menú, pie, cosas que no van a cambiar, que pertenecen a la estructura de la página.

class para elementos html que varían, tamaño, color, tipo de fuente y al mismo tiempo puedo mezclar.

Un ejemplo puede ser: (Es difícil de entender, encontré en la nube páginas muy buenas y no entendí nada, no queda mas remedio que pasar a la practica y razonar )

Copiamos en un editor lo siguiente, llamado class index.html

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<HTML>
<head>
<style type=”text/css”>
@import url(‘class estilo.css’);
@import url(‘class horizontal.css’);
</style>
</head>
<div class=’sombra’>
<div class=’cuerpo’>
<div class=’cabecera’>
<p id=’titulo’>POCO SENTIDO</p>
</div>
<div id=’menuhor’>
<div id=’divmenu’>
<ul>
<li>POCO SENTIDO</li>
<li><p>poco dentido</p></li>
</ul>
</div>
</div>
</div>
<div>
<p id=”titulo fuente”>mira el codigo fuente,no funciona el id</p>
<p>es lo mismo que arriba</p>
<p id=”titulo”>mira el codigo fuente, si funciona id</p><br /><br /><br /><br /><br />
<p class=’rojo’>POCO SENTIDO que mal se coloca un class debajo de un id</p><br />
<p>POCO SENTIDO</p><br />
<P>POCO SENTIDO</p><br />
<p>POCO SENTIDO</P><br />
<p>Versi&oacute;n  <script> document.write(document.lastModified) </script>&reg;</p>
</div>
<br /> <br />
</div> <!– cuerpo –>
</div> <!– sombra –>
</BODY>
</HTML>

Después copiamos en un editor de texto lo siguiente llamado class estilo.css

body{
background-color: #fff;
margin-top: 0px;
margin-left: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
.sombra {
margin-top: 0;
margin-left: auto;
margin-bottom: 0;
margin-right: auto;
width: 900px;
-moz-box-shadow: -5px 5px 8px #818181;
-webkit-box-shadow: -5px 5px 8px #818181;
}
.cuerpo {
margin-top: 0;
margin-left: auto;
margin-bottom: 0;
margin-right: auto;
background-color: #f1f1f1;
font-size: 18px;
color: #3a3a3a;
-moz-box-shadow: -5px 5px 8px #818181;
-webkit-box-shadow: -5px 5px 8px #818181;
}
.cabecera {
margin: 0 0 0 0;
width: 100%;
height: 100px;
background-color: #f1f1f1;
}
#titulo
{
float:left;
padding: 1px 10px;
color:black;
font-size: 60px;
margin-top: 0px;
margin-bottom:0px;
}
#fuente {font-size: 50px;}
.menuhor {
margin: 0 0 0 0;
width: 100%;
height: 25px;
background-color: white;
}
.texto {
margin: 0 0 0 0;
width: 890px;
background-color: #f1f1f1;
padding: 5px 5px 5px 5px;
font-size: 14px;
color: #3a3a3a;
}
.cursiva {font-style: italic;}
.rojo {font-weight: bold; color: red;}
.fuente {font-size:50px;}

Y por ultimo si tenemos paciencia algo llamado class horizontal.css

/* menu sencillito de todo basado en listas
solo juega con los colores para remarcar las opciones
seleccionadas
*/

#divmenu ul
{
margin: 0;
padding: 0;
margin-bottom: 1em;
float: left;
font: bold 100% Tahoma;
width: 100%;
background-color: white;
}

* html #divmenu ul
{
width: 99%;
}

#divmenu ul li
{
display: inline;
}

#divmenu ul li a
{
float: left;
color: #000;
padding: 2px 12px;
text-decoration: none;
}

#divmenu ul li a:hover  /* cuando se pasa con el raton cambia fondo y color de texto */
{
color: #fff;
background-color: #3a3a3a;
}

Y a razonar.



Si, ¿pero como me conecto a una base?

Posted: 13 julio, 2010 by javierolas in PHP, SQL

Está muy bonito lo de que PHP es  (según mi criterio) el mejor lenguaje para enlazarme a bases de datos, pero…. ¿como se hace?

Ejemplo práctico. Tenemos la tabla Clientes (campos: numero,  nombre y telefono) de la base de datos Administración con el motor MYSQL, para mi gusto el mejor, y uno de los más usados del mundo. Y queremos listar todo el contenido de la tabla, ordenado por nombre (vamos a darle un poco de gracia), por pantalla.

Los pasos a seguir serían :

1.- Establecer una conexión con el motor de bases de datos (en este caso MYSQL).

2.- Seleccionar la base de datos sobre la que vamos a trabajar.

3.- Montar la expresión SQL para extraer los datos

4.- Ejecutar la consulta.

5.- Recorrer la matriz de resultados para mostrar los datos por pantalla.

El codigo quedaría tal que así :

<?php
// Para establecer la conexión necesitamos saber el nombre

//del servidor (normalmente localhost)
// un nombre de usuario y la contraseña
$conexion = mysql_connect(‘servidor’, ‘usuario’, ‘contraseña’) or die(‘no conecto con MYSQL’);

//Seleccionamos la base da datos, en este caso Administracion
mysql_select_db(‘administracion’) or die(‘no conecto con la base’);

//Montamos la expresion SQL para extraer los datos y la metemos en una variable
$texto=”Select numero, nombre, telefono from clientes order by nombre”;

//ejecutamos la consulta y obtenemos la matriz resultante
$resultado = mysql_query($texto) or die(‘consulta con errores’);

//recorremos el array multidimensional obteniendo un array ($registro) por cada linea
while ($registro = mysql_fetch_array($resultado)
{
// escribimos en pantalla los campos por cada registro
echo $registro['numero']. “-”; //separamos con un guión
echo $registro['nombre'] . “-”;
echo $registro['telefono'];
echo “<br />”; //salto de linea para siguiente registro
}

// acabado todo cerramos la conexión con mysql
mysql_close($conexion);

?>

Como podemos ver es muy, muy sencillo. Solo quedarian cuestiones de aspecto, para ponerlo todo un poco mas bonito (aquí si CSS)  y luego complicarlo todo lo que se nos ocurra…..  mezclar distintas tablas, conseguir maximos y minimos, obtener promedios…… el límite normalmente es la capacidad de cada uno para manejar el lenguaje de consulta estructurado (SQL), que es el eje fundamental de todo este tipo de procesos.

Pronto más.

Porqué PHP?

Posted: 13 julio, 2010 by javierolas in PHP

El HTML es un lenguaje estupendo, facil de aprender, facil de utilizar. La parte buena es que crea un esqueleto perfecto para una página. La mala, es que es extremadamente limitado.

El CSS, es un técnica estupenda, la parte buena es que nos dá un aspecto perfecto, y una usabilidad mucho mejor. La parte mala  es que solo es aspecto.

El Javascript es un lenguaje del lado del cliente estupendo. La parte buena es que permite un control perfecto sobre la impresión, la validación de formularios y sobre el navegador del ‘cliente’. La parte mala es que es limitado y no tiene capacidad para manejar bases de datos.

Si nos paramos a pensar (que raro), nos daremos cuenta que el 90% de las páginas que hacen algo…..  bueno, no solo las páginas, todas las aplicaciones informáticas, al final se acaban basando en  bases de datos:  El ERP de cualquier empresa, un tpv virtual, un blog, una wiki…..,  si lo racionalizamos, al final todo es base de datos (todo lo que hace algo, no humo).  De ahí que sea tan importante contar con un buen ‘manejador’ de bases, que el acceso sea cómodo y sencillo. Y ahí es donde entra el PHP, con todo su potencial para manejar bases de todo tipo Mysql, PostgreSQL, MS SQL, ORACLE, SQLLite, y casi cualquier base en la que puedas pensar. (el arriba firmante ha llegado a manejar ficheros excel como si fueran una base desde php).  Rápido, cómodo y sencillo, pero sobre todo potente.

Si alguien aun no lo ve claro que se lo haga ver………..

Saludiños.

Ejemplo de cajas div

Posted: 10 julio, 2010 by Valor in CSS

Si leéis las entradas “Elementos en Bloque, Elementos en Línea”, “Introduccion a las cajas con CSS” es bueno que visiteis

http://siga21server.sytes.net/nuevo/

http://www.xente.mundo-r.com/POCOSENTIDO/

Estas páginas están sufriendo constantes actualizaciones; el contenido es repetido y no buscamos contar nada importante, pero el código va cambiando y adaptándose a las entradas del blog.

Lo interesante de estas páginas es ver su código fuente e ir leyendo el blog.

Se ven los fallos, intencionados o no, como se corrige, opciones varias, en definitiva estudio y evolución. Como la vida misma.