送信された実際の POST をキャンセルする方法はありますか?
いいえ、サーバーからではありません。クライアントからのみ。リクエストに応答しないことを選択できますが、「途中で」キャンセルすることは、実際に行うべきではない過度に複雑なアクロバットなしではサーバーからは不可能です。
サーバー側で、投稿が受信されたことを実際に検出する方法はありますか?
コードは、リクエストを受信した場合にのみ実行されます。したがって、デフォルトでは、コードが実行されている場合、リクエストが受信されます。PHP が提供する任意のログ メカニズムを使用して、このイベントをログに記録できます。または、Web サーバーのログを確認してください。
ポストプロシージャ全体がサーバー側で始まりと終わりを持っていると想像していますか?
すべてはクライアントから始まり、クライアントで終わります。クライアントがリソースを要求します。クライアントがいない場合、コードは親指をいじってアイドル状態になっています。サーバーは、クライアントからリクエストを受信すると、リクエスト URL をリソースにマップし、クライアントにレスポンスを返す必要があります。
すべての Web リクエストは、これとまったく同じ方法で行われます。それらはクライアント側から開始されます。クライアントが応答を受信し、接続が閉じられると、それらはすべて終了します。その後、新しいリクエストのためにサイクル全体が再び開始されます。
投稿がどこにも行かないことを確実に知る方法はありますか。失敗して終わり?
コードが呼び出されなかった場合。次に、サーバー側でエラーが発生しました (おそらく設定ミス)。覚えておくべき重要なことは、クライアントは常に応答を受け取るということです。何が起こったのかを理解するのはあなた次第です。
これを行う最善の方法は、アプリケーションでスマート ロギングを行うことです。または、通常はサーバー ログを監視します (リクエストが追跡される場所)。
投稿が「どこにもない」場合は、対応するログ エントリで通知されます。ログ エントリにエラーが表示されず、予期したアクション (たとえば、データベース レコードが作成された) が発生していない場合は、コードに問題があったことを意味します。
リクエストが成功した場合にのみレコードが作成されるようにする必要がある場合は、データベースがサポートしている場合 はトランザクションを使用してください。