亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Angular中http delete函數的問題,沒有報錯

Angular中http delete函數的問題,沒有報錯

PHP
小怪獸愛吃肉 2022-12-11 09:23:21
我正在嘗試從我的數據庫中刪除一條記錄。到目前為止,正如我在查詢字符串參數中看到的那樣,正確的 id 正在傳遞,而且我沒有收到任何錯誤。但是,該行沒有被刪除,我開始認為這只是一個語法錯誤,但我不確定。刪除-like.php<?php$id=isset($_GET['id']) ? $_GET['id'] : die('ERROR: id not found.');if($_POST) {include 'connectPDO.php';try {    $query = "DELETE FROM likes WHERE id = ?";    $stmt = $con->prepare($query);    $stmt->bindParam(1, $id);    $stmt->execute();} catch (PDOException $exception) {    die('ERROR: ' . $exception->getMessage());}}這是我調用它的服務文件。論壇服務.ts  removeLike(id: string) {    return this.http.delete(`${this.baseUrl}/remove-like.php?id=${id}`);  }然后這是我在我的組件中調用該函數的部分。主題.component.ts  clickDislike() {    this.forumService.removeLike(this.dataService.getToken() + 'topic' + this.forumService.getLikeToken()).subscribe(result => {  this.ngOnInit();    })  }
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

你永遠不會進入你的條件塊,因為在你的情況下if ($_POST)總是會返回false。實際上,您使用帶有空主體的 http DELETE 請求來調用此端點。


<?php


$id=isset($_GET['id']) ? $_GET['id'] : die('ERROR: id not found.');


include 'connectPDO.php';


try {

    $query = "DELETE FROM likes WHERE id = ?";


    $stmt = $con->prepare($query);


    $stmt->bindParam(1, $id);


    $stmt->execute();


} catch (PDOException $exception) {

    die('ERROR: ' . $exception->getMessage());

}

如果您想確保使用正確的 HTTP 動詞調用您的端點,請參考此問題,并添加:


if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {

     // Your code

}

此外,我建議您添加一種安全機制(如果情況并非如此)(例如身份驗證控制),因為刪除行的公開可用端點是一個安全問題。


查看完整回答
反對 回復 2022-12-11
  • 1 回答
  • 0 關注
  • 125 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號