小编mač*_*ček的帖子

PHP cookie写在不正确的域上

我有一个我在我的应用程序上使用的cookie.它看起来像这样:

+-------+-------+-----------------------+-------+----------+
| Name  | Value | Domain                | Path  | Expires  |
+-------+-------+-----------------------+-------+----------+
| foo   | bar   | my.domain.tld         | /     | Session  |
+-------+-------+-----------------------+-------+----------+
Run Code Online (Sandbox Code Playgroud)

在我的脚本的一部分中,基于某些条件,我正在尝试更改cookie的值.我正在使用此代码:

// overwrite cookie
if($condition){
  setcookie("foo", "cat", 0, "/", "my.domain.tld");
}
Run Code Online (Sandbox Code Playgroud)

之后,我的cookie数据如下所示:

+-------+-------+-----------------------+-------+----------+
| Name  | Value | Domain                | Path  | Expires  |
+-------+-------+-----------------------+-------+----------+
| foo   | bar   | my.domain.tld         | /     | Session  |
| foo   | cat   | .my.domain.tld        | /     | Session  |
+-------+-------+-----------------------+-------+----------+
Run Code Online (Sandbox Code Playgroud)

为什么.要将a 添加到域名之前?我想覆盖现有的cookie.

php cookies setcookie

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

如何在PHP中子类化Singleton?

我正在尝试子类化使用单例模式的类,并使用子类填充实例.

我好像有点麻烦.

class Singleton {

    static private $instance;

    static public function instance(){
        if(is_null(self::$instance)){
            self::$instance = new self();
        }
        return self::$instance;
    }

    private function __construct(){}

}

class MySingleton extends Singleton {

}

echo get_class(MySingleton::instance()); //=> Singleton

//=> I'm hoping to see MySingleton
Run Code Online (Sandbox Code Playgroud)

php singleton design-patterns

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

如何限制jQuery事件的回调?

