Foros del Web » Programando para Internet » PHP »

Si campo vacio no enviar nada

Estas en el tema de Si campo vacio no enviar nada en el foro de PHP en Foros del Web. Hola a todos Tengo un formulario en el cual inserto una imagen y un pdf en la base de datos, pero solo inserto la ruta. ...
  #1 (permalink)  
Antiguo 13/08/2009, 10:23
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Si campo vacio no enviar nada

Hola a todos
Tengo un formulario en el cual inserto una imagen y un pdf en la base de datos, pero solo inserto la ruta. Me gustaria que si estos 2 campos estan vacios no me insertara nada en la base de datos, ya que si no insertan nada, me escribe la ruta de la carpeta donde deveria ir.
Aqui os pongo el codigo

Código PHP:
srand (time());
//generamos un número aleatorio
$mismo=str_replace(" ","_",$mismo);
$mismo rand(1,100000000000); 
$pdfnumero rand(1,100000000000);
$mismopdf $pdfnumero '.pdf';
$nombre_img str_replace(" ","",$_FILES['imagen'] ['name']);


$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}



if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "insertar")) {
  
$insertSQL sprintf("INSERT INTO productos (nombre, categoria, descripcion,  imagen, pdf, val_vendedor, usuario) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['Nombre'], "text"),
                       
                       
GetSQLValueString($_POST['categoria'], "text"),
                       
GetSQLValueString($_POST['descripcion'], "text"),
                       
                       
GetSQLValueString("../archivos/".$mismo.$nombre_img"text"),
                       
GetSQLValueString("../pdf/" $_FILES['pdf'] .$mismopdf"text"),
                       
GetSQLValueString($_POST['val_vendedor'], "text"),
                       
GetSQLValueString($_POST['usu'], "text"));
                       
                       
                       if(
$_FILES["imagen"]["type"] == "image/pjpeg"  

  
|| $_FILES["imagen"]["type"] == "image/jpeg"  

  
|| $_FILES["imagen"]["type"] == "image/x-png"

  
|| $_FILES["imagen"]["type"] == "image/png"  

  
|| $_FILES["imagen"]["type"] == "image/gif" ){

     
$copy copy($_FILES['imagen']['tmp_name'], "../archivos/" .$mismo .$nombre_img);
$copy copy($_FILES['pdf']['tmp_name'], "pdf/" $_FILES['pdf'] .$mismopdf); 
  #2 (permalink)  
Antiguo 13/08/2009, 10:54
 
Fecha de Ingreso: agosto-2009
Ubicación: Quito
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Si campo vacio no enviar nada

con una condicion

if(!empty(micampo)){

inserteme los datos

}
  #3 (permalink)  
Antiguo 13/08/2009, 14:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: Si campo vacio no enviar nada

Pero como lo coloco destro del codigo que he puesto?

Cita:
Iniciado por guerres Ver Mensaje
con una condicion

if(!empty(micampo)){

inserteme los datos

}
  #4 (permalink)  
Antiguo 13/08/2009, 14:41
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 16 años, 3 meses
Puntos: 8
Respuesta: Si campo vacio no enviar nada

tendrias que validar que le nombre de donde seleccionas el archivo venga vacio:


Supongamos que este es tu form

Código PHP:

<form enctype="multipart/form-data" action="archivo.php" method="POST">
<
input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Escoja un PDF: <input name="subir_PDF" type="file" /><br />
<
input type="submit" value="Subir PDF" />

<
input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Escoja un JPG: <input name="subir_JPG" type="file" /><br />
<
input type="submit" value="Subir Foto" />
</
form

en el archivo.php

Código PHP:

if($_POST['subir_PDF']!='' && $_POST['subir_JPG']!='' )
   {

   
///Insertar
   

Saluditos
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #5 (permalink)  
Antiguo 13/08/2009, 14:50
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 8 meses
Puntos: 25
Respuesta: Si campo vacio no enviar nada

Cita:
Iniciado por Ing_FOFO Ver Mensaje
tendrias que validar que le nombre de donde seleccionas el archivo venga vacio:


Supongamos que este es tu form

Código PHP:

<form enctype="multipart/form-data" action="archivo.php" method="POST">
<
input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Escoja un PDF: <input name="subir_PDF" type="file" /><br />
<
input type="submit" value="Subir PDF" />

<
input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Escoja un JPG: <input name="subir_JPG" type="file" /><br />
<
input type="submit" value="Subir Foto" />
</
form

en el archivo.php

Código PHP:

if($_POST['subir_PDF']!='' && $_POST['subir_JPG']!='' )
   {

   
///Insertar
   

Saluditos
SERIA:
Código PHP:
if($_FILES['subir_PDF']['tmp_name']!=""){
 
// lo que haré en caso de que el campo no se encuentre vacio 
}else if($_FILES['subir_JPG']['tmp_name']!=""){
 
// lo que haré en caso de que el campo no se encuentre vacio 

aunque viendo tu código veo que tienes predeterminada la ruta dónde laojaria la imagen por lo tanto debes corregir eso tmb.

Saludos
__________________
Hospedaje Web al mejor costo!
  #6 (permalink)  
Antiguo 14/08/2009, 07:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: Si campo vacio no enviar nada

Perdona mi ignorancia, no estoy muy puesto en esto.
La ruta que tiene el pdf y las imagenes son necesarias para que me suba los archivos en un directorio.
Lo que no entiendo ya que tu me lo explicas que deberia de tener 2 paginas y yo solo uso una pagina.
Fijantode en el codigo que he puesto, me podrias poner el codigo tal donde deberia estar, ya que yo lo he colocado segun creia y me sale la pagina en blanco.
Lo que quiero hacer es que si los campos estan vacios me inserten un nombre predeterminado, en el caso de las imagenes seria "noimage.jpg" ya que ahora si no me insertan imagenes, no me sale nada y queda feo.
Un saludo y gracias


Cita:
Iniciado por urgido Ver Mensaje
SERIA:
Código PHP:
if($_FILES['subir_PDF']['tmp_name']!=""){
 
// lo que haré en caso de que el campo no se encuentre vacio 
}else if($_FILES['subir_JPG']['tmp_name']!=""){
 
// lo que haré en caso de que el campo no se encuentre vacio 

aunque viendo tu código veo que tienes predeterminada la ruta dónde laojaria la imagen por lo tanto debes corregir eso tmb.

Saludos
  #7 (permalink)  
Antiguo 14/08/2009, 09:39
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 16 años, 3 meses
Puntos: 8
Respuesta: Si campo vacio no enviar nada

Hola visona

Te explico rapidamente:
Las dos opciones son validas, uno mira que el campo donde tiene la diereccion esta vacio (Que es la mia), y la otra mira que el nombre temporal del archivo que acabas de subir tenga un valor.

Bueno entonces no te hagas bolas con cuantas paginas necesitas etc, etc. Me imagino como lo tienes funciona bien solo que no sabes que hacer cuando esta el campo vacio y esto es lo que te describo a continuacion:

Código PHP:
// verificas que tenga algun valor el campo para subir tu archivo
if($_POST['subir_PDF']!='' && $_POST['subir_JPG']!='' )
   {
//si lo tiene entonces insertas el archivo en tu bd
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "insertar")) {
  
$insertSQL sprintf("INSERT INTO productos (nombre, categoria, descripcion,  imagen, pdf, val_vendedor, usuario) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['Nombre'], "text"),
                       
                       
GetSQLValueString($_POST['categoria'], "text"),
                       
GetSQLValueString($_POST['descripcion'], "text"),
                       
                       
GetSQLValueString("../archivos/".$mismo.$nombre_img"text"),
                       
GetSQLValueString("../pdf/" $_FILES['pdf'] .$mismopdf"text"),
                       
GetSQLValueString($_POST['val_vendedor'], "text"),
                       
GetSQLValueString($_POST['usu'], "text"));
                       
                       
                       if(
$_FILES["imagen"]["type"] == "image/pjpeg"  

  
|| $_FILES["imagen"]["type"] == "image/jpeg"  

  
|| $_FILES["imagen"]["type"] == "image/x-png"

  
|| $_FILES["imagen"]["type"] == "image/png"  

  
|| $_FILES["imagen"]["type"] == "image/gif" ){

     
$copy copy($_FILES['imagen']['tmp_name'], "../archivos/" .$mismo .$nombre_img);
$copy copy($_FILES['pdf']['tmp_name'], "pdf/" $_FILES['pdf'] .$mismopdf);  
   }  

else 
// no se escogio ningun archivo entonces mandas a guardarlo como NO_NAME

{

$insertSQL sprintf("INSERT INTO productos (nombre, categoria, descripcion,  imagen, pdf, val_vendedor, usuario) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['Nombre'], "text"),
                       
                       
GetSQLValueString($_POST['categoria'], "text"),
                       
GetSQLValueString($_POST['descripcion'], "text"),
                       
                       
GetSQLValueString("../archivos/noname.jpg""text"),
                       
GetSQLValueString("../pdf/noname.pdf""text"),
                       
GetSQLValueString($_POST['val_vendedor'], "text"),
                       
GetSQLValueString($_POST['usu'], "text"));
                       
                       

Espero haya quedado claro.

Saludos
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #8 (permalink)  
Antiguo 14/08/2009, 11:25
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: Si campo vacio no enviar nada

Pues no me funciona, no me inserta nada en la BD, si le quito el codigo que me has pasado si que me lo inserta. debe de a ver algun fallo. Le he cambiado los campos que me has puesto por esto, que son los suyos, supongo que esta biene so

Cita:
Iniciado por Ing_FOFO Ver Mensaje
Hola visona

Te explico rapidamente:
Las dos opciones son validas, uno mira que el campo donde tiene la diereccion esta vacio (Que es la mia), y la otra mira que el nombre temporal del archivo que acabas de subir tenga un valor.
Código PHP:
if($_POST['subir_PDF']!='' && $_POST['subir_JPG']!='' 
por
Código PHP:
if($_POST['pdf']!='' && $_POST['imagen']!='' 
Luego tengo una duda, si alguno de ellos tiene datos, este codigo me pondra "noname" en el que este vacio? un saludo

Bueno entonces no te hagas bolas con cuantas paginas necesitas etc, etc. Me imagino como lo tienes funciona bien solo que no sabes que hacer cuando esta el campo vacio y esto es lo que te describo a continuacion:

Código PHP:
// verificas que tenga algun valor el campo para subir tu archivo
if($_POST['subir_PDF']!='' && $_POST['subir_JPG']!='' )
   {
//si lo tiene entonces insertas el archivo en tu bd
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "insertar")) {
  
$insertSQL sprintf("INSERT INTO productos (nombre, categoria, descripcion,  imagen, pdf, val_vendedor, usuario) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['Nombre'], "text"),
                       
                       
GetSQLValueString($_POST['categoria'], "text"),
                       
GetSQLValueString($_POST['descripcion'], "text"),
                       
                       
GetSQLValueString("../archivos/".$mismo.$nombre_img"text"),
                       
GetSQLValueString("../pdf/" $_FILES['pdf'] .$mismopdf"text"),
                       
GetSQLValueString($_POST['val_vendedor'], "text"),
                       
GetSQLValueString($_POST['usu'], "text"));
                       
                       
                       if(
$_FILES["imagen"]["type"] == "image/pjpeg"  

  
|| $_FILES["imagen"]["type"] == "image/jpeg"  

  
|| $_FILES["imagen"]["type"] == "image/x-png"

  
|| $_FILES["imagen"]["type"] == "image/png"  

  
|| $_FILES["imagen"]["type"] == "image/gif" ){

     
$copy copy($_FILES['imagen']['tmp_name'], "../archivos/" .$mismo .$nombre_img);
$copy copy($_FILES['pdf']['tmp_name'], "pdf/" $_FILES['pdf'] .$mismopdf);  
   }  

else 
// no se escogio ningun archivo entonces mandas a guardarlo como NO_NAME

{

$insertSQL sprintf("INSERT INTO productos (nombre, categoria, descripcion,  imagen, pdf, val_vendedor, usuario) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['Nombre'], "text"),
                       
                       
GetSQLValueString($_POST['categoria'], "text"),
                       
GetSQLValueString($_POST['descripcion'], "text"),
                       
                       
GetSQLValueString("../archivos/noname.jpg""text"),
                       
GetSQLValueString("../pdf/noname.pdf""text"),
                       
GetSQLValueString($_POST['val_vendedor'], "text"),
                       
GetSQLValueString($_POST['usu'], "text"));
                       
                       

Espero haya quedado claro.

Saludos
  #9 (permalink)  
Antiguo 14/08/2009, 12:12
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: Si campo vacio no enviar nada

Puede ser que al tener 2 updates en la misma pagina me este creando problemas?, por que el otro update me funciona bien y esta por encima de este.
He visto codigo que hace referencia a los updates a ver si estan mal colocados.
Código PHP:
<?php
// si el formulario ha sido enviado, convertir subarrays $_POST a strings
if (array_key_exists('configuracion'$_POST)) {
  if (isset(
$_POST['categoria'])) {
    
$_POST['categoria'] = implode(','$_POST['categoria']);
    }
  else {
    
$_POST['categoria'] = '';
    }
  }
?>
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 21:16.