Foros del Web » Programando para Internet » PHP »

insertar igual en bd si no se subio archivo

Estas en el tema de insertar igual en bd si no se subio archivo en el foro de PHP en Foros del Web. Hola amigos, tengo el siguiente inconveniente, tengo un formulario donde el usuario puede publicar noticas, y si lo desea, adjuntar imagenes, en la bd tengo ...
  #1 (permalink)  
Antiguo 15/08/2014, 16:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
insertar igual en bd si no se subio archivo

Hola amigos, tengo el siguiente inconveniente, tengo un formulario donde el usuario puede publicar noticas, y si lo desea, adjuntar imagenes, en la bd tengo los campos de imagenes como no requeridos, ya que no es obligacion el upload de fotos, ahora haciendo unas pruebas de validacion de formatos me encuentro con que si no subo una imagen no puedo publicar nada..

Necesito validar que si no se sube nada, se pueda publicar igual la noticia:

deberia ser con un if, eso lo tengo claro, lo que no entiendo del todo es donde poner el if...

tengo el codigo asi:

Funcion para hacer el insert (en un archio php aparte):
Código PHP:
//Inserción de Datos en Base de Datos
        
function insertarAvisos($rutas = array('''')){
          
/* echo '<pre>';
                print_r($rutas);
                echo '</pre>';*/
            
            
           
try{
               
               
//$titulo_aviso=filter_input(INPUT_POST,$titulo_aviso,FILTER_SANITIZE_MAGIC_QUOTES);
               
                
$query  ="INSERT INTO avisos (titulo_aviso,categoria_aviso,tipo_aviso,comuna,aviso_completo,valor_producto,fecha_publicacion,nombre,telefono_celular,telefono_fijo,correo_electronico,direccion,img1,img2,img3,img4,img5)"//,img1,img2,img3,img4,img5 
                
$query .="VALUES(:titulo_aviso,:categoria_aviso,:tipo_aviso,:comuna,:aviso_completo,:valor_producto,:fecha_publicacion,:nombre,:telefono_celular,:telefono_fijo,:correo_electronico,:direccion,:img1,:img2,:img3,:img4,:img5)"//,:rutas[0],:rutas[1],:rutas[2],:rutas[3],:rutas[4]
                //Preparamos la consulta
                
$stmt$this->con->prepare($query);
                
$stmt->bindParam(':titulo_aviso',$_POST['titulo_aviso'],PDO::PARAM_STR);
                
$stmt->bindParam(':categoria_aviso'$_POST['categoria_aviso'] ,PDO::PARAM_STR);
                
$stmt->bindParam(':tipo_aviso'$_POST['tipo_aviso'] ,PDO::PARAM_STR);
                
$stmt->bindParam(':comuna'$_POST['comuna'],PDO::PARAM_STR);
                
$stmt->bindParam(':aviso_completo'$_POST['aviso_completo'],PDO::PARAM_STR);
                
$stmt->bindParam(':valor_producto'$_POST['valor_producto']);
                
//Fecha de Publicacion
                
$stmt->bindParam(':fecha_publicacion',date('Y-m-d'time()),PDO::PARAM_STR);
                
$stmt->bindParam(':nombre'$_POST['nombre'] ,PDO::PARAM_STR);
                
$stmt->bindParam(':telefono_celular'$_POST['telefono_celular']);
                
$stmt->bindParam(':telefono_fijo'$_POST['telefono_fijo']);
                
$stmt->bindParam(':correo_electronico'$_POST['correo_electronico'] ,PDO::PARAM_STR);
                
$stmt->bindParam(':direccion'$_POST['direccion'] ,PDO::PARAM_STR);
                
$stmt->bindParam(':img1'$rutas[0]); //, $this->rutas[0]
                
$stmt->bindParam(':img2' ,$rutas[1]);
                
$stmt->bindParam(':img3' ,$rutas[2]);
                
$stmt->bindParam(':img4' ,$rutas[3]);
                
$stmt->bindParam(':img5' ,$rutas[4]);

                
//Ejecutamos la Consulta
                
$stmt->execute();
                echo 
"<div class='alert alert-success alert-dismissable'>";
                echo 
"<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>";
                echo 
"Su aviso ha Sido Publicado con Exito...Gracias por Utilizar nuestra Plataforma";
                echo 
"</div>";

                }catch(
PDOException $e){
                       echo 
$e->errorInfo;
                echo 
"<div class=\"alert alert-danger alert-dismissable\">";
                echo 
"<button type=\"button\" class=\"close\" data-dismiss=\"danger\" aria-hidden=\"true\">&times;</button>";
                echo 
"Su aviso no se ha podido Publicar...Por favor Intente mas Tarde";
                echo 
"</div>";
                }
//catch
  
        
}//funcion InsertarAvisos 
y el script que procesa el upload y llama a la funcion insertar:
Código PHP:
require_once '../Inc/funciones.php';

$obj = new Avisos();

/*$obj->insertarAvisos();*/

if(isset($_POST['enviar'])){
  
    if(isset(
$_FILES['fotosavisos'])){
     
$rutas = array(''''); // Inicializas con dos rutas vacías
             //Subida de Archivos
            
foreach($_FILES['fotosavisos']['tmp_name'] as $key => $nombresTemporal)
            {   
                          
                
//Nombre del Arreglo generado con el input fotosavisos
                
$nombres=$_FILES['fotosavisos']['name'][$key];
                
                
//Nombre Temporal de la Imagen (Generada por el servidor)
                
$nombresTemporal=$_FILES['fotosavisos']['tmp_name'][$key];
                
                
//Tamaño de la Imagen
                
$tamaño=$_FILES['fotosavisos']['size'][$key];
                
                
//Tipo de Imagen
                
$tipo=$_FILES['fotosavisos']['type'][$key];
                
                
$nombres=uniqid(date('Ymd')).$nombres;
               
                
//$nombres=uniqid(microtime()) . $nombres;
                
                
$nombres=preg_replace('#[^a-z.0-9,\s+]#i'''$nombres);
                
                
//$ext = end(explode(".", $nombres));
                
                //$nombres=  substr(($nombres),0,25);
                
                
$nombres=substr(md5($nombres), 010);
                
                
//Extension
                //$mak=explode(".", $nombres);
                
                //$extensionimg=end($mak);
                //$ext = end(explode(".", $nombres));
                
                              
                //$nombres=substr($nombres, 0, 10);
                
                //$nombres=$nombres . '.' . $extensionimg;

                
               //$nombres= $nombres . '.' . $ext;
                
                //$nombreUnico=substr(md5($nombres),0 , 10);
               
                
                
                /*if (!preg_match("/.(jpg|jpeg|JPG|gif|png)$/i", $nombres) ) {
                // This condition is only if you wish to allow uploading of specific file types    
                //echo "ERROR: Solo Imagenes con formato: .gif, .jpg, or .png.";
                //echo "<script type=\"text/javascript\">alert(\"ERROR: Solo Imagenes con formato: .gif, .jpg, or .png\");</script>";  
                //echo '<meta http-equiv="Refresh" content="0;URL=../index.php">';
                //echo header("location: ".$_SERVER['HTTP_REFERER'] ." ");
                //unlink($nombresTemporal); // Remove the uploaded file from the PHP temp folder
                
                exit();
                
                 
                  } */
                
                
               
                //$nombreunico    =   substr($nombreunico,0,10 );
               
                //$nombreunico    =   preg_replace('#[^a-z.0-9]#i', '', $nombres);
               
                
               
                //Ruta en Servidor
               
$rutaFinal="../imagenes_avisos/" $nombres//.$nombreunico.$nombres
               
$rutaFinalSQL="imagenes_avisos/" $nombres//VALIDAR QUE ESTA RUTA EXISTA

            //Movemos los Archivos al Servidor
            
move_uploaded_file($nombresTemporal,$rutaFinal);
            
            
//crearMiniatura($nombres);
              
            // Actualizas la ruta correspondiente para este archivo
            
$rutas[$key] = $rutaFinalSQL;

        }
//foreach  
        
                    
            
//Llamamos a la funcion Insertar $obj->insertarAvisos();
        
    
try{
        
        
$obj->insertarAvisos($rutas);
            
//print_r($_POST);
    
}catch(PDOException $e){
        echo 
$e;
    }
        
    }


}

?> 
  #2 (permalink)  
Antiguo 15/08/2014, 20:19
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: insertar igual en bd si no se subio archivo

logre conseguir la primera parte, puedo insertar bien solo los datos, sin cargar imagenes asi:

if(isset($_POST['enviar'])){

if(!sizeof($_FILES['fotosavisos']['name']) > 5){
echo 'ha cargado mas de 5 fotos';}
else{
$obj->insertarAvisos($rutas);
}
}

ahora me falta donde colocar el resto del codigo, para que se guarden las imagenes si el usuario cargo alguna...

Etiquetas: bd, fecha, formulario, igual, sql
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 18:25.