Foros del Web » Programando para Internet » PHP »

Problema validar form + insertar registros

Estas en el tema de Problema validar form + insertar registros en el foro de PHP en Foros del Web. Bueno, tengo un problema al insertar los registros en la BD Si le quito la validacion me los inserta, no se que estare haciendo mal. ...
  #1 (permalink)  
Antiguo 01/07/2012, 18:52
 
Fecha de Ingreso: julio-2005
Mensajes: 204
Antigüedad: 18 años, 8 meses
Puntos: 1
Problema validar form + insertar registros

Bueno, tengo un problema al insertar los registros en la BD
Si le quito la validacion me los inserta, no se que estare haciendo mal.
No me tira ningun error, simplemente no me lo inserta los registros, si le saco todo el codigo de la validacion, si me lo inserta!
Les dejo el codigo que estoy utilizando

Saludos!

Código PHP:
<!DOCTYPE html>
<html>
<head>
<title>Alta de Usuarios</title>
</head>
<body>
<?php
include_once('funciones.php');
include_once(
'configuraciones.php');
if(
$_SERVER['REQUEST_METHOD'] == 'POST') {
$errores = array();
if(
$_POST['nombre'] == '') {
$errores[0] = 'error en campo nombre';
}
if (
$_POST['apellido'] == '') {
$errores[1] = 'error en campo apellido';
}
if (
$_POST['mail'] == ''){
$errores[2] = 'error en mail';
}
else if (!
filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)){
$errores[8] = 'Formato de email incorrecto';
}
if (
$_POST['confirmarmail'] == ''){
$errores[4] = 'error en campo confirmar email';
}

else if(
$_POST['mail'] != $_POST['confirmarmail']){
$errores[6] = 'Los mails tienen que ser iguales';
}
if(
$_POST['clave'] == '') {
$errores[3] = 'error en clave';
}
if (
$_POST['confirm_clave'] == '') {
$errores[5] = 'error en campo confirmar clave';
}
else if(
$_POST['clave'] != $_POST['confirm_clave']) {
$errores[7] = 'Las contraseñas deben ser iguales';
}
}
?>
<h1>Alta de Usuarios</h1>
<form method="post" action=""/>
<fieldset>
<legend>Formulario de Alta</legend>
<div>
<label>Nombre</label>
<input type="text" name="nombre" id="nombre" value="<?php echo $_POST['nombre'];?>"><?php echo $errores[0];?></div>
<div>
<label>Apellido</label>
<input type="text" name="apellido"value="<?php echo $_POST['apellido'];?>"><?php echo $errores[1];?></div>
<div>
<label>Email</label>
<input type="text" name="mail"value="<?php echo $_POST['mail'];?>"><?php echo $errores[2].$errores[8];?></div>
<div>
<label>Confirme su e-mail</label>
<input type="text" name="confirmarmail"value="<?php echo $_POST['confirmarmail'];?>"><?php echo $errores[4].$errores[6];?></div>
<div>
<label>Clave</label>
<input type="password" name="clave"><?php echo $errores[3];?></div>
<div>
<label>Confirme su clave</label>
<input type="password" name="confirm_clave"><?php echo $errores[5].$errores[7];?></div>
<div>
<input type="submit" value="Registrar Usuario" name="enviar"/>
</div>
</fieldset>
<?php
for($i=0$i<count($errores);$i++){
if(
$errores == ''){
Me conecto al servidor y selecciono la base
$c 
=conectar($GLOBALS['servidor'],$GLOBALS['usuario'],$GLOBALS['contrasenia'],$GLOBALS['bd']);
Hago el insert
$sql 
"INSERT INTO usuarios_registrados(clave,nombre,apellido,email,id_usuarios_tipo)";
$sql.= "VALUES ('".$clave."', '".$nombre."', '".$apellido."','".$mail."',2)";
Ejecuto la consulta del insert
ejecutarConsulta
($sql,$c);
echo 
'Usuario Dado de Alta';
}
}
?>
  #2 (permalink)  
Antiguo 01/07/2012, 20:03
 
Fecha de Ingreso: marzo-2010
Ubicación: Rosario
Mensajes: 20
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Problema validar form + insertar registros

fijate cuando haces
Código PHP:
Ver original
  1. if($errores == '')

$errores es un array.

