Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Variable $_POST llega siempre vacía

Estas en el tema de Variable $_POST llega siempre vacía en el foro de PHP en Foros del Web. Hola gente, He estado buscando en los distintos posts relacionados pero nada. Mi problema es que tengo el siguiente código HTML: Código: <html> <head> </head> ...
  #1 (permalink)  
Antiguo 25/04/2015, 05:46
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 10 meses
Puntos: 1
Variable $_POST llega siempre vacía

Hola gente,

He estado buscando en los distintos posts relacionados pero nada. Mi problema es que tengo el siguiente código HTML:

Código:
<html>
  <head>
  </head>
  <body>
    <div>
      <form id="formLogin" name="formLogin" action="processlogin.php" method="POST" enctype="multipart/form-data">
        <table>
          <tr>
            <td>
              <input name="usuario" type="text" placeholder="Usuario" tabindex="1">
            </td>
          </tr>
          <tr>
            <td>
              <input name="password" type="password" placeholder="Contrase&ntilde;a" tabindex="2">
            </td>
          </tr>
          <tr>
            <td>
              <a id="boton-acceder" href="javascript:login();" tabindex="3">Entrar</a>
            </td>
          </tr>
        </table>
        <input type="hidden" id="context" name="context" value="login">
      </form>
    </div>
  </body>
  <script>
    function login(){
      document.getElementById('formLogin').submit();
    }
  </script>
</html>
Y el código de processlogin.php es el siguiente:

Código:
<?php
  if(isset($_POST['usuario']) && isset($_POST['password'])){
    $user = $_POST['usuario'];
    $pass = $_POST['password'];

    //Acá query a la BBDD y Header("Location: ...") al menu de usuario logueado
  }else{
    //Si no están seteadas las variables, Header("Location: ...") al menu de login nuevamente
    //con un mensaje de error
  }
?>
El caso es que al introducir datos en el formulario y hacer el submit, la variable $_POST siempre llega vacía, ni $_POST['usuario'] ni $_POST['password'] tienen valor. Esto solo me sucede en local en una máquina con Linux con PHP versión 5.5.9 mientras que en el servidor online con PHP 5.6.8 funciona sin problemas.

¿Alguien sabe qué puede ser? ¿Es posible que sea algo relacionado a la versión de PHP?

Muchas gracias desde ya.

Última edición por slaterone; 25/04/2015 a las 06:11
  #2 (permalink)  
Antiguo 25/04/2015, 13:40
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Variable $_POST llega siempre vacía

Depende de qué versión de PHP tengas en cada lugar, creo yo.

Pero, por otra parte, prueba simplemente volcando los datos con un echo, sin condición.
__________________
¿Te sirvió la respuesta? Deja un +1
  #3 (permalink)  
Antiguo 25/04/2015, 14:50
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Variable $_POST llega siempre vacía

Buenas,

Si, he probado haciendo un var_dump:

Código:
<?php
  var_dump($_POST);
  die();
  ...
  ...
?>
Y el array está vacío en cualquier caso. Lo he probado también en otra máquina con W7 (no recuerdo ahora la versión de PHP) y también funciona sin problemas. Me pregunto si alguna directiva del php.ini pueda estar casuando el problema.

Gracias por responder.
  #4 (permalink)  
Antiguo 25/04/2015, 14:57
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Variable $_POST llega siempre vacía

Creo que no estás haciendo el volcado correctamente.

En "processlogin.php" pon lo siguiente:

Código PHP:
Ver original
  1. <?php
  2. $user = $_POST['usuario'];
  3. $pass = $_POST['password'];
  4. ?>

Código HTML:
Ver original
  1. <p>Usuario: <?php echo $user ?></p>
  2. <p>Password: <?php echo $pass ?></p>

Y dime qué valores te devuelve.

Por otra parte, quizá el JS no esté haciendo bien su trabajo, ¿has probado con un submit en el formulario?
__________________
¿Te sirvió la respuesta? Deja un +1
  #5 (permalink)  
Antiguo 25/04/2015, 15:10
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Variable $_POST llega siempre vacía

Hola de nuevo, ya encontré el problema: se trata del valor del atributo action y el archivo .htaccess:

En el form html tenía:

<form id="formLogin" name="formLogin" action="processlogin.php" method="POST" enctype="multipart/form-data">

Mientras que el contenido del .htaccess, para el tema de las URLs amigables y demás, es:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## hide .php extension
# To externally redirect
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [L]

Al quitar la extensión en el atributo action del form:

<form id="formLogin" name="formLogin" action="processlogin" method="POST" enctype="multipart/form-data">

Ya funciona el proceso y $_POST tiene valor.

Como suele pasar, una tontería que a veces a uno se le pasa desapercibida.

Muchas gracias por las respuestas y la ayuda, marco el tema como solucionado.

Etiquetas: $_post, linux, vacio
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 12:02.