Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Validar que $_POST viene vacio

Estas en el tema de Validar que $_POST viene vacio en el foro de PHP en Foros del Web. Hola, he probado ya varias opciones y de todas ellas una me funciona, pero no se porque cuando repito el código, estos ya no me ...
  #1 (permalink)  
Antiguo 06/03/2015, 04:12
 
Fecha de Ingreso: mayo-2006
Mensajes: 71
Antigüedad: 18 años, 5 meses
Puntos: 0
Validar que $_POST viene vacio

Hola, he probado ya varias opciones y de todas ellas una me funciona, pero no se porque cuando repito el código, estos ya no me funcionan.


La cosa es que quiero saber si $_POST viene vació para que, si viene vació, no inserte nada en la base de datos. Utilizo lo siguiente:


Código PHP:
if (!empty($_POST['variable'])) {

    
$sql="Insert MySql...)";
    
mysql_query($sql$con);


Este código en teoría me va bien, pero cuando quiero hacer lo mismo con otra tabla, parece que se solapan y se hace inservible la función. ¿porque puede pasar esto?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 06/03/2015, 08:03
 
Fecha de Ingreso: abril-2001
Ubicación: Argentina
Mensajes: 67
Antigüedad: 23 años, 7 meses
Puntos: 0
Respuesta: Validar que $_POST viene vacio

Quieres validar si un campo esta vacio o si todos los campos estan vacios?

Código PHP:
<?php 

$nombre 
stripslashes(mysqli_real_escape_string($conexion$_POST['nombre']));
$apellidos stripslashes(mysqli_real_escape_string($conexion$_POST['apellidos']));

if (empty(
$nombre)) { 
    echo 
"Debe introducir un Nombre. <a href='javascript:history.back();'>Reintentar</a>";
} elseif (empty(
$apellidos )) {
    echo 
"Debe introducir un Apellido. <a href='javascript:history.back();'>Reintentar</a>";
} else {

AQUI HAGO EL INSERT O UPDATE

}
?>
Espero te sirva la respuesta
__________________
Saludos!
  #3 (permalink)  
Antiguo 06/03/2015, 08:21
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Validar que $_POST viene vacio

Cita:
Este código en teoría me va bien, pero cuando quiero hacer lo mismo con otra tabla, parece que se solapan y se hace inservible la función. ¿porque puede pasar esto?

Muchas gracias de antemano
sin el código, sin error, es estar adivinando que puedes tener mal.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 09/03/2015, 17:26
 
Fecha de Ingreso: mayo-2006
Mensajes: 71
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Validar que $_POST viene vacio

Buenas

Ante todo muchísimas gracias por responder y mis disculpas por dejar el tema unos días y no expresarme todo lo bien que hubiera querido.

El código que utilizo es el siguiente:

Código PHP:
$img=$_FILES['img']['tmp_name'];

if (!empty(
$img)) {

$count=1;
foreach (
$img as $file) {


  
$ruta $count $last_id "_" str_replace(' ','-',$model) . ".jpg";
  
copy($file"images/veh/" $ruta);

    
$sql="INSERT INTO `images` (`vehicle_id_vehicle`, `image`, `alt`, `title`, `position`, `active`) VALUES ('$last_id', '$ruta', '', '', '$count', '1')";
    
mysql_query($sql$con);

$count++;
 }

El código en teoría funciona. Cuando envío desde el formulario imagenes se copia la imagen en la carpeta seleccionada y hace el registro en la base de datos. Mi intencion es que cuando no se envían imagenes, $_FILES['img'] viene vacío, ni se copie imagen alguna el el servidor ni se haga el registro en la base de datos. Cuando esto pasa, no se guarda ninguna imagen en el servidor, supongo que porque no hay nada que copiar, pero se guarda el registro en la base de datos así que supongo que aunque $_FILES['img'] venga vacío el código se ejecuta. ¿Puede ser porque incluya un foreach? Utilizo empty() para validar otro datos que no vienen en array y hace su cometido.

Muchas gracias foreros. Saludos

Última edición por neck; 09/03/2015 a las 17:31
  #5 (permalink)  
Antiguo 09/03/2015, 18:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Validar que $_POST viene vacio

Para comprobar si un archivo se ha subido o no debes utilizar is_uploaded_file(), por favor consulta el manual.

Código PHP:
Ver original
  1. if (is_uploaded_file('name_del_input')) {
  2.   // acá procesas el upload, INSERT, etc...
  3. }
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 10/03/2015, 10:58
Avatar de fer911  
Fecha de Ingreso: enero-2004
Ubicación: Saltillo, Coah
Mensajes: 65
Antigüedad: 20 años, 10 meses
Puntos: 3
Respuesta: Validar que $_POST viene vacio

Lo que estan haciendo es pasar lo que hay en $_FILES['img']['tmp_name'] a $img

Código PHP:
$img=$_FILES['img']['tmp_name']; 
Pero si te fijas bien $_FILES es un arreglo y cuando no subes nada el arreglo no existe
tu codigo tendria que ser algo asi
Código PHP:
if (isset($_FILES['img']['size'])){
        if (
$_FILES['img']['size'] > 0){
          .
          .
          .
        }

Claro con los ajustes que debe tener, pero a ti te interesa las primeras lineas
el isset
  #7 (permalink)  
Antiguo 11/03/2015, 13:55
 
Fecha de Ingreso: mayo-2006
Mensajes: 71
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Validar que $_POST viene vacio

Muchísimas gracias a todos por vuestra ayuda. Créanme, leí toda la información posible para intentar solucionarlo, incluso hice miles de pruebas pero nada.

Gracias pateketrueke, is_uploaded_file era la solución. Ahora me va perfecto pero la comprobación la tuve que poner dentro del foreach en vez de antes para que si no vienen archivos ni siquiera ejecute una vez el bucle. Aunque funciona, es una forma posible? o no es nada convencional?

Este es mi nuevo codigo:
Código PHP:
$count=1;
foreach (
$img as $file) {

if (
is_uploaded_file($file)) {


list(
$width$height) = getimagesize($file);
     
$newwidth $width 0.3;
     
$newheight $height 0.3;

     
// Cargar la imagen
     
$thumb imagecreatetruecolor($newwidth$newheight);
     
$source imagecreatefromjpeg($file);
// Redimensionar
imagecopyresized($thumb$source00000$newwidth$newheight$width$height);

// Crear la imagen
imagejpeg($thumb"images/veh/" $count $last_id "_" str_replace(' ','-',$model) . "-small.jpg",75);



  
$ruta $count $last_id "_" str_replace(' ','-',$model) . ".jpg";
  
copy($file"images/veh/" $ruta);

    
$sql="INSERT INTO `images` (`vehicle_id_vehicle`, `image`, `alt`, `title`, `position`, `active`) VALUES ('$last_id', '$ruta', '', '', '$count', '1')";
    
mysql_query($sql$con);

$count++;
 }

Gracias de nuevo foreros

Etiquetas: mysql, post, sql, tabla, vacio, variable
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:19.