Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

126
Vistas
Manejo de datos POST truncados en php

Tengo un formulario con un pequeño número (hasta 10) de entradas. Una de esas entradas es una entrada de carga de archivos. El diseño del formulario es el siguiente:

 <form method="post" ...> <input type="hidden" name="input_no_1" value="value_no_1"> <input type="file" name="input_no_2"> <input type="hidden" name="input_no_3" value="value_no_3"> <button type="submit">send</button>

El 99,9% de las veces este formulario funciona bien y obtengo todos los datos del lado de PHP. Sin embargo, de vez en cuando, los datos POST se truncan y la variable $_POST contiene solo esto:

 input_no_1 => value_no_1

Falta la entrada del archivo y todas las demás entradas que siguen a la entrada del archivo.

Este error ocurre casi exclusivamente con los agentes de usuario que contienen "Mobile Safari". Sospecho que los usuarios de teléfonos móviles podrían estar usando una conexión de red menos confiable y, como resultado, su solicitud se cancela y PHP no recibe todos los datos cargados.

En mi aplicación, necesito saber si los datos en la matriz $_POST están completos o no. Esperaba que si el servidor HTTP no recibe la solicitud completa, ni siquiera la vería desde el lado de PHP.

Estoy usando apache/fpm. upload_max_filesize y post_max_size están configurados en 2G y no se acercan al tamaño de los archivos cargados.

La pregunta: ¿cuál es la mejor manera de manejar datos POST incompletos en PHP? ¿Hay alguna forma de evitar que estas solicitudes lleguen a mi aplicación y, de no ser así, hay alguna forma de saber si los datos publicados están completos? Prefiero no agregar ningún campo al final del formulario solo para saber si la solicitud está completa o no :)

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Parece que este es un caso de necesidad de alguna validación de formulario del lado del servidor. Suponiendo que todos los campos anteriores sean obligatorios, algo como lo siguiente podría funcionar para usted:

 if (!isset($_POST['input_no_1'], $_POST['input_no_2'], $_FILES['input_no_2'])) { die('Form not filled completely'); } else { //process form }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda