Foros del Web » Programando para Internet » PHP »

No enviar la informacion ala BD si no llenan todo el formulaio?

Estas en el tema de No enviar la informacion ala BD si no llenan todo el formulaio? en el foro de PHP en Foros del Web. bueno kiero saber cual es el codigo para que muestre un mensaje de error si no llenan todos los datos del formulario? este es el ...
  #1 (permalink)  
Antiguo 08/02/2008, 21:21
 
Fecha de Ingreso: enero-2008
Mensajes: 214
Antigüedad: 16 años, 2 meses
Puntos: 3
No enviar la informacion ala BD si no llenan todo el formulaio?

bueno kiero saber cual es el codigo para que muestre un mensaje de error si no llenan todos los datos del formulario?

este es el codigo del boton "enviar"?

Cita:
#
<?php
#
header('Location:http://www.lavoztellama.com/Gracias%20por%20Registrarte.html');
#
$f = fopen('demo.txt','w+');
#
fwrite($f,'Test');
#
fclose($f);
#
?><?php
//Connect To Database
$hostname='??';
$username='???';
$password='????';
$dbname='???';
$usertable='???';


$connection = mysql_connect($hostname,$username, $password) OR DIE ('Unable to connect to database! Please try again later.');
mysql_select_db($dbname);
//grab data from form

$nick =$_POST["nick"];
$contrasena = $_POST["contrasena"];
$email = $_POST["email"];
$pais = $_POST["pais"];
$edad = $_POST["edad"];
$sexo = $_POST["sexo"];
$ip = $_POST["ip"];

//if else (else if)
if($nick == false || $contrasena == false || $email == false || $pais == false || $edad == false || $sexo == false|| $ip == false){
echo "Por favor llene todos los los campos de requisito," ;
}

$insertar=mysql_query ("INSERT INTO user (id,nick,contrasena,email,pais,edad,sexo,ip) VALUES ('','$nick','$contrasena','$email','$pais','$edad' ,'$sexo','$ip')");


?>
trate de usar el if else (else if) pero no sirve de todas maneras los registra en la base de datos
  #2 (permalink)  
Antiguo 09/02/2008, 00:23
Avatar de manyametal  
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: No enviar la informacion ala BD si no llenan todo el formulaio?

no valides los campos del lado del servidor..
Antes de enviarlo hacete un script del lado del cliente(donde tenes el formulario).
Algo aSI

<script language="javascript" type="text/javascript">
function validar(){
if(document.formulario.nick.value.length < 1 ){
alert("Debe ingresar un nick");
document.formulario.nick.focus();
return 0;
}
if(document.formulario.contrasena.value.length < 2 ){
alert("Debe ingresar una contraseña");
document.formulario.contrasena.focus();
return 0;
}
if(document.formulario.email.value.length < 1 ){
alert("Debe ingresar un email ");
document.formulario.email.focus();
return 0;

}else {
document.formulario.submit();
}
</script>
  #3 (permalink)  
Antiguo 09/02/2008, 00:29
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: No enviar la informacion ala BD si no llenan todo el formulaio?

Cita:
Iniciado por manyametal Ver Mensaje
no valides los campos del lado del servidor.
Creo que eso no es un buen consejo.. cualquiera puede desactivar javascript o enviar los datos desde un formulario alterno.. creo que es mejor validar de los dos lados.. y con Expresiones regulares.. ;)
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #4 (permalink)  
Antiguo 09/02/2008, 08:10
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
De acuerdo Re: No enviar la informacion ala BD si no llenan todo el formulaio?

Una merna facil es la siguiente...

if ($nik=="" or $contrasena=="" or $nombre==") {
echo "Debe completar todos los datos";
exit;
} else {

Conexion a la base y sentencia SQL

}


Saludos espero que te sirva....

en el echo puedes poner el link para voler, o puedes hacer un header para que te tire el error en la misma pagina del formulario... saludos
  #5 (permalink)  
Antiguo 09/02/2008, 09:32
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: No enviar la informacion ala BD si no llenan todo el formulaio?

hola, yo lo hago de la siguiente forma:
Código PHP:
<?php
// recibimos el formulario
// aqui asumo que el submit del formulario es asi
// <input type="submit" name="enviar" value="Enviar" />
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
    
// comprobamos que el formulario no envie campos vacios
    
if(!empty($_POST['campo1']) && $_POST['campo2'] && $_POST['campo3']){
        
// hacemos el INSERT en la BD
        
$sqlInsert mysql_query("INSERT INTO tabla bla bla bla") or die(mysql_error());
        
// enviamos un mensaje de exito
        
echo "Los datos fueron gurdados correctamente";
    }else{
        
// si el formulario envia algun campo vacio
        // enviamos un mensaje de error
        
echo "Debe llenar todos los campos del formulario";
    }
}
?>
espero te sirva, saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #6 (permalink)  
Antiguo 09/02/2008, 10:45
Avatar de manyametal  
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: No enviar la informacion ala BD si no llenan todo el formulaio?

Cita:
Creo que eso no es un buen consejo
tenes razon, me equivoque..
luego de leer un par de cosas: validar del lado del servidor es la unica opcion.
quizas validar como dije antes sea trabajo al pedo.
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 09:01.