Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

125
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!