小编Mat*_*ijs的帖子

osx 10.10 Curl POST到HTTPS url会出现SSLRead()错误

我刚刚升级到OSX 10.10 Yosemite和我升级后我不能再将Curl POST发送到SSL网址了.

我第一次使用wordpress的wp_remote_request调用,并尝试在php中使用curl.两者(如预期)给出相同的错误消息:

错误号码:56

错误字符串:SSLRead()返回错误-9806

注意:当我将POST卷曲到HTTP时,它可以正常工作.我估计它是PHP.ini或我的apache中的设置(升级后我丢失了原来的HTTPD.conf文件...).

谁能帮我吗?

php apache macos curl osx-yosemite

72
推荐指数
2
解决办法
4万
查看次数

以编程方式使用line_item创建Wo​​ocommerce订单

我需要以编程方式创建一个Woocommerce订单,但是使用'旧'Woocommerce使这个程序非常脏.

我必须使用许多update_post_meta调用手动插入所有类型的数据库记录.

寻找更好的解决方案.

php wordpress orders woocommerce

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

使用Highcharts在x轴上显示小时和分钟

我想在区域图表中输出以下数据(时间,电池电量):

data: [
    [08.15, 14.8],
    [08.20, 13.9],
    [08.25, 12.8],
    [08.30, 11.8],
    [08.35, 13.9],
    [08.40, 14.1],
    [08.45, 13.9],
    [08.50, 14],
    [08.55, 14],
    [09.00, 14.1],
    [09.05, 14.4]
]
Run Code Online (Sandbox Code Playgroud)

x轴应该从上午00.00 AM 00.00 PM开始,一整天.

不幸的是,当我查看API时,我不明白使用哪些选项.我现在得到的是x轴,从8.00到8.55,8.60,8.65~9.00.所以它使用十进制系统而不是分钟系统.

如何配置该线路应包含24小时60分钟?

使用当前数据,图表将是空的,仅在早上8点到9点之间有点.

我希望有人可以帮助我.

谢谢,

Mattijs

highcharts

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

Curl导致SSL:无法获得本地颁发者证书

按照这个答案步骤在Mac OS Yosemite上安装Homebrew PHP 5.5之后,我发现我可以连接到外部SSL主机,这提示我'错误号:56错误字符串:SSLRead()返回错误-9806'之前.这个问题已经解决.

但现在,在我的日常工作中,我遇到了另一个HOST:Canvas API的另一个SSL问题.

在终端上运行以下Curl(使用OSX本机卷曲)

curl -v -H "Accept: application/json" -H "Content-type: application/json" -X GET \
  -d '{"userid": "mohit", "password":"password"}' https://canvas.instructure.com/api/v1/accounts
Run Code Online (Sandbox Code Playgroud)

工作正常,但通过PHP我收到SSL证书问题:无法获得本地颁发者证书.

所以我现在修复了我在PHP Curling中使用OpenSSL的原始问题,但是我遇到了这个新问题.

我确实尝试将一个PEM文件添加到我的php.ini,curl.cainfo = "/usr/local/cacert.pem"但这引发了另一个错误

error setting certificate verify locations: CAfile: /usr/local/cacert.pem CApath: none.
Run Code Online (Sandbox Code Playgroud)

我有点不解.我需要让Brew PHP Curl版本适用于两个API.现在那个不工作的人正在工作,但另一个工作的人却没有.(抛出无法获得本地发行人的证书消息).任何智慧都会受到赞赏.

编辑:卷曲输出来自php -i:

cURL support => enabled
cURL Information => 7.38.0
Age => 3
Features
AsynchDNS => No
CharConv => No
Debug => No
GSS-Negotiate => No
IDN => No
IPv6 => …
Run Code Online (Sandbox Code Playgroud)

php macos ssl curl

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

store.select subscribe 中的更改检测需要 markForCheck。为什么?

我的应用程序组件正在订阅商店选择。我设置ChangeDetectionStrategyOnPush. 我一直在阅读有关这是如何工作的;需要更新对象引用才能触发更改。然而,当您使用异步管道时,Angular 会期待新的可观察更改并为您执行 MarkForCheck。MarkForCheck那么,当触发订阅并设置channels$新的可观察通道数组时,为什么我的代码不渲染通道(除非我调用)。

