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.
<?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
<?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??
$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;
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..
<?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']) > 0 ){
$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
Gracias NAX-SYNTAX.. Ya esta solucionado el problema y me estaba imaginando que el problema provenia por eso.. Gracias!