小编Ken*_*ogt的帖子

如何在javascript/jquery中构建json字符串?

我想以编程方式构建一个json字符串.最终产品应该是这样的:

var myParamsJson = {first_name: "Bob", last_name: "Smith" };
Run Code Online (Sandbox Code Playgroud)

但是我想一次做一个参数.如果它是一个数组,我会做的事情如下:

var myParamsArray = [];
myParamsArray["first_name"] = "Bob";
myParamsArray["last_name"] = "Smith";
Run Code Online (Sandbox Code Playgroud)

我甚至不介意构建该数组然后转换为json.有任何想法吗?

javascript json

22
推荐指数
2
解决办法
5万
查看次数

Facebook SDK访问令牌和ajax

我按照Facebook SDK for PHP文档创建了两个文件,login.php和fb-callback.php,其中包含fb-callback.php中的所有查找逻辑.当我这样做,一切正常.

但是我想将查找逻辑移到get-posts.php并通过fb-callback.php中的ajax调用它.当我这样做时,我似乎无法获得访问令牌.我收到下面提到的错误,"访问令牌:错误的请求".

我已将fb-config.php和get-posts.php注册为有效的OAuth重定向URI.那么如何获得get-posts.php的正确参数呢?

以下是所有相关文件:

的login.php

<?php
require_once "config.php";

$redirectURL = 'https://' . $_SERVER[ 'SERVER_NAME' ] . '/r/fb-callback.php';
$permissions = ['email','user_photos','user_posts'];
$loginUrl = $helper->getLoginUrl($redirectURL, $permissions);
?>

<a href='<?php echo $loginUrl; ?>'>
<img src='continue-with-facebook.png'>
</a>
?>
Run Code Online (Sandbox Code Playgroud)

config.php文件

<?php
if( !session_id() ) {
    session_start();
}

require_once '/home/bitnami/vendor/autoload.php';

$fb = new Facebook\Facebook([
  'app_id' => '---',
  'app_secret' => '---',
  'default_graph_version' => 'v3.1',
  ]);

$helper = $fb->getRedirectLoginHelper();
?>
Run Code Online (Sandbox Code Playgroud)

FB-callback.php

