Archivos mensuales: diciembre 2008

Validar formulario en la misma página Php

Con esto, se logra que si algún campo no es correcto, se muestre, sin tener que usar variables de sesion, o formularios enviando hacia atras para que muestren los datos que si estaban correctos. En algunos casos, y según la configuración del paquete que se use que contenga php, mysql, y apache (wamp, lampp, etc) y si se utilizan variables de sesion, se pierden los valores pasados por post al volver hacia atrás. Con este método, además de ser más sencillo, se evita eso.

Una función contiene el formulario, que es, llamado 2 veces, la otra función contiene la validación (En este caso solo cambia la primera  letra a mayúscula).

$nomb = $_POST[nombre];
$apell = $_POST[apellido];
$ocupa = $_POST[ocupacion];

if($nomb == “” or $apell == “” or $ocupa == “”)
{
crear_formulario($nomb, $apell, $ocupa);
}
else
{
validar_form($nomb, $apell, $ocupa);
}

//================== -FUNCIONES- =========================

function validar_form($nombre, $apellido, $ocupacion)
{
$nombre= ucfirst($nombre);
$apellido= ucfirst($apellido);
$ocupacion= ucfirst($ocupacion);

crear_formulario($nombre, $apellido, $ocupacion);
}

=======================================================

function crear_formulario($nombre, $apellido, $ocupacion)
{
echo “<table align=’center’ name=’tabla2′><form method=’post’ action=’ffunction.php’ name=’formvalifunct2′>”;

echo “<tr><td align=’center’>Nombre</td></tr>”;
echo “<tr><td align=’center’><input type=’text’ size=’25’ name=’nombre’ value=’$nombre’></td></tr>”;
echo “<tr><td align=’center’><br></td></tr>”;

echo “<tr><td align=’center’>Apellido</td></tr>”;
echo “<tr><td align=’center’><input type=’text’ size=’25’ name=’apellido’ value=’$apellido’></td></tr>”;
echo “<tr><td align=’center’><br></td></tr>”;

echo “<tr><td align=’center’>Ocupaci&oacute;n</td></tr>”;
echo “<tr><td align=’center’><input type=’text’ size=’25’ name=’ocupacion’ value=’$ocupacion’></td></tr>”;
echo “<tr><td align=’center’><br></td></tr>”;

echo “<tr><td align=’center’><input type=’submit’ value=’enviar’></td></tr>”;

echo “</form></table>”;
}

?>

Anuncios

Trabajar con fechas, comparar, cortar php

Algo bastante complicado en php es trabajar con fechas, realmente lo complicado es levantarlo de la base de datos y  mostrarlo como se quiera mostrar.

Antes de poder levantarlo de la base de datos, es necesario ingresarlo:

Una formula bastante buena es usar un campo “DATETIME” en la base de datos.

$fecha= date(“d-m-Y H:i:s”);

Y al momento de ingresar el valor se usa $fecha.

Tres problemas que aparecen usando este método.

Uno es que la mayoría de las veces uno no necesita mostrar las horas, los minutos y los segundos, sobre todo cuando se muestra la fecha de registración de alguien. Pero si al menos una vez se usan las horas, minutos, o segundos a lo largo del programa, tienen que estar ya insertados, en ese caso, se cortan los caracteres que no se quieran mostrar.

Supongamos que ya se hizo un select del campo fecha, y se recorrió el array, osea, está pronto para ser mostrado el valor.

$fecha=substr($fecha, 0, 11);

En ese caso, al desplegar el valor de $fecha mostraría la fecha hasta el caracter 11, justo antes de que empiece a desplegar la hora. La función substr también sirve para cortar una cadena de texto.

El segundo problema que se puede encontrar es querer comprobar que fecha es mas nueva, en ese caso, se hace el select de las dos fechas, y con un if se comprueba cual es mayor.

if($fecha1 < $fecha2)

El tercer problema es que el formato de fecha (aaaa-mm-dd) no corresponde a la que se usa habitualmente (dd-mm-aaaa).

En ese caso, con una función de php, se convierte a segundos esa fecha, empezando a contar desde una fecha unix estipulada, (1960-12-31).

$conv=strtotime($fecha);

Y luego se puede volver a convertir usando el formato que se quiera mostrar.

$fecha= date(“d-m-Y H:i”,$conv);

En este caso, se puede mostrar como dd-mm-aaaa