メールの送信を処理するスクリプトがあります。送信する電子メールは数千に及ぶ可能性があります。「あなたのメッセージが送信されています。」という行に沿って何かを言うページをユーザーに表示したいのですが、ユーザーにメッセージを送信させたくないので、そのページに実際のメッセージの送信を行わせたくありません。スクリプトが終了するまで空白のページが表示されます。また、ユーザーがスクリプトの終了を待つ必要はありません。
IDのリストを別のPHPページ(run.phpと呼びます)に渡し、ユーザーが実際にアクセスすることなく実行できるようにしたいと思います。そのため、IDをページに渡して実行を開始しますが、現在のページの読み込みを終了して、「メッセージが送信されています」というメッセージが表示されます。
<?php
/* SESSION DATA HERE */
executeMailSend($ids);
?>
<html>
<head>
....
</head>
<body>
Your messages are being sent.
</body>
</html>
私はajaxを使ってこのようなことをすることができると思いますが、これをクライアント側のコーディングに依存させたくありません。
また、可能であれば、スクリプトをバックグラウンドで実行して、スクリプトを開始するセッションのセッションデータを保持する必要があります。このデータを個別の変数として渡す必要はありません。
また、exec()やsystem()のようなものは使いたくありません。
何か案は?