好吧,所以我在google中搜索,你在输入中输入文字,它会立即为你提供条目.但我不喜欢那样.我使用类似的东西$("TEXTINPUT").keyup(function() {.当用户输入速度非常快时,它会多次连接到数据库.是否有可能,只有当用户停止键入1-2秒,我们才会连接到PHP文件,但不是立即?我需要在jQuery中这样做.谢谢.

jquery

6
推荐指数
2
解决办法
4266
查看次数

为什么我可以使用Ruby中的Object#send访问私有/受保护的方法?

班级

class A

  private
  def foo
    puts :foo
  end

  public
  def bar
    puts :bar
  end

  private
  def zim
    puts :zim
  end

  protected
  def dib
    puts :dib
  end
end
Run Code Online (Sandbox Code Playgroud)

A的实例

a = A.new
Run Code Online (Sandbox Code Playgroud)

测试

a.foo rescue puts :fail
a.bar rescue puts :fail
a.zim rescue puts :fail
a.dib rescue puts :fail
a.gaz rescue puts :fail
Run Code Online (Sandbox Code Playgroud)

测试输出

fail
bar
fail
fail
fail
Run Code Online (Sandbox Code Playgroud)

.测试

[:foo, :bar, :zim, :dib, :gaz].each { |m| a.send(m) rescue puts :fail }
Run Code Online (Sandbox Code Playgroud)

.send输出

foo
bar
zim
dib
fail
Run Code Online (Sandbox Code Playgroud)

这个问题

标有"测试输出"的部分是预期结果.那么为什么我可以简单地访问私有/受保护的方法 …

ruby language-design access-specifier

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

如何使用Ruby检查域是否存在?

有点像:

def domain_exists?(domain)
  # perform check
  # return true|false
end

puts "valid!" if domain_exists?("example.com")
Run Code Online (Sandbox Code Playgroud)

ruby dns validation registrar

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

使用Rails进行测试驱动开发(TDD)

我正在寻找特定于Rails的TDD资源.

我已经看过Rails指南:创建Rails插件的基础知识,这真的激发了我对该主题的兴趣.

我有一本Agile Development with Rails书,我看到那里有一些与测试相关的信息.但是,似乎作者会引导您完成构建应用程序的步骤,然后再添加测试.这不是真正的测试驱动开发.

理想情况下,我想要一本关于此的书,但如果不存在这样的书,那么其他教程或文章的集合会很棒.

我想学的东西:

  • 主要目标:最佳实践
  • 单元测试
  • 如何利用灯具
    • 可能使用现有的开发数据代替灯具
      • 什么是社区标准?
  • 编写插件测试
  • 使用会话数据进行测试
    • 用户已登录
    • 用户可以访问URL/foo/bar
  • 测试数据的变化
    • 作者更新发布
    • 产品状态更改为延期订单
    • 用户购买产品(行为?)
      • 用户已登录
      • 用户有有效的地址和有效的信用卡
      • 订单记录
      • 信用卡交易记录已更新
      • 发送电子邮件给用户
  • 测试发送电子邮件的成功
  • 测试AJAX
    • 可能测试一般的jQuery功能(界面元素等)
  • RSpec的
    • RSpec在Rails应用程序中的位置
  • 测试的未来
    • 测试在哪里?他们出路的是什么东西?
    • Rails 3中将使用哪些模式?

谢谢你的帮助!

tdd unit-testing ruby-on-rails

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

使用Ruby进行任意精度算术

Ruby怎么做到这一点?Jörg或其他任何人都知道幕后发生了什么吗?

不幸的是我不太了解C,所以bignum.c对我没什么帮助.我有点好奇,有人可以用简单的英语解释它使用的奇迹算法背后的理论.

irb(main):001:0> 999**999
Run Code Online (Sandbox Code Playgroud)

368063488259223267894700840060521865838338232037353204655959621437025609300472231530103873614505175218691345257589896391130393189447969771645832382192366076536631132001776175977932178658703660778465765811830827876982014124022948671975678131724958064427949902810498973271030787716781467419524180040734398996952930832508934116945966120176735120823151959779536852290090377452502236990839453416790640456116471139751546750048602189291028640970574762600185950226138244530187489211615864021135312077912018844630780307462205252807737757672094320692373101032517459518497524015120165166724189816766397247824175394802028228160027100623998873667435799073054618906855460488351426611310634023489044291860510352301912426608488807462312126590206830413782664554260411266378866626653755763627796569082931785645600816236891168141774993267488171702172191072731069216881668294625679492696148976999868715671440874206427212056717373099639711168901197440416590226524192782842896415414611688187391232048327738965820265934093108172054875188246591760877131657895633586576611857277011782497943522945011248430439201297015119468730712364007639373910811953430309476832453230123996750235710787086641070310288725389595138936784715274150426495416196669832679980253436807864187160054589045664027158817958549374490512399055448819148487049363674611664609890030088549591992466360050042566270348330911795487647045949301286614658650071299695652245266080672989921799342509291635330827874264789587306974472327718704306352445925996155619153783913237212716010410294999877569745287353422903443387562746452522860420416689019732913798073773281533570910205207767157128174184873357050830752777900041943256738499067821488421053870869022738698816059810579221002560882999884763252161747566893835178558961142349304466506402373556318707175710866983035313122068321102457824112014969387225476259342872866363550383840720010832906695360553556647545295849966279980830561242960013654529514995113584909050813015198928283202189194615501403435553060147713139766323195743324848047347575473228198492343231496580885057330510949058490527738662697480293583612233134502078182014347192522391449087738579081585795613547198599661273567662441490401862839817822686573112998663038868314974259766039340894024308383451039874674061160538242392803580758232755749310843694194787991556647907091849600704712003371103926967137408125713631396699343733288014254084819379380555174777020843568689927348949484201042595271932630685747613835385434424807024615161848223715989797178155169951121052285149157137697718850449708843330475301440373094611119631361702936342263219382793996895988331701890693689862459020775599439506870005130750427949747071390095256759203426671803377068109744629909769176319526837824364926844730545524646494321826241925107158040561607706364484910978348669388142016838792902926158979355432483611517588605967745393958061959024834251565197963477521095821435651996730128376734574843289089682710350244222290017891280419782767803785277960834729869249991658417000499998999

ruby math bignum arbitrary-precision

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

如何从Ruby中的特定相对路径加载文件?

我正在制作内部使用的宝石.在其中,我从另一个目录加载一些YAML:

# in <project_root>/bin/magicwand
MagicWand::Configuration::Initializer.new(...)

# in <project_root>/lib/magicwand/configuration/initializer.rb
root_yaml = YAML.load_file(
  File.expand_path("../../../../data/#{RootFileName}", __FILE__))

# in <project_root>/data/root.yaml
---
apple:   100
banana:  200
coconut: 300
Run Code Online (Sandbox Code Playgroud)

我宁愿不依赖于data/root.yaml相对的位置initializer.rb.相反,我宁愿得到一个参考<project_root>并依赖于那里的相对路径,这似乎是一个更聪明的举动.

首先,这是最好的方法吗?其次,如果是这样,我该怎么做?我检查了各种File方法,但我不认为有类似的东西.我正在使用Ruby 1.9.

现在,我创建一个特殊的常量并依赖于它:

# in lib/magicwand/magicwand.rb
module MagicWand
  # Project root directory.
  ROOT = File.expand_path("../..", __FILE__)
end
Run Code Online (Sandbox Code Playgroud)

但我也不确定我是否喜欢这种方法.

ruby ruby-1.9

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

在PHP函数签名中模拟Ruby"splat"运算符的最佳方法[方法重载]

在Ruby中

def my_func(foo,bar,*zim)
  [foo, bar, zim].collect(&:inspect)
end

puts my_func(1,2,3,4,5)

# 1
# 2
# [3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

在PHP(5.3)

function my_func($foo, $bar, ... ){
  #...
}
Run Code Online (Sandbox Code Playgroud)

在PHP中执行此操作的最佳方法是什么?

php ruby overloading

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

ruby数组奇怪的东西(无限数组)

当我写下面的代码时:

x= [1,2,3]
x << x
puts x
puts x[3]
puts x[3][3][3][3][3][3][3][3][3][3]
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

[1, 2, 3, [...]]
[1, 2, 3, [...]]
[1, 2, 3, [...]]
Run Code Online (Sandbox Code Playgroud)

我不应该只得到[1,2,3,[1,2,3]],这将是什么解释?

ruby arrays ruby-on-rails

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