Emanuel Vintilă
Emanuel Vintilă

Reputation: 1939

PHP $_POST returns null values

This is my html code:

<form style="width: 20%; margin: auto;" action="subscribe.php" method="post" id="subscribeToNews">
<fieldset>
<legend>Subscribe:</legend>
<label for="subName">First Name:</label><br /><input type="text" id="subName" name="subName" /><br />
<label for="subEmail">Email:</label><br /><input type="text" id="subEmail" name="subEmail"   /><br />
<input style="width: inherit;" type="submit" value="Subscribe" />
</fieldset>
</form>

This is the subscribe.php file:

<?php
$con = mysqli_connect('95.76.197.98','root','','accounts');
print_r($_POST);
if (isset($_POST["subName"]) && isset($_POST["subEmail"])){
$subUser = $_POST["subName"];
$subEmail = $_POST["subEmail"];
echo "$subUser"."<br />"."$subEmail";
}
?>

I have really tried a lot of things out there on the Internet and nothing seems to work for me. Any ideas?
Also looks like the get method works for this...

Upvotes: 1

Views: 6493

Answers (2)

SuperDJ
SuperDJ

Reputation: 7661

This should work:

<form style="width: 20%; margin: auto;" action="subscribe.php" method="post" id="subscribeToNews">
    <fieldset>
        <legend>Subscribe:</legend>
        <label for="subName">First Name:</label><br /><input type="text" id="subName" name="subName" /><br />
        <label for="subEmail">Email:</label><br /><input type="text" id="subEmail" name="subEmail"   /><br />
        <input style="width: inherit;" type="submit" value="Subscribe" />
    </fieldset>
</form>

<?php
$con = mysqli_connect('95.76.197.98','root','','accounts');

if($_POST) {
    $subName = mysqli_real_escape_string($con, strip_tags($_POST['subName']));
    $subEmail = mysqli_real_escape_string($con, strip_tags($_POST['subEmail']));

    if(isset($subName) && !empty($subName) && isset($subEmail) && !empty($subMail)) {
        echo 'Name: '.$subName.'<br> Email: '.$subEmail;
    }
}
?>

Upvotes: 0

wake-up-neo
wake-up-neo

Reputation: 814

Could by related to your nginx configuration.

Try:

$post = file_get_contents("php://input");

Upvotes: 3

Related Questions