Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HTML Form POST is null

Tags:

html

post

forms

php

so I'm trying to simply send one field of data from a form to a php file. Below is my form in a table. I also posted my php code. It keeps returning that $username is null. Ive tried post/get and it doesn't seem to matter.

HTML:

<form action='http://k9minecraft.tk/scripts/adduser.php' method='POST'>
    <table>
        <tr>
            <td>First Name:</td>
            <td><input type='text' id='first'></td>
        </tr>
        <tr>
            <td>Last Name:</td>
            <td><input type='text' id='last'></td>
        </tr>
        <tr>
            <td>Email:</td>
            <td><input type='text' id='email'></td>
        </tr>
        <tr>
            <td>Minecraft Name:</td>
            <td><input type='text' name='user'></td>
        </tr>
        <tr>
            <td><input type='submit' value='Send'></td>
            <td><input type='reset' value='Reset'></td>
        </tr>
    </table>
</form>

PHP:

<?php
print_r($_POST);
if (isset($_POST['user'])) {
    $username = $_POST['user'];
    echo $username;
    echo 'username is not null';
}
?>
like image 677
Kyle Avatar asked Jan 30 '14 07:01

Kyle


3 Answers

The issue is that all of your inputs have id but not name. The id are used by JavaScript. The name are used for sending form data.

Change it to be like this:

<form action='http://k9minecraft.tk/scripts/adduser.php' method='POST'>
  <table>
    <tr>
      <td>First Name:</td>
      <td><input type='text' name='first' id='first'></td>
    </tr>
    <tr>
      <td>Last Name:</td>
      <td><input type='text' name='last' id='last'></td>
    </tr>
    <tr>
      <td>Email:</td>
      <td><input type='text' name='email' id='email'></td>
    </tr>
    <tr>
      <td>Minecraft Name:</td>
      <td><input type='text' name='user'></td>
    </tr>
    <tr>
      <td><input type='submit' name='Send' value='Send'></td>
      <td><input type='reset' name='Rest' value='Reset'></td>
    </tr>
  </table>
</form>
like image 190
virmaior Avatar answered Nov 03 '22 22:11

virmaior


This code is working. You need to add some condition, that checks, if $username is posted or not.

Something like that:

if(count($_POST)){
    $username ='';
    if(isset($_POST['user'])){
        $username = $_POST['user'];
    if ($username==null || !$username)
         echo 'username is null';
     echo strlen($username);
     echo $username;
   }

 }
like image 2
Jason W Avatar answered Nov 03 '22 23:11

Jason W


Try this to find out if the field is posted by the formular:

isset($_POST['user'])

I think $username==null will be true even if $username really is equal to an empty string.

like image 2
Chris Avatar answered Nov 03 '22 21:11

Chris