[英]getParam retrieving null instead of user data
我正在嘗試使用getParam將新用戶注冊發布到數據,我使用RestClient來測試每次是否檢索到值都是null:
這是我放入正文中的json數據,我確實基於application / json添加了內容類型標頭:
{
"email" : "test@test.com",
"username" : "test",
"password" : "123",
}
這是發布用戶的代碼(請注意,var_dump($ email),我用它只是為了檢查$ email是否包含值,在修復后將被刪除):
//add new user
$app->post('/user/add', function(Request $request, Response $response){
$email = $request->getParam('email');
$username = $request->getParam('username');
$password = $request->getParam('password');
$sql = "INSERT INTO users (email, username, password) VALUES (?, ?, ?)";
var_dump($email);
die ("end");
$conn = new Database();
$conn = $conn->createConnection();
$stmt = $conn->prepare($sql);
$stmt->bind_param('sss', $email, $username, $password);
$check = $stmt->execute();
$error = $stmt->error;
if ($check){
echo 'Added Successful';
}
if ($error != ''){
echo $error;
}
});
我通過/ calendar / add發布約會的操作相同,並且可以完美地工作,機器人發布方法是相同的,但是為什么發布用戶沒有獲得價值?
getParam()僅用於查詢參數,例如:yoururl.com?param1=value1
你必須用
$body = $request->getParsedBody();
echo $body['email'];
代替
DZDomi的答案不太准確,因為Request
類的getParam()
確實在內部調用getParsedBody()
方法。 它應與POST正文中的查詢字符串或數據一起使用。
如果在發送POST請求時收到NULL,請確保將客戶端設置為使用application/x-www-form-urlencoded
或multipart/form-data
。
我不了解RestClient,但是如果使用Postman ,則可以在Postman UI的“正文”選項卡上定義此信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.