-1

OK、これが私の問題です。Facebookのコメントにコメントが投稿されたら、個々の投稿の作成者にメールを送信しようとしています(コメントが作成されたことを作成者に通知するため)。コメントボックスはK2アイテム(Joomla)にあります。

FB.event.subscribe comment.createは機能しています、alert('fired');だけで試しました。そしてそれはうまくいきます。しかし、PHPに入ると、誰かがページに入るたびに与えられた最初の電子メールに電子メールを送信し始めます。コメントが作成または追加されたときにのみメールを送信するにはどうすればよいですか?

<script>
    window.fbAsyncInit = function(){ 
        FB.Event.subscribe('comment.create', function(response){
            <?php
                if ($this->item->author->name = 'Author1'){
                    $to = "author1@mydomain.com";
                }else if ($this->item->author->name = 'author2'){
                    $to = "author2@mydomain.com";
                };
                $subject = "Test mail";
                $message = "Hello! This is a simple email message. live run";
                $from = "admin@mydomain.com";
                $headers = "From:" . $from;
                mail($to,$subject,$message,$headers);
            ?>;
        });
    };
</script>

編集外部ファイルから このリンクPHP変数をたどってください?このテーマに関する完全な解決策と、私がここで達成しようとしていたことについて。

4

1 に答える 1

0

PHPはサーバー側で実行されます。コールバックが発生するまでに、PHPはすでに実行されています(ページが要求されたとき)。

代わりに、PHPスクリプトへのコールバック内でAJAX呼び出しを行う必要があります。これにより、必要な処理がすべて実行されます。

window.fbAsyncInit = function(){ 
    FB.Event.subscribe('comment.create', function(response){
        $.post('/sendemail.php');
    });
};

残りのコードをsendemail.php

これは、jQueryを使用していることを前提としています。

注:sendemail.phpこれは、検証なしで、ユーザーが誰かのメールボックスに繰り返し要求を送信し、誰かのメールボックスからスパムを送信する可能性があることを考えると、かなり悪い考えです。セキュリティ、レート制限などを検討してください。

于 2013-02-20T19:42:02.607 に答える