FB.event.subscribe comment.create从用户如果不采取行动作用[复制](

2019-08-17 01:53发布

这个问题已经在这里有一个答案:

  • 从JavaScript调用PHP方法[关闭] 2个回答

好了,这里是我的问题。 我试图获取发送到一次评论了Facebook的意见(以通知的意见已经作出的作者)是由个别文章的作者的电子邮件。 该评论框是在K2项目(在的Joomla)。

FB.event.subscribe comment.create是工作,我只用警报(“解雇”)试了一下; 并且工作正常。 但是,当我进入它只是开始发送电子邮件给定的第一封电子邮件的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变量? 什么关于这个问题的完整解决方案,我是想在这里完成。

Answer 1:

PHP执行服务器端 。 由回调被触发时,PHP已经执行(请求页面时)。

相反,你需要让你的回调PHP脚本,将做什么,那就是你需要做的内部的AJAX调用:

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

把其余的代码在sendemail.php

这是假设你正在使用jQuery。

注:这是考虑到一个非常糟糕的主意,没有任何验证,用户只需发送一再要求sendemail.php和垃圾邮件的挫折感出某人的信箱。 考虑安全性,速率限制等。



文章来源: FB.event.subscribe comment.create acting without action from user [duplicate]