@Component({
  selector: 'podcast-search',
  changeDetection: ChangeDetectionStrategy.OnPush, // turn this off if you want everything handled by NGRX. No watches. NgModel wont work
  template: `
    <h1>Podcasts Search</h1>
    <div>
      <input name="searchValue" type="text" [(ngModel)]="searchValue" ><button type="submit" (click)="doSearch()">Search</button>
    </div>
    <hr>
    <div *ngIf="showChannels">

      <h2>Found the following channels</h2>
      <div *ngFor="let channel of channels$ | async" (click)="loadChannel( channel )">{{channel.trackName}}</div>
    </div>
  `,
})

export class PodcastSearchComponent implements OnInit {
  channels$: Observable<Channel[]>;
  searchValue: string;
  showChannels = false;
  test: …
Run Code Online (Sandbox Code Playgroud)

ngrx angular angular-changedetection

6
推荐指数
1
解决办法
4692
查看次数

NgRX 下载媒体文件和调度进度的效果直到完成动作被调度

我正在我的 Podcast 项目中学习 NGRX 和 RXJS。

我当前的问题是:如何根据我的下载操作在@effect 中调用进度操作。

效果如下所示并且有效:

@Effect()
downloadEpisodes$ = this.actions$.ofType( episodeActions.DOWNLOAD_EPISODE )
.pipe(
  map( ( action: episodeActions.DownloadEpisodes ) => action.payload ),
  switchMap( ( episode ) => {
    return this.episodesService
      .download( episode ) // -> download the media file as blobl
      .pipe(
          map( event => this.episodesService.getHttpProgress( event ) ), // => report download progress
          tap( message => {
            console.log( message );

          } ),
          // switchMap( response => new episodeActions.DownloadProgressEpisodes( response ) // => doesn't work cause its not …
Run Code Online (Sandbox Code Playgroud)

ngrx ngrx-effects angular

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

如何正确地将返回类型添加到 aws-sdk DynamoDb Send 命令

当我使用新的 v3 aws-sdk 执行 DynamoDB Get 时,我试图将泛型类型重新作为我的 OutputType 的一部分。

我的函数如下所示:

public async getItem<T>(data: GetItemCommandInput) {
  const command = new GetItemCommand({
    ...data
  });
  return await this.dbClient.send<GetItemCommand, T>(command);
}
Run Code Online (Sandbox Code Playgroud)

Typescript 不满意将 T 放入 Send 调用中。看看打字稿的定义,它非常混乱,我不明白他们在做什么。第一个 TypeSend期望的类型是ClientInput,第二个类型是ClientOutput。看看这个定义,ClientOutput我的下巴都张开了:

ClientOutput extends MetadataBearer, ResolvedClientConfiguration extends SmithyResolvedConfiguration<HandlerOptions>> implements IClient<ClientInput, ClientOutput, ResolvedClientConfiguration>
Run Code Online (Sandbox Code Playgroud)

....好吧,他们失去了我。

通常我会期望类似的东西:

 await this.dbClient.send<GetItemCommandInput, T>(command);
or 
return await this.dbClient.send<GetItemCommandInput, GetItemCommandOutput<LegalAccount>>(command);
Run Code Online (Sandbox Code Playgroud)

GetItemCommandOutput不允许通用。

查看源代码,我看到:

export interface GetItemOutput {
    /**
     * <p>A map of attribute names to <code>AttributeValue</code> objects, …
Run Code Online (Sandbox Code Playgroud)

amazon-dynamodb typescript aws-sdk

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

Angular UI-Router重定向登录用户远离登录路由

我正在使用ui-router开展Angular + Meteor项目.我的问题是,当人们登录并手动转到/login路线时,我想将它们直接重定向到主页.

我不想在控制器中执行此操作,而是直接在路径中执行此操作.我尝试了onEnter函数,但是手头上没有$ meteor依赖项来查看用户是否已登录.所以我得到了resolve(https://github.com/angular-ui/ui-router/wiki#解决).

有了这个,我创造了一个有效的解决方案,但是感觉有点像黑客,我会喜欢一些关于如何删除hacky部分的反馈或建议.

路线代码(在coffeescript中):

.state( 'public.login',
    url: '/login'
    views:
      "container@public":
        templateUrl: 'client/views/session/login.html'
        controller: 'SessionCtrl'
    resolve:
      'currentUser': [ '$meteor', '$state', ( $meteor, $state )->
        $meteor.waitForUser().then( ( user )->
          if user
            $state.go( 'private.home' )
        , ( error ) ->
          console.log("error", error)
        )
        return
      ]
  )
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,我不会将承诺作为resolve函数的返回传递,而是自己检查承诺,如果用户已登录,我会将状态更改回Home.

这有效,但感觉就像我正在破解解析功能.

我不想在示例8.5 @ http://angular-meteor.com/tutorials/angular1/user-accounts-authentication-and-permissions中添加一个"stateChangeError"的监听器.如果解决承诺是假的,那么他们就会捕获错误,在我的情况下,我会做相反的事情并且只想在promise为真时重新定位.

有什么建议?

***更新****根据Nikhil的建议添加了此解决方案.谢谢你!

angular.module( 'myApp' ).run(
  ( $rootScope, $location, $state ) ->
     $rootScope.$on( '$stateChangeStart', ( event, toState, toParams, fromState, fromParams ) …
Run Code Online (Sandbox Code Playgroud)

angularjs meteor angular-ui-router

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

使用RegEx for Coldfusion在<script> </ script>标记之间查找文本,包括换行符

我试图从我通过CFHTTP请求收到的HTML内容中提取javascript代码.

我有这个简单的正则表达式,只要标记之间的代码中没有换行符就可以捕获所有内容.

var result=REMatch("<script[^>]*>(.*?)</script>",html);
Run Code Online (Sandbox Code Playgroud)

这将抓住:

<script>testtesttest</script<
Run Code Online (Sandbox Code Playgroud)

但不是

<script>
testtest

</script>
Run Code Online (Sandbox Code Playgroud)

我曾尝试将(?m)用于多行,但它不能像那样工作.我正在使用参考来解决它,但我只是没有使用正则表达式.

抬头,通常脚本标签之间会有javascript,而不是简单的文本,所以还有{}();等字符.-_等.

谁能帮我吗?

干杯

[[更新]]谢谢大家,我会尝试解决方案.我赞成正则表达式,但我也会研究HTML Parser.

regex coldfusion

2
推荐指数
1
解决办法
4887
查看次数

使用firebug或其他控制台防止访客欺诈

我正在努力防止我正在构建的webproject中的欺诈行为.该项目是一个包含多个网站的游戏.

每个网站都会对每个网页浏览进行ajax检查,以查看我服务器上的网页,以获取游戏的状态更新.响应页面,比如www.domain.com/response.cfm(它是coldfusion)通常不会返回任何内容,但是在游戏时间范围内的某个时间点,它将显示带有信息的JSON字符串.然后,此信息将由网站上包含的脚本使用.

因此,网站A已被浏览100次(其所有页面),这将产生100个ajax调用.

我遇到的问题是机器人也可以检查ajax目的地,并且速度更快.现在我可以检测到一个机器人,或者通过使用会话或检查cookie来使他变得困难,但是......

最大的问题是我发现你可以在Firebug脚本控制台或Safari控制台上做很多事情.可能也是Chrome.

使用此控制台,他们甚至可以规避跨域限制.我创建了一个简单的脚本,它对Ajax页面进行了几次调用,当我首先访问同一个域时,然后使用控制台......没有跨域限制.并且你执行所有类型的JavaScript,所以本质上像我这样的人可以使用javascript控制台在游戏中进行欺诈,该控制台将他视为常规浏览器用户.

我现在的问题是:有谁知道如何防止这种情况?我试图禁用控制台的使用,但我认为我不能.可以检测控制台是否处于活动状态,然后禁用我的脚本,这样游戏就不起作用了.但我认为他们可以手动在控制台中加载脚本源,然后游戏就可以了.

看起来控制台是一件美丽的事情,但现在对我来说是一场噩梦,以防止人们在我正在创造的游戏中作弊.

希望有人有建议.

ps:我当然试图实现som服务器端检查以检测作弊,但大多数时候它不是实时的.


更新19/3/2012
我试图阻止的欺诈是通过轮询生成下一步游戏逻辑的页面来欺骗游戏.这是一个serverscript页面,它生成json代码,该代码将触发游戏所在网站的更改.为了您的信息,所涉及的网站都有标题中的脚本,如谷歌分析,因此他们将在每次网页浏览时与我的服务器进行通信.

轮询该服务器页面可以揭示将获得作弊者知识或进展的信息.

因此,我必须通过监视将在特定时间显示信息的服务器页面来阻止人们获得其他认真玩家之前的知识.我不希望他们自动轮询它,当信息显示时,发送自己的通知并检查网站.

所以我要做的是确保如果人们每秒有多次网页浏览,就会被阻止.此外,您需要一个cookie才能加入,您只需通过登录获得cookie.希望这将为我提供足够的工具,使其尽可能健壮.

感谢您的所有知识,人们.

javascript firebug

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