-1

好的,这是我的问题。一旦在 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 回答