<?php
require_once("config.php");
?>
<html>
<head>
  <script type='text/javascript' src='jquery.js'></script>
  <script>
    var $j = jQuery.noConflict();

    $j(document).ready(function …
Run Code Online (Sandbox Code Playgroud)

php ajax facebook facebook-access-token facebook-sdk-3.1

10
推荐指数
1
解决办法
450
查看次数

在Mac OS X上使用Ruby on Rails安装PostgreSQL

我安装了一切.但是当我运行"rake db:create"时,我得到以下内容:

Ken-Vogts-MacBook:sixmonths ken$ rake db:create
(in /Users/ken/sixmonths)
rake aborted!
no such file to load -- pg
Run Code Online (Sandbox Code Playgroud)

这是我的database.yml:

development:
  adapter: postgresql
  encoding: unicode
  database: sixmonths_development
  pool: 5
  username: postgres
  password: xxxxxxxx

test:
    adapter: postgresql
    encoding: unicode
    database: sixmonths_test
    pool: 5
    username: sixmonths
    password: xxxxxxxx

production:
    adapter: postgresql
    encoding: unicode
    database: sixmonths_production
    pool: 5
    username: sixmonths
    password: xxxxxxxx
Run Code Online (Sandbox Code Playgroud)

我可以在运行时看到pg已安装:gem list

我尝试在stackoverflow上的另一篇文章中用"pg"替换"postgresql",但结果如下:

Ken-Vogts-MacBook:sixmonths ken$ rake db:create
(in /Users/ken/sixmonths)
Run Code Online (Sandbox Code Playgroud)

看起来很酷,对吗?

不.接下来,我尝试"rake db:schema:dump",我得到了这个:

Ken-Vogts-MacBook:sixmonths ken$ rake db:schema:dump
(in /Users/ken/sixmonths)
rake aborted!
Please install the …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails-3

9
推荐指数
1
解决办法
7665
查看次数

一个表中有两个MySQL时间戳列

我想创建一个表,其中既有"已创建"列,另有"已更新"列."created"列将设置为insert并且永不更改.每次更新行时,"已更新"列都会更改.我不想在后续的INSERT或UPDATE语句中混淆这些列中的任何一个.那么如果我从这样的东西开始,我的CREATE TABLE语句应该是什么样的?

CREATE TABLE IF NOT EXISTS `mydb`.`mytable` (
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `updated` TIMESTAMP,
  `created` TIMESTAMP,
  `deleted` TINYINT DEFAULT 0,
  `notes` TEXT DEFAULT '',
  `description` VARCHAR(100)
) TYPE=innodb;
Run Code Online (Sandbox Code Playgroud)

我似乎无法创建一个包含两个TIMESTAMP列的表.我不关心列是TIMESTAMP还是DATETIME或者其他什么,我只是希望它们由MySQL填充而没有来自insert或update语句的明确指令.

我希望能够像这样插入:

INSERT INTO `mydb`.`mytable` (notes,description) VALUES ('some note','some description');
Run Code Online (Sandbox Code Playgroud)

和这样的更新:

UPDATE `mydb`.`mytable` SET notes=CONCAT(notes,'some more notes') WHERE id=1;
Run Code Online (Sandbox Code Playgroud)

两者都不必显式设置"已创建"列或设置(或重置)插入或更新语句中的"已更新"列.

mysql

9
推荐指数
1
解决办法
1万
查看次数

如何从php脚本执行shell命令

我想创建一个php脚本来执行shell命令并返回其输出.服务器需要私钥.当我第一次决定测试时,我创建了这个:

<?php
$command = "ls";
$output = shell_exec($command);
echo "<pre>$output</pre>";
?>
Run Code Online (Sandbox Code Playgroud)

这很好用.但当我改变$command命令时,我真的想要运行:

$command = "/etc/init.d/mycontrollerd status /etc/mycontrollerconfig";
Run Code Online (Sandbox Code Playgroud)

它给了我这个输出:

You need root privileges to run this script
Run Code Online (Sandbox Code Playgroud)

我的猜测是我需要使用sudo.当然,这需要将pem文件放在服务器上的某个位置.假设我这样做,究竟应该$command是什么?我应该使用shell_exec(),exec(),system()或其他什么东西?

php shell-exec

8
推荐指数
1
解决办法
3万
查看次数

扩展另一个的PHP类如何继承私有函数?

我试图扩展PHP类而不重写整个事情.这是一个例子:

<?
$a = new foo();
print $a->xxx();
$b = new bar();
print $b->xxx();

class foo {
  const something = 10;

  public function xxx() {
    $this->setSomething();
    return $this->something;
  }

  private function setSomething() {
    $this->something = self::something;
  }
}

class bar extends foo {

  public function xxx() {
    $this->setSomething();
    $this->something++;
    return $this->something;
  }

}
?>
Run Code Online (Sandbox Code Playgroud)

但是当我运行脚本时,我收到以下错误:

Fatal error: Call to private method foo::setSomething() from context 'bar' in test.php on line 23
Run Code Online (Sandbox Code Playgroud)

似乎bar不继承私有函数setSomething().如何在不修改foo类的情况下解决这个问题?

php inheritance class

8
推荐指数
3
解决办法
2万
查看次数

如何通过PHP访问AWS S3?

我已经使用Composer 按照此处的入门说明安装AWS SDK for PHP .我在我的html root中安装了它.我在"AmazonS3FullAccess"的唯一许可下创建了一个名为"ImageUser"的IAM用户,并捕获了它的密钥.

根据这里的说明,我创建了一个名为"凭据"的文件,如下所示:

[default]
aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY
Run Code Online (Sandbox Code Playgroud)

是的,我用适当的键替换了那些大写单词.该文件位于html根目录中隐藏的子目录".aws"中.该文件的UNIX权限为664.

我创建了这个简单的文件(在我的html根目录的一个名为"t"的子目录中称为"test.php")来测试将文件上传到S3:

<?php
// Include the AWS SDK using the Composer autoloader.
require '../vendor/autoload.php';

use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = 'testbucket';
$keyname = 'test.txt';

// Instantiate the client.
$s3 = S3Client::factory();

try {
    // Upload data.
    $result = $s3->putObject(array(
        'Bucket' => $bucket,
        'Key'    => $keyname,
        'Body'   => 'Hello, world!',
        'ACL'    => 'public-read'
    ));

    // Print the URL to the object.
    echo $result['ObjectURL'] . …
Run Code Online (Sandbox Code Playgroud)

php amazon-s3

7
推荐指数
1
解决办法
2648
查看次数

backbone.js应用程序范围的功能,不依赖于特定的控制器/模型

我正在使用骨干样板,你可以在这里找到它.

我想知道如何添加全局功能,没有明确地绑定到任何特定的集合,模型,视图等.一个例子是'注销'功能,可能如下所示:

var logout = function(){
  // Clear Favorites
  // Handle asynchronous logging (all in-app logs are sent to the server at logout)
  // Redirect to the login page
  // Do other cleanup
}
Run Code Online (Sandbox Code Playgroud)

基本上,这将处理大量的模型/收藏,包括Favorites,Events,Logs,Users,和应用程序Router

如果你查看主干 - 样板文件中的main.js文件,我一直在顶部添加这些函数(第13行),如下所示:

function(namespace, $, Backbone, Example){

  // BEGIN MY APP LOGIC
  namespace.app.logout = function(){
    // Do logout here
  };
  // END MY APP LOGIC

  var Router = Backbone.Router.extend({
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但应用程序逻辑很快就会失去控制.我的问题是,组织这段代码的更好方法是什么?如果我有一个Utils模块并加载了Utils模块,它会更有意义吗? …

javascript jquery backbone.js

5
推荐指数
1
解决办法
3639
查看次数

我刚刚显示的javascript变量怎么能错误地输出为undefined?

我有一些简单的javascript代码,如下所示:

var divLink = $(this).attr("href");
alert(divLink);
if ($(divlink).is(":visible")) $(divLink).hide("blind", { direction: "vertical" }, 1000);
Run Code Online (Sandbox Code Playgroud)

它在第3行抛出此错误:

Uncaught ReferenceError: divlink is not defined
Run Code Online (Sandbox Code Playgroud)

我放入第二行只是为了看看变量divLink中的内容.它返回:

The page at mysite.com says:

#categories_settings
Run Code Online (Sandbox Code Playgroud)

一旦我在对话框中单击"确定",它就会抛出错误.怎么会这样?

javascript jquery

0
推荐指数
1
解决办法
33
查看次数