我对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']