El problemas mas boludo a la hora de validar un formulario (SOLUCIONADO)

Iniciado por octavioxd, 18 Mayo 2010, 20:27 PM

0 Miembros y 1 Visitante están viendo este tema.

octavioxd

Hola a todos  ;D como andan les traigo otro problema para que me lo resuelvan.
miren lo que me anda pasando tengo que validar este formulario pero por ejemplo no seteo ningun dato me tirara los todos los errores en este caso son 2 nombre y apellido pero si setteo uno y el otro no igual me lo valida aca hay un error por que supuestamente antes no debe ser validado hasta que todos los campos hayan sido seteados correctamente. este es codigo.

Código (php) [Seleccionar]
<?php
$error 
''// esta vacia //
if(isset($_POST['nombre'])){
$nombre $_POST['nombre'];
}else{
$error .=  'Nombre,';
}
if(isset($_POST['apellido'])){
$apellido $_POST['apellido'];
}else{
$error .=  'apellido,';
}
if(
$error == NULL){
echo "ok";
}else{
$error_explode explode(',',$error);
foreach($error_explode as $e2){
echo '<strong><span style="color:red">'.$e2.'</span></strong>'.'<br/>';

}
?>


Al parecer hay un error y no adiere datos al la variable $error que es la encargada de almacenar los errores con coma para deszpues con explode poder separarlos y mostrarlos mas lindos...

Espero que me ayuden ya que estoy desesperado un saludo a todos ya gracias siempre por la buena onda..  ;D

N4X

Código (php) [Seleccionar]
<?php
$error 
''// esta vacia //
if(isset($_POST['nombre'])){
$nombre $_POST['nombre'];
}else{
$error .=  'Nombre,';
}
if(isset($_POST['apellido'])){
$apellido $_POST['apellido'];
}else{
$error .=  'apellido,';
}
if(
$error == NULL){
echo "ok";
}else{
$error_explode explode(',',$error);
foreach($error_explode as $e2){
echo '<strong><span style="color:red">'.$e2.'</span></strong>'.'<br/>';

}
?>


la verdad si que es tonto...
el code es tuyo? o es de algún lado??

Código (php) [Seleccionar]
$error = ''; // esta vacia //
if($error == NULL){


notas la diferencia de tipo de datos?

no es lo mismo una cadena '' que null..

tendrias que hacer: $error = NULL;

octavioxd

ni aun asi funciona si setteo un solo dato ya lo valida.... para que no lo valide tengo no tengo que settear ningun y yo quiero que me tire error tanto si setteo un solo campo que si no setteo ninguno..

N4X

Código (php) [Seleccionar]

<?php
$error 
''// esta vacia //
if(isset($_POST['nombre']) && strlen($_POST['nombre']) > 0){
$nombre $_POST['nombre'];
}else{
$error .=  'Nombre,';
}
if(isset($_POST['apellido']) && strlen($_POST['apellido']) > ){
$apellido $_POST['apellido'];
}else{
$error .=  'apellido,';
}
if(
$error == ''){
echo "ok";
}else{
$error_explode explode(',',$error);
foreach($error_explode as $e2){
echo '<strong><span style="color:red">'.$e2.'</span></strong>'.'<br/>';

}
    
echo 
'<form action="'.$_SERVER['PHP_SELF'].'" method="POST" >
        Nombre: <input type="textbox" name="nombre" /><br />
        Apellido: <input type="textbox" name="apellido" /><br />
        <input type="submit" value="enviar" />
     '
;
?>



pasé por alto el detalle del post...

con el isste se valida como correcto ya que lo toma como una cadena vacía...
para eso comprueba que su longitud es mayor que nada..
también deberias quitar los espacios en blanco al hacer esa comprobación con str_replace().

Y así te evitas que metan como nombre " " para saltarse la validación

octavioxd

Gracias NAX-SYNTAX.. Ya esta solucionado el problema y me estaba imaginando que el problema provenia por eso.. Gracias!