【问题标题】:Send data to website through widget on blog通过博客上的小部件将数据发送到网站
【发布时间】:2014-07-21 15:39:49
【问题描述】:

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

我对小部件/插件非常陌生,所以我不完全确定这是否可能。我不希望被代码讥讽,只要向正确的方向提出一些指示就会有巨大的帮助。

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

【问题讨论】:

  • 请将 www.example.com 用于任何 .. 示例目的。见en.wikipedia.org/wiki/Example.com
  • 我觉得说“例如,example.com”会很奇怪:P 但是好吧,完成了!谢谢!

标签: php plugins widget wordpress


【解决方案1】:

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

  1. 小部件脚本(由您控制​​)并由最终用户包含在他们的站点中。 <script src="http://example.com/yourAwesomeScript.php"></script> 之类的东西,其中 example.com 是您的网站或 CDN。

  2. 小部件容器(由最终用户嵌入)告诉脚本在哪里注入小部件代码。如果您的小部件不依赖于位置容器(例如固定/绝对元素),则可以跳过此操作。

您可以使用 jQuery 等 Javascript 库来让您的生活更轻松地用 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
}
?>

我希望这会有所帮助。

【讨论】:

  • 我会研究这个并尝试编写自己的小部件!非常感谢,这是完美的指导:)
  • 我有一个小的后续问题,(不确定我是否需要为此提出另一个问题,所以如果需要请告诉我)。在您的示例中,我需要将代码放在哪里来检查该人是否已经订阅?在yourAwesomeScript.php ?
  • 理想情况下,您需要 2 个单独的脚本,一个用于 JS 和单独的脚本来接收和处理数据。但是你也可以像我上面展示的那样在一个脚本中完成。
【解决方案2】:

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

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

【讨论】:

  • 感谢您的快速回复!我熟悉一些基本的 cURL,但我会做更多的阅读。但至于我给用户的小部件本身,也是用php写的吗?
【解决方案3】:

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

一个很好的函数是 PHP 中的 cURLClient URL Library

这里是如何使用cURL的小指南 cURL guide

【讨论】:

    猜你喜欢
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多