7

exit または die を呼び出すことで PHP のスクリプトを中止できることを知っています。ただし、スクリプトの実行を停止するだけでなく、特定の要求に対する応答を送信することさえしたくありません (クライアント側のタイムアウトが発生します)。

誰かがこれを行う方法を教えてくれたら、本当に感謝しています。ありがとう!

編集: 申し訳ありませんが、なぜ私がこれを行っているのかについてより具体的には言えませんが、プロジェクトの性質上、できません。私が言うことは、私はボットを扱っているということです。

4

4 に答える 4

3

クライアント側のタイムアウトとは、ajax リクエストを行ったが、サーバーの応答に時間がかかりすぎることを意味します。本当にこれを達成したい場合は、大きな sleep() ステートメントを配置して、ajax ページが応答せずにタイムアウトになるようにする方法があると思います。しかし、これがどのように行う方法ではないかを十分に強調することはできません。実際、将来の災害を招きます.

理想的には、空白、「0」、「NULL」などの特定の応答をクライアントに送り返し、クライアント側のコードでその応答を無応答として処理する必要があります。

ボットなどのクライアント側のコードを制御できない場合は、Mark Ba​​ker のコメントを 2 番目にして、444 を送信するか、おかしいと感じている場合は 418 応答を送信します :)

この投稿では、PHP を使用して HTTP 応答コードを送信する方法について説明します。

于 2013-08-14T15:02:35.353 に答える
2

クライアント側のタイムアウト? おそらく、ユーザーのセッションを終了して、自分またはスクリプトのsession_destroy()前に簡単に使用できるようにしたいでしょう。dieexit

また、通知でユーザーをリダイレクトする代わりに、友好的ではないスクリプトの実行を終了しているのは奇妙です。必要に応じて、ユーザーを何らかのページにリダイレクトするために使用できます。header()これにより、ユーザーが何をしたか、またはユーザーが拒否/リダイレクトされた理由についての通知が表示される場合があります。

于 2013-08-14T14:58:02.403 に答える
-1

問題は、PHP が実行されると、常に応答が生成されることです...さらにecho ''は送り返されます。

これを行う最善の方法は、スクリプトをクラッシュさせることだと思います...

次のような$pdo = new PDO('unexisting_server');ことをしてください: try catch ブロックなし

于 2013-08-14T15:47:59.303 に答える