Title: Obtener datos con POST en una misma pagina php
Tags: php;html;html5
Question: Buenas, quisiera obtener datos en una misma pagina php, en un login, el problema es que cuando ingreso los valores en mi login, los guardo por POST, pero parece que siempre me guarda NULL.



```.boxlogin{
    border-radius:4px;
    box-shadow: 2px 2px #d6d6d6;
    margin: 75px auto;
    width: 320px;
    -webki-border-radius:4px;
    -moz-border-radius:4px;
   }
   .btn{
    margin-top: 14px;
   } ```
```<html lang="en"&gt;
<head&gt;
 <meta charser="UTF-8"&gt;
 
 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"&gt;
 <meta http-equiv="x-ua-compatible" content="ie=edge"&gt;
 <title&gt;Document</title&gt;
  
 
 <link rel="stylesheet" href="css/bootstrap.min.css"&gt;
 <link rel="stylesheet" href="css/font-awesome.min.css"&gt;
 <link rel="stylesheet" href="css/estilos.css"&gt;
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"&gt; 
 <script src="js/jquery.js"&gt;</script&gt;
 <script src="~/js/bootstrap.min.js"&gt;</script&gt;
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"&gt;</script&gt;
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"&gt;</script&gt;
 

</head&gt;
<body&gt;
 <header&gt;
</header&gt;
 <div class="jumbotron boxlogin"&gt;
   
  <form method="post" name="flogin" id="flogin" action=""  &gt;
  <label&gt;Usuario:</label&gt;
  <input type="text" name="username"     class="form-control"&gt;
  <label&gt;Contraseña:</label&gt;
  <input type="password" name="password"    class="form-control"&gt;

  <button name="btnClickI" type="button" class="btn btn-success" data-toggle="modal" data-target="#ingreso"&gt;Ingresar</button&gt; 
  <a href="registro.php"&gt;<button value="btnClickR" type="button" class="btn btn-info"&gt;Registrar</button&gt;</a&gt;
    
    
   <?php 
    
   if(!isset($_POST['btnClickI'])){
     
    $username=isset($_POST['username'])?var_dump($_POST['username']):NULL;
    $password=isset($_POST['password'])?var_dump($_POST['password']):NULL;
    if( $username==NULL  or  $password==NULL   ) {  
           echo '<div id="ingreso" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"&gt;
       <div class="modal-diolag"&gt;
        <div class="modal-content"&gt;
         <div class="modal-header"&gt;
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true"&gt;&amp;times;</button&gt;
         </div&gt;
         <div class="modal-body"&gt;
         <h3&gt;Por favor llenar todo los campos!</h3&gt;          
         </div&gt;
        </div&gt;
       </div&gt;
            </div&gt;';
     
    }else{
     echo '<div id="ingreso" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"&gt;
       <div class="modal-diolag"&gt;
        <div class="modal-content"&gt;
         <div class="modal-header"&gt;
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true"&gt;&amp;times;</button&gt;
         </div&gt;
         <div class="modal-body"&gt;
          <h3&gt;Enviando datos!...</h3&gt;          
         </div&gt;
        </div&gt;
       </div&gt;
            </div&gt;';
    }     
   } 
   ?&gt;
  </form&gt;
 </div&gt;

 <script type="http://code.jquery.com/jquery-latest.js"&gt;</script&gt;
 <script src="js/bootstrap.min.js"&gt;</script&gt;
</body&gt;
</html&gt;```




Comment: Vas a tener que modificar el código. Puedes enviar el formulario por AJAX, o puedes enviarlo directamente contra si mismo, en ambos casos tendrás que modificar el código.El form necesita un action, y el botón de enviar tiene que ser de tipo submit, ya que si no no ejecuta el evento de envío. Si modificas el action del form y el tipo de botón, verás que te enviará el formulario y post quedará relleno, pero no se ejecutará el modal con la respuesta, puesto que dicho modal se ejecuta en el click. Deberías modificarlo para que el evento del modal se ejecute si hay post, no al hacer click.

Comment: Podrías indicarnos qué te imprime `print_r($_POST);`? Ponlo justo antes de `if(!isset($_POST['btnClickI'])){` y envía el formulario.

Comment: Solo cámbiale en el boton 'value' por 'name'


Here is another answer: Intenta cambiar tu condición de entrada

```if(!isset($_POST['btnClickI']))
```

Ya que va a pasar cuando no tenga valor o no se halla declarado el $_POST['btnClickI'] es decir cuando no se ha enviado nada a traves del formulario, por tanto todo esfuerzo por obtener los campos del mismo después de esta condición van a ser en valde, dejala en positivo

```if(isset($_POST['btnClickI']))
```

Y ya luego me dices como te fue. Saludos


{'source': 'StackExchangeDataset', 'subset': 'es.stackoverflow.com', 'metadata': {'AnswerCount': 1, 'CommentCount': 3, 'ContentLicense': 'CC BY-SA 3.0', 'CreationDate': '2017:00:10/25/17', 'FavoriteCount': None, 'PostTypeId': 1, 'Tags': '<php><html><html5>', 'Title': 'Obtener datos con POST en una misma pagina php', 'ViewCount': 9028, 'id': 112120, 'user_AboutMe': None, 'user_AccountId': 12002610.0, 'user_DisplayName': 'Luis Fernando Vargas', 'user_Reputation': 21.0, 'user_Views': 4.0, 'user_id': 63891.0}}