通过博客上的小部件发送数据到网站


Send data to website through widget on blog

我希望创建一个小部件/插件,可以在点击时发送一个简单的变量。这个想法是,当这个小部件被添加到博客中,并被其中一个读者单击时,它会发送一条消息到我的域(例如,www.example.com),其中包含有问题的博客的url(然后可以用来增加计数或其他东西,例如)。

我对小部件/插件非常陌生,所以我不完全确定这是否可能。我不希望被代码填塞,只是在正确的方向上的几个指针将是巨大的帮助。

原谅我,我还没有尝试任何事情,因为我不确定从哪里开始。如果我需要提供更多的信息,如果我的标签不正确,或者如果我的问题不清楚,请告诉我!

大多数可分发的部件将具有以下方面:

  1. 小部件脚本(由您控制),并由最终用户包括在他们的网站。比如<script src="http://example.com/yourAwesomeScript.php"></script>, example.com是你的网站或者cdn。

  2. Widget Container(由最终用户嵌入)告诉脚本在哪里注入Widget代码。如果您的小部件不依赖于位置容器(例如:

你可以使用Javascript库,如jQuery,使你更容易在Javascript中编写代码。

我在下面有一个非常基本的小部件来订阅。我使用PHP输出Javascript,这将允许您的小部件发送动态数据。您还可以向脚本传递参数,如

http://example.com/yourAwesomeScript.php?user_key=1234564789

end-user.html

<script src="http://example.com/yourAwesomeScript.php"></script>
身体

<div id="widgetCont"></div>

yourAwesomeScript.php

<?php
if($_POST){
if($_POST['email']){
    $new_subscribed = true ; //check and add to database and return if subscribed 
    if($new_subscribed){
        echo "You have successfully subscribed";
    }else{
        echo "You are already subscribed";
    }
}
}else{
?>
   $(document).ready(function(){
        $input = $('<input/>').prop("type","text").prop("id","widget_email");
        $submit = $('<input/>').prop("type","button").prop("value","Subscribe").prop("id","submit_email");
        $('#widgetCont').html($input,$submit);
        $('#widgetCont #submit_email').click(function(){
            $.ajax({
                url : "http://example.com/yourAwesomeScript.php",
                method : "post",
                data : {email:$("#widget_email").val()},
                success :function(data){
                 alert(data);
                }
            })
        });
    });
<?php
}
?>

在PHP中,您可以使用cURL来激活另一个域的代码。您可以在cURL中设置将发送到该页面的GET或POST变量。然后可以通过$_GET$_POST数组在PHP中对它们进行操作。

cURL示例:http://php.net/manual/en/curl.examples-basic.php

你应该尝试在你的域上设置一个HTTP服务,然后创建一个小部件,对你的HTTP服务执行POST请求。

一个很好的函数是PHP中的cURL。客户端URL库

这是一个如何使用cURL的小指南卷发指南