Ver Mensaje Individual
  #10 (permalink)  
Antiguo 01/12/2009, 10:01
sander
 
Fecha de Ingreso: julio-2003
Ubicación: Cochabamba Bolivia
Mensajes: 300
Antigüedad: 20 años, 9 meses
Puntos: 14
De acuerdo Respuesta: la pagina no advierte los errores

Lo que pasa es que solo te esta validando la existencia de las variables no si esta vacio o no las mismas, mira:

Código php:
Ver original
  1. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  2. $insertSQL = sprintf("INSERT INTO comentarios (nombre, email, comentario, areas, frecuencia, preferencias, suscribir) VALUES (%s, %s, %s, %s, %s, %s, %s)",
  3. GetSQLValueString($_POST['nombre'], "text"),
  4. GetSQLValueString($_POST['email'], "text"),
  5. GetSQLValueString($_POST['comentario'], "text"),
  6. GetSQLValueString($_POST['areas'], "text"),
  7. GetSQLValueString($_POST['frecuencia'], "text"),
  8. GetSQLValueString($_POST['preferencias'], "text"),
  9. GetSQLValueString($_POST['suscribir'], "text"));

Te explico, lo que esta haciendo tu codigo es mandar un array de todos los campos de tu formulario, luego los recoge y los separa, luegos los separa otra ves segun el tipo sea text, select, etc. y luego crea las variables con sus respectivos valores.

Entonces al hacer la condicion con isset solamente esta verificando si la variable exista, en este caso siempre va a existir la variable nombre, asi que siempre se cumplira la condicion y agregara el registro aunque este es vacio, pero si tu campo en tu base de datos es not null, o sea que no permite valores vacios o nulos, te tirara un error.

Lo que te recomiento es lo siguiente cambiar el isset por un empyt y probar, algo asi:

Código php:
Ver original
  1. if ((empyt($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  2. $insertSQL = sprintf("INSERT INTO comentarios (nombre, email, comentario, areas, frecuencia, preferencias, suscribir) VALUES (%s, %s, %s, %s, %s, %s, %s)",
  3. GetSQLValueString($_POST['nombre'], "text"),
  4. GetSQLValueString($_POST['email'], "text"),
  5. GetSQLValueString($_POST['comentario'], "text"),
  6. GetSQLValueString($_POST['areas'], "text"),
  7. GetSQLValueString($_POST['frecuencia'], "text"),
  8. GetSQLValueString($_POST['preferencias'], "text"),
  9. GetSQLValueString($_POST['suscribir'], "text"));

Al no programar tu manualmente no tienes control de lo que quieres corregir, eso es lo malo de usar generadores de codigos, no te vendria mal leerte un poco de php y sql.

Saludos.
__________________
:policia: Uno para todos y todos para uno.