PHP 回显空的 post 数组,即使输入参数也是如此



我对php很陌生,正在尝试为我的移动后端创建一个REST API。我正在使用 aws EC2,并在我的 EC2 实例上存储了以下 php 文件。但无论如何,这是代码:

<?php include "FILE WITH DB INFO"; ?>
<?php
$connection = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD);
if (mysqli_connect_errno()) echo "Failed to connect to MySQL" . mysqli_connect_error();
$database = mysqli_select_db($connection, DB_DATABASE);
$user_username = $_POST['username'];
$user_name = $_POST['name'];
$user_email = $_POST['email'];
echo "BEFORE --- ";
var_dump($_POST);
echo "AFTER";
if (strlen($user_username) || strlen($user_name) || strlen($user_email)) {
AddUser($connection, $user_username, $user_name, $user_email);
}

function AddUser($connection, $username, $name, $email) {
$u = mysqli_real_escape_string($connection, $username);
$n = mysqli_real_escape_string($connection, $name);
$e = mysqli_real_escape_string($connection, $email);
$query = "INSERT INTO 'users' ('username', 'name', 'email') VALUES ('$u', '$n', '$e');";
if(!mysqli_query($connection, $query)) echo("ERROR ADDING USER DATA");
}
function VerifyUsersTable($connection, $dbName) {
if(!TableExists("users", $connection, $dbName))
{
$query = "CREATE TABLE 'users' (
'name' varchar(255),
'username' varchar(255),
'email' varchar(255),
PRIMARY KEY ('username')
)";
if(!mysqli_query($connection, $query)) echo("ERROR CREATING TABLE");
}
}
echo "MADE IT";
?>

我的问题是var_dump($_POST);返回一个空数组,如下所示:array(0) { }.即使我像这样传递给它三个参数,也会发生这种情况: 参数:?username=TestUser&name=TestName&email=TestEmail

使用的实际请求:http://my_ec2_instance/Test.php?username=TestUser&name=TestName&email=TestEmail

我做错了什么?

编辑:邮递员屏幕的图片 邮递员屏幕

此请求:

http://my_ec2_instance/Test.php?username=TestUser&name=TestName&email=TestEmail

是一个GET请求,而不是POST

通过以下方式访问它:$_GET['name']

你应该使用 $_GET[] 。要打印所有 _GET 美元的可移动量,请尝试:

print_r($_GET);

我更喜欢使用$_REQUEST。 只需查看此手册。

并像它一样访问,

$_REQUEST['username'], $_REQUEST['name'], $_REQUEST['email']

最新更新