Foros del Web » Programando para Internet » PHP »

Donde está el problema de la validación?

Estas en el tema de Donde está el problema de la validación? en el foro de PHP en Foros del Web. Hola, Muy bien. Tengo instalado el WAMP y como recien niciado en el tema hice el primer intento de crear un formulario que llena información ...
  #1 (permalink)  
Antiguo 25/09/2006, 08:48
 
Fecha de Ingreso: marzo-2005
Mensajes: 14
Antigüedad: 19 años, 1 mes
Puntos: 0
Donde está el problema de la validación?

Hola,

Muy bien. Tengo instalado el WAMP y como recien niciado en el tema hice el primer intento de crear un formulario que llena información en la base de datos local y me pasó lo siguiente:

=================================
documento HTM
=================================
<FORM action="guardar.php" method="post">
<center>
<font color="brown"><h1>Empleados</h1></font>
<h color="blue">
</center>
Cédula: <INPUT TYPE="text" name="txtCedula" maxlength="12"><br>
Nombre: <INPUT TYPE="text" name="txtNombre" maxlength="50"><br>
Dirección: <INPUT TYPE="text" name="txtDireccion" maxlength="50"><br>
Teléfono: <INPUT TYPE="text" name="txtTelefono" maxlength="20"><br>
Email: <INPUT TYPE="text" name="txtEmail" maxlength="50"><br>
<input type="submit" value="Guardar"><br>
<input type="reset" value="Limpiar"><br>
</FORM>


=================================
documento PHP "guardar.php"
=================================
<html>

<head>
<title></title>
</head>

<body>

<?php

if (empty($txtCedula))
{
echo "Debe digitar una cédula";
}
elseif (empty($txtNombre))
{
echo "Debe digitar un nombre";
}
elseif (empty($txtDireccion))
{
echo "Debe digitar una dirección";
}
elseif (empty($txtTelefono))
{
echo "Debe digitar un teléfono";
}
else
{
$conexion=mysql_connect("localhost","","") or die ("No se realizó la conección");
mysql_select_db("empresanoche") or die ("No se encontró la DB");
$consulta="select * from empleado where cedula='$txtCedula'";
$resultado=mysql_query($consulta) or die ("Consulta incorrecta");
$registros=mysql_num_rows($resultado);
if ($registros==0)
{
$consulta="insert into empleado(cedula,nombre,direccion,telefono,email) values ('$txtCedula','$txtNombre','$txtDireccion','$txtTe lefono','$txtEmail')";
$resultado=mysql_query($consulta) or die ("Inserción incorrecta");
echo "Registro almacenado";
}
else
{
echo "El registro ya existe";
}
}


?>

</body>

</html>


Despues de llenar el formulario doy clic en el boton Guardar y me de vuelve la respuesta "Debe digitar una cédula" y no he encontrado donde estáel error. Lo que me deja cabezón es que me llevo estos documentos para la universidad y lo puedo ejecutar perfectamente con el dzSoft.

Gracias por las sugerencias que me puedan dar.
  #2 (permalink)  
Antiguo 25/09/2006, 10:10
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Lo que puede estar sucediendo es que las varaibles globales en xampp estas "apagadas" por lo que que tendrias que "cachar" las variables es decir

Código PHP:
 if (empty($_POST['txtCedula']))
//Esto lo tendrias que hacer en los demas casos. 
Por seguridad y por una mejor programación, yo te recomendario que dejaras "apagadas" las varaibles globales.

Saludillos.
  #3 (permalink)  
Antiguo 25/09/2006, 10:14
 
Fecha de Ingreso: julio-2005
Mensajes: 220
Antigüedad: 18 años, 8 meses
Puntos: 0
En uno tienes en el php.ini register_globals=on (en la universidad :S) y en el WAMP register_globals=off

Solucion: Por seguridad siempre usa $_POST y register_globals=off.

Por ejemplo:

$txtCedula=$_POST[$txtCedula];

y lo mismo con las otras variables.
  #4 (permalink)  
Antiguo 25/09/2006, 12:04
 
Fecha de Ingreso: marzo-2005
Mensajes: 14
Antigüedad: 19 años, 1 mes
Puntos: 0
Excelente,

Gracias Mauled y Gorak
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:59.