2017-08-26 28 views
0

私はいくつかのPHPメッセージの送信者と受信者のページを作成しようとしています。 「Admin.php」ページから、管理者はWebサイト訪問者にメッセージを送信できます。そして、 "receiver.php"ページは訪問者の受信箱です。 Admin.php:PHPサーバー送信イベント - メッセージ送信者と受信トレイ

<form method="post" action="sender.php"> 
<input type="text" name="message"> 
<input type="submit" value="Submit"> 
</form> 

Sender.php:

<?php 
header('Content-Type: text/event-stream'); 
header('Cache-Control: no-cache'); 

$message = $POST["message"]; 
echo "data: {$message}\n\n"; 
flush(); 
?> 

Receiver.php:ここ はコードである

<!DOCTYPE html> 
<html> 
<body> 

<h1>Getting server updates</h1> 
<div id="result"></div> 

<script> 
if(typeof(EventSource) !== "undefined") { 
    var source = new EventSource("sender.php"); 
    source.onmessage = function(event) { 
     document.getElementById("result").innerHTML += event.data + "<br>"; 
    }; 
} else { 
    document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events..."; 
} 
</script> 

</body> 
</html> 

なぜ動作しないのは?

+1

"stack-overflow"タグの上にマウスカーソルを置くと、次のように表示されます。 "このタグを使用してStack OverflowのWebサイトを参照しないでください。サイトに関する質問がある場合はhttp:// meta。むしろこのタグをエラーに関連して使用してください - スタックオーバーフロー - コールスタックで多すぎるメモリが使用された場合に発生します。 スタックオーバーフローの問題(https://en.wikipedia.org/wiki/Stack_overflow)が記述されていないため、タグを削除して今すぐもう一度削除します:-) –

答えて

1

問題は、「sender.php」を使用して2つのことを実行しようとしていることです。

管理フォームから、ある種のデータベースにメッセージを保存する1つのPHPスクリプトに提出する必要があります。

"receiver.php"では、別のPHPスクリプトに接続する必要があります。そのスクリプトの仕事は、新しいエントリのためにそのデータベースをポーリングし続けることです。そして、それを見るとクライアントに送信する必要があります。この後者のPHPスクリプトは無限ループで動作します。

+0

MySQLデータベースなしでこれを行うことはできますか? – Jishnuraj

+0

私は、fwriteとテキストファイルを使用していますか? – Jishnuraj

+0

コードを入力してください。 – Jishnuraj

関連する問題