Foros del Web » Programando para Internet » PHP »

Problema con PHP 5.4.12 y formularios

Estas en el tema de Problema con PHP 5.4.12 y formularios en el foro de PHP en Foros del Web. Saludos... Esta ves vengo con un inconveniente algo extraño (o al menos para mi)... Resulta que anteriormente durante el tiempo que aprendí a manejar PHP ...
  #1 (permalink)  
Antiguo 27/01/2014, 17:02
Avatar de aasjpvm  
Fecha de Ingreso: abril-2013
Mensajes: 8
Antigüedad: 11 años
Puntos: 2
Problema con PHP 5.4.12 y formularios

Saludos...
Esta ves vengo con un inconveniente algo extraño (o al menos para mi)...

Resulta que anteriormente durante el tiempo que aprendí a manejar PHP inicie con el paquete de instalación AppServ 2.5.10 que contenía PHP 5.2.6, y hasta ese punto todo bien...

Pero los problemas surgieron cuando quise actualizar un poco y cambie por WAMP, el cual trae PHP 5.4.12...

Resulta que comenzaron a salirme un sin fin de errores en algunos de los ejercicios que avía echo en PHP 5.2 , los cuales supuestamente ya funcionaban correctamente y sin problemas...

Y después de revisar pude resolver algunos de estos y otros descubrí que solo eran notificaciones...

Pero mi principal problema fue con estos mensajes:



Este es el Codigo:
Código:
<form action="Prueba10_Fileupload.php" method="post" enctype="multipart/form-data">
      <b>Nuevo Nombre para el archivo (obcional):</b>
      <br>
      <input type="text" name="cadenatexto" size="20" maxlength="100" value="">
      <input type="hidden" name="MAX_FILE_SIZE" value="8388608">
      <br>
      <br>
      <b>Enviar un nuevo archivo: </b>
      <br>
      <input id="userfile" name="userfile" type="file">
      <br>
      <br>
      &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
      <input type="submit" value="Enviar" name='x'>
    </form>
    </div>
    
    <?php
    
      if($_REQUEST["x"]==TRUE){
      
      //tomo el valor de un elemento de tipo texto del formulario
      $cadenatexto="";
      $extencion="";
      $nombre_archivo="";
      $nombre_archivo1="";

      $cadenatexto = $_POST["cadenatexto"];
      //datos del arhivo
      if($_FILES['userfile']['error'] == 0){
      
        $nombre_archivo1 = $_FILES['userfile']['name'];
        $tipo_archivo = $_FILES["userfile"]["type"];
        $tamano_archivo = $_FILES['userfile']['size'];
        $path="./archivos/";
El problema reside según note, en que por alguna razón no lee o no detecta los datos de los formularios cuando selecciono un archivo y cuando no esta seleccionado ninguno, no sale nada, el error comúnmente sale en la parte del "if($_REQUEST["x"]==TRUE){" , lo cual indica que no detecta el botón del formulario, cosa que cuando lo programe inicialmente con el anterior PHP, no ocurría...

Dicho comando lo uso comúnmente para poner barias funciones o barios formularios en un solo archivo PHP pero ahora con ese problema ya no me funciona...

Espero puedan ayudarme, ya que de otra forma no me quedara de otra que regresarme a la anterior versión de PHP, y no creo que sea la mejor opción...

Adjunto el proyecto para si gustan checarlo (esta en mediafire, pero no se preocupen es ligero)...
https://www.mediafire.com/?6bshunehi6n7ssc
  #2 (permalink)  
Antiguo 27/01/2014, 18:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con PHP 5.4.12 y formularios

La solución es muy sencilla: No uses ni compares variables (o elementos de array) que no estás seguro si ya se definieron o no, para eso existe isset()

Código PHP:
Ver original
  1. // Ejemplo
  2. if(isset($variable) && $variable == "algo") {
  3.       // Ok, la variable existe y tiene el valor buscado
  4. }

P.D. Ojalá tengas oportunidad de cambiar "obcional" por "opcional"
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 28/01/2014, 10:37
Avatar de aasjpvm  
Fecha de Ingreso: abril-2013
Mensajes: 8
Antigüedad: 11 años
Puntos: 2
Pregunta Respuesta: Problema con PHP 5.4.12 y formularios

Cita:
Iniciado por Triby Ver Mensaje
La solución es muy sencilla: No uses ni compares variables (o elementos de array) que no estás seguro si ya se definieron o no, para eso existe isset()

Código PHP:
Ver original
  1. // Ejemplo
  2. if(isset($variable) && $variable == "algo") {
  3.       // Ok, la variable existe y tiene el valor buscado
  4. }

P.D. Ojalá tengas oportunidad de cambiar "obcional" por "opcional"
Buena observación, según lo que estuve checando con el "isset" resuelvo el dilema de las notificaciones...
__________________________________________________ ____________

Ok, ya identifique parte del problema, resulta que si estaba funcionando, solo que no había calado ningún otro tipo de archivo (estaba calando siempre con el mismo), y al calar con una imagen, resulto que si funcionaba...

Tal parece ser que el problema radicaba en alguna de las características de los archivos, mas específicamente el tamaño, ya que superaba el tamaño máximo de subida (2M Default) del PHP.ini, lo que hacia que no lo detectase (y que anteriormente si lo hacia por que ya había modificado el php.ini del php 5.2 que tenia antes), y lo cual no ocurría con archivos ligeros...

Pero después de varias pruebas note un patrón, al parecer algunos archivos, no superaban el tamaño máximo (que aumente a 20M en el php.ini), pero aun siguen causando el mismo error...

No estoy seguro si se deba a la linea:

Código:
<input type="hidden" name="MAX_FILE_SIZE" value="8388608">
Pero al menos ya se redujo un poco el problema...
Espero aun puedan seguirme ayudando...

PD: Gracias por la corrección ortográfica, no lo había notado para nada...

Etiquetas: formulario
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 19:43.