Foros del Web » Programando para Internet » PHP »

Si tengo campos vacios que no inserte datos!

Estas en el tema de Si tengo campos vacios que no inserte datos! en el foro de PHP en Foros del Web. Hola. Veo que este foro es muy bueno para resolver las cosas que nos faltan por aprender. Tengo un formulario php que cree para una ...
  #1 (permalink)  
Antiguo 09/07/2009, 09:22
 
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 14 años, 9 meses
Puntos: 0
Si tengo campos vacios que no inserte datos!

Hola.

Veo que este foro es muy bueno para resolver las cosas que nos faltan por aprender.

Tengo un formulario php que cree para una pagina web. Cuando la persona llena el formulario los datos se insertan a una base de datos. Pero he notado que si los campos a llenar del formulario estan vacios aun asi se envian los datos a la base de datos, y claro aparecen en blancos. Entonces lo que quiero es un codigo que verifique si los campos a llenar del formulario estan vacios que de error y oblique a la persona a insertar todos los datos de los campos requeridos, asi en la base de datos no tengo campos vacios.
Si me pueden ayudar gracias.

Aqui mi codigo, por favor si tienen la respuesta del codigo que quiero, ponerlo donde va para que no me de error yo buscando donde ponerlo.

<?php
echo "<form action = 'comentarios.php' method = 'post'>";
echo "Nombre: <br><input type = 'text' name= 'nombre'><br>";
echo "UserName: <br><input type = 'text' name= 'username'><br>";
echo "Email: <br><input type= 'text' name='email'><br>";
echo "Comentario: <br><textarea name='comentario' rows='5' cols='30'></textarea><br>";
echo "<input type='submit' name='enviar' value='Enviar'>";
echo "</form>";
if(isset($_POST["enviar"])){
$conexion=mysqli_connect("localhost", "root", "pam1234");
mysqli_select_db($conexion, "comentarios");
$query = "INSERT INTO tabla_comentarios (nombre,username,email,comentario) values('".$_POST["nombre"]."','".$_POST["username"]."','".$_POST["email"]."','".$_POST["comentario"]."')";
$result = mysqli_query($conexion,$query);
if(mysqli_error($conexion))
echo"Error al entrar los campos";
else
$nombre=$_POST["nombre"];
$username=$_POST["username"];
$email=$_POST["email"];
$comentario=$_POST["comentario"];

echo 'Sus datos ingresados fueron:<br> Nombre:'.$nombre.'<br>Username:'.$username.'<br>Em ail:'.$email.'<br>Comentario:'.$comentario;
mysqli_close($conexion);
}
?>
  #2 (permalink)  
Antiguo 09/07/2009, 09:45
Avatar de oktubre  
Fecha de Ingreso: agosto-2003
Ubicación: en mi casa
Mensajes: 371
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Si tengo campos vacios que no inserte datos!

a simple vista lo que se me ocurre es que le metas in if que evalúe todos los campos, tipo esto

<?php
echo "<form action = 'comentarios.php' method = 'post'>";
echo "Nombre: <br><input type = 'text' name= 'nombre'><br>";
echo "UserName: <br><input type = 'text' name= 'username'><br>";
echo "Email: <br><input type= 'text' name='email'><br>";
echo "Comentario: <br><textarea name='comentario' rows='5' cols='30'></textarea><br>";
echo "<input type='submit' name='enviar' value='Enviar'>";
echo "</form>";
/////////////////////////////////////////////////////////////////////////////////////////
// es aqui donde hay que verificar que los campos no lleguen bacíos.
/////////////////////////////////////////////////////////////////////////////////////////
if ($nombre=='' || $username=='' || $email=='' || $comentario =='') {

echo "Todos los campos son obligatorios, debe completarlos. Gracias";
echo "<form action = 'comentarios.php' method = 'post'>";
echo "Nombre: <br><input type = 'text' name= 'nombre'> <br>";
echo "UserName: <br><input type = 'text' name= 'username'><br>";
echo "Email: <br><input type= 'text' name='email'><br>";
echo "Comentario: <br><textarea name='comentario' rows='5' cols='30'></textarea><br>";
echo "<input type='submit' name='enviar' value='Enviar'>";
echo "</form>";
} elser {

if(isset($_POST["enviar"])){
$conexion=mysqli_connect("localhost", "root", "pam1234");
mysqli_select_db($conexion, "comentarios");
$query = "INSERT INTO tabla_comentarios (nombre,username,email,comentario) values('".$_POST["nombre"]."','".$_POST["username"]."','".$_POST["email"]."','".$_POST["comentario"]."')";
$result = mysqli_query($conexion,$query);
if(mysqli_error($conexion))
echo"Error al entrar los campos";
else
$nombre=$_POST["nombre"];
$username=$_POST["username"];
$email=$_POST["email"];
$comentario=$_POST["comentario"];

echo 'Sus datos ingresados fueron:<br> Nombre:'.$nombre.'<br>Username:'.$username.'<br>Em ail:'.$email.'<br>Comentario:'.$comentario;
mysqli_close($conexion);
}
}


?>


si por algun motivo tenes las ganas de evaluar cada una de las variables lo mejor es que reames un poco el archivo donde se muestran los campos y crees algunas condiciones previas, del tipo si todos los campos estan completos entonces error = 0 o cosa similar, cosa que el campo que aparezca bacío le ponga $error en 1 y despues reevalúes para mostrar cuales campos no llenó el tontin que no entienda que tus campos son obligatorios.
por otro lado, una monada que esta buena y facil de hacer es un verificador de presencia humana, el que tiene un par de letras deformadas.
eso tambien lo haces con un if antes de meter la consulta en tu bd y listo,
saludos,
__________________
w32.oktubre@mm <----------------<<<<
prefiero cerrar la boca y parecer un tonto que abrirla y confirmarlo.
  #3 (permalink)  
Antiguo 09/07/2009, 10:10
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: Si tengo campos vacios que no inserte datos!

Código PHP:
echo "<form action = 'comentarios.php' method = 'post'>";
echo 
"Nombre: <br><input type = 'text' name= 'nombre'><br>";
echo 
"UserName: <br><input type = 'text' name= 'username'><br>";
echo 
"Email: <br><input type= 'text' name='email'><br>";
echo 
"Comentario: <br><textarea name='comentario' rows='5' cols='30'></textarea><br>";
echo 
"<input type='submit' name='enviar' value='Enviar'>";
echo 
"</form>";
if(isset(
$_POST["enviar"])){
$conexion=mysqli_connect("localhost""root""pam1234");
mysqli_select_db($conexion"comentarios");

$datos = array();
$fields = array("nombre"=>$_POST['nombre'],"username"=>$_POST['username'],"email"=>$_POST['email'],"comentario"=>$_POST['comentario']);
$error_req false;
foreach (
$fields AS $keys => $values){
 if(empty(
$values)){$error_reg true; break;}
$fields[$keys] = mysql_real_escape_string($values);
$datos[] = ucfirst($keys)." : ".$values;
}

if(!
$error_req){
$query "INSERT INTO tabla_comentarios (nombre,username,email,comentario) values('".$fields["nombre"]."','".$fields["username"]."','".$fields["email"]."','".$fields["comentario"]."')";
$result mysqli_query($conexion,$query);
if(
mysqli_error($conexion) || !$result){
echo
"Error al entrar los campos";
}else{

echo 
'Sus datos ingresados fueron:<br />' .implode('<br />',$datos);
}
}else{
echo 
"Debes llenar todos los campos, alg&uacute;n campo esta vac&iacute;o";
}

__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
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 11:24.