Fijate este link
http://www.php.net/manual/es/function.count.php

para mi deberías de hacer lo siguiente:

Código PHP:
Ver original
  1. if(count($errores) == 0)

Con eso te fijas que no tenga nada un array.
Para mi puede pasar por eso el problema, por que como dijiste que si borras todas las validaciones y te funciona, eso significa que estas borrando también la declaración del array entonces toma a $errores como una variable(declarandola en ese mismo punto) vacía y pasa por el true de la condición ya que estaría vacía siempre.
Código PHP:
Ver original
  1. $errores = array();

Espero que sea eso.

Mucha Suerte y Saludos.
  #3 (permalink)  
Antiguo 01/07/2012, 21:52
 
Fecha de Ingreso: julio-2005
Mensajes: 204
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Problema validar form + insertar registros

Ahora me lo ingresa registros, pero no guarda los valores, me los ingresa sin contenido.
probe con
$errores == NULL;
$errores ==0;
!isset($errores)
Y ninguna me los inserta bien

Mi ultimo codigo es este, no se si alguna otra persona se le ocurre que sucede

Saludos!

Código PHP:
<?php
include_once('funciones.php');
include_once(
'configuraciones.php');
if(
$_SERVER['REQUEST_METHOD'] == 'POST') {
$errores = array();
$clave $_POST['clave'];
$nombre $_POST['nombre'];
$apellido $_POST['apellido'];
$email $_POST['mail'];
if(
$_POST['nombre'] == '') {
$errores[0] = 'error en campo nombre';
}
if (
$_POST['apellido'] == '') {
$errores[1] = 'error en campo apellido';
}
if (
$_POST['mail'] == ''){
$errores[2] = 'error en mail';
}
else if (!
filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)){
$errores[8] = 'Formato de email incorrecto';
}
if (
$_POST['confirmarmail'] == ''){
$errores[4] = 'error en campo confirmar email';
}

else if(
$_POST['mail'] != $_POST['confirmarmail']){
$errores[6] = 'Los mails tienen que ser iguales';
}
if(
$_POST['clave'] == '') {
$errores[3] = 'error en clave';
}
if (
$_POST['confirm_clave'] == '') {
$errores[5] = 'error en campo confirmar clave';
}
else if(
$_POST['clave'] != $_POST['confirm_clave']) {
$errores[7] = 'Las contraseñas deben ser iguales';
}
}
?>
<h1>Alta de Usuarios</h1>
<form method="post" action=""/>
<fieldset>
<legend>Formulario de Alta</legend>
<div>
<label>Nombre</label>
<input type="text" name="nombre" id="nombre" value="<?php echo $_POST['nombre'];?>"><?php echo $errores[0];?></div>
<div>
<label>Apellido</label>
<input type="text" name="apellido"value="<?php echo $_POST['apellido'];?>"><?php echo $errores[1];?></div>
<div>
<label>Email</label>
<input type="text" name="mail"value="<?php echo $_POST['mail'];?>"><?php echo $errores[2].$errores[8];?></div>
<div>
<label>Confirme su e-mail</label>
<input type="text" name="confirmarmail"value="<?php echo $_POST['confirmarmail'];?>"><?php echo $errores[4].$errores[6];?></div>
<div>
<label>Clave</label>
<input type="password" name="clave"><?php echo $errores[3];?></div>
<div>
<label>Confirme su clave</label>
<input type="password" name="confirm_clave"><?php echo $errores[5].$errores[7];?></div>
<div>
<input type="submit" value="Registrar Usuario" name="enviar"/>
</div>
</fieldset>
<?php
if(!isset($errores)){
//Me conecto al servidor y selecciono la base
$c =conectar($GLOBALS['servidor'],$GLOBALS['usuario'],$GLOBALS['contrasenia'],$GLOBALS['bd']);
//Hago el insert
$sql "INSERT INTO usuarios_registrados(clave,nombre,apellido,email,id_usuarios_tipo)";
$sql.= "VALUES ('".$clave."', '".$nombre."', '".$apellido."','".$mail."',2)";
//Ejecuto la consulta del insert
ejecutarConsulta($sql,$c);
echo 
'Usuario Dado de Alta';
var_dump($errores);
}
?>
</body>
</html>

Etiquetas: function, insert, mysql, validador
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 15:55.