小编Nem*_*den的帖子

YII:如何更改视图上显示的日期时间格式

Yii中的一个新手问题:我在Yii中有一个包含日期时间字段的表模型.

我正在使用CActiveForm来显示这个字段:

<div class="row">
    <?php echo $form->labelEx($model,'createdon'); ?>
    <?php echo $form->textField($model,'createdon', array('id'=>'createdon')); ?>
    <?php echo $form->error($model,'createdon'); ?>
</div>
Run Code Online (Sandbox Code Playgroud)

但显示的文本字段是日期时间格式来自MySQL,即yyyy-mm-dd hh:mm:ss

如何将文本字段上显示的格式更改为其他时间格式?(也许dd/mm/yy或mm/dd/yy或者其他)

任何帮助,将不胜感激.

谢谢!

php datetime model view yii

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

Ruby on Rails.未初始化的常量

这很奇怪,但是:

上传器类(app/uploaders):

class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick

  # ....

  version :thumb, from_version: :preview do
    process resize_to_limit: [Image::THUMB_WIDTH]
  end
Run Code Online (Sandbox Code Playgroud)

图像类(app/models):

class Image < ActiveRecord::Base
  include Rails.application.routes.url_helpers
  mount_uploader :image, ImageUploader

  THUMB_WIDTH = 220
  PREVIEW_WIDTH = 460
  MAX_WIDTH = 960
Run Code Online (Sandbox Code Playgroud)

申请说:

uninitialized constant Image::THUMB_WIDTH

  version :thumb, from_version: :preview do
    process resize_to_limit: [Image::THUMB_WIDTH] #<<<----
  end

  version :preview, from_version: :fullsize do
Run Code Online (Sandbox Code Playgroud)

怎么了?

更新:

阿吉斯指出了原因.

Bounty将在2天内应用此问题的最佳解决方案.我不喜欢代码分离,例如在初始化器中创建一个新类,用于保存Image类的所有常量.这个解决方案很糟糕,因为它带来了不一致和代码碎片.

ruby ruby-on-rails carrierwave

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

即使在golang中使用sync.Mutex也会出现竞争情况

完整的代码在这里:https ://play.golang.org/p/ggUoxtcv5mgo run -race main.go说有一个竞争条件,我无法解释.不过,该程序输出了正确的最终结果.

精华:

type SafeCounter struct {
    c int
    sync.Mutex
}

func (c *SafeCounter) Add() {
    c.Lock()
    c.c++
    c.Unlock()
}

var counter *SafeCounter = &SafeCounter{} // global
Run Code Online (Sandbox Code Playgroud)

*SafeCounter在增量器中使用:

func incrementor(s string) {
    for i := 0; i < 20; i++ {
        x := counter
        x.Add()
        counter = x
    }
}
Run Code Online (Sandbox Code Playgroud)

incrementor方法产生两次main:

func main() {
    go incrementor()
    go incrementor()
    // some other non-really-related stuff like
    // using waitGroup is …
Run Code Online (Sandbox Code Playgroud)

mutex go race-condition

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

这是什么样的SQL注入?

我发现有人试图通过密码恢复表单攻击我们公司的网站.攻击是SQL或代码注入.它看起来像这样:

'; if (db_name()))<48) waitfor delay \\\'00:00:04\\\'--'
Run Code Online (Sandbox Code Playgroud)

上述陈述有几种变体,例如

'; if (Len((db_name()))=62) waitfor delay \\\'00:00:04\\\'--'
'; if (system_user))<48) waitfor delay \\\'00:00:04\\\'--'
'; if (Len((system_user))=63) waitfor delay \\\'00:00:04\\\'--'
Run Code Online (Sandbox Code Playgroud)

无法谷歌任何与此次攻击相关的内容.

希望有人知道这是什么类型的攻击以及攻击者在这里尝试做什么?

security sql-injection code-injection

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

SQLAlchemy声明.指定要选择的列

声明基数:

Base = declarative_base()
Base.query = Session.query_property()
Run Code Online (Sandbox Code Playgroud)

班级:

class Cheat(Base):

  __tablename__ = 'cheats'

  id = Column(Integer, primary_key = True, autoincrement = True)
  cheat = Column(Text)
  name = Column(String(255), index = True)
  _html = Column('html', Text)
  _slug = Column('slug', String(255))

  @hybrid_property
  def html(self):
    return self._html

  @html.setter
  def set_html(self, md):
    from markdown import markdown
    self._html = markdown(md)

  @hybrid_property
  def slug(self):
    return self._slug

  @slug.setter
  def set_slug(self, name):
    self._slug = slugify(name)

  def __init__(self, name, cheat):
    self.name = name
    self.slug = name
    self.cheat = cheat …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

为什么传递表示对象的字符串而不是传递对象?

下面的代码是从Djangosettings.py.由于所有内容Python都是对象,为什么不将已安装的应用程序作为对象元组传递:

INSTALLED_APPS = (
  django.contrib.auth,
  django.contrib.contenttypes,
.....
Run Code Online (Sandbox Code Playgroud)

是否有一些强有力的理由为什么他们这样做:

INSTALLED_APPS = (
  'django.contrib.auth',
  'django.contrib.contenttypes',
.....
Run Code Online (Sandbox Code Playgroud)

代替?

我是新来的PythonDjango,所以不要对我做出判断太多,请.

python django object

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

MySQL的优缺点

简而言之,在MySQL中使用触发器有何利弊?但是我从来没有在MySQL中既没有使用触发器,也没有使用存储过程,所以我习惯于解决使用PHP进行业务逻辑和使用SQL进行CRUD的任何任务。现在,我有一个任务来保存表的历史记录并为此考虑使用触发器。因此,子问题是:触发器是否适合此特定任务?

mysql triggers

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

我需要什么类型的加密?

好的,最初的任务是在2个能够共享用户cookie的"友好"网站中跟踪用户(比方说,我有example.com,我的朋友有mysite.com,而且他有一个域simple.example. com所以他可以在.example.com上设置cookie.

要跟踪我们想要设置唯一cookie的用户活动,此cookie应该是唯一的并且长度为32个字节(ascii).从这个角度来看非常简单,可以这样实现:

md5(microtime)
Run Code Online (Sandbox Code Playgroud)

就是这样,但现在我们有了新的约束:

  1. 我们应该能够告诉谁确切地设置了cookie:exmaple.com引擎或mysite.com引擎

  2. 仍然需要32个字节的长度

  3. 我们应该能够加密时间戳(发布cookie时)

  4. 结果cookie值的第一个和最后一个字符应该不同,所以我们可以根据cookie进行A/B测试(所以我们总是可以说,如果cookie的最后一个字符是"> K",则显示此用户"功能A")

鉴于结果字符串的长度应始终为32个或更少,并且数据应加密和解密(当然不是用户),并且字符串对于用户应该是唯一的,这使得任务非常复杂.

我的想法和问题:

  • 我们应该使用对称密钥加密(解决约束 1和3),但是在这种情况下我们如何确保结果字符串不超过32个字符(约束 2)?

  • 考虑到我们需要加密的数据量是:时间戳和微秒(14字节),站点发布者标志(1字节)=总共15字节,还有其他解决方案吗?

我的第一个想法是将数据打包成二进制字符串而不是base64编码.结果将是8-chars长base64编码的字符串:

def encode():
    base64( pack('Lv', timestamp, microseconds) )
Run Code Online (Sandbox Code Playgroud)

在开头和结尾添加site-issuer标志和字符:

def getCookie():
    rand('a'...'Z') + encode() + issuerFlagChar() + rand('a'...'Z')
Run Code Online (Sandbox Code Playgroud)

因此,结果是11个字符长,我们很容易满足约束2.

但问题是:这个算法肯定不安全,我不确定数百万网站用户的结果字符串是否是唯一的.

我想知道我是否可以为此目的使用DES或AES,但我不确定结果字符串是否总是满足约束2(结果字符串不应超过32个ascii字符).

是否存在对称密钥算法,以确保"如果使用M字节密钥加密N个字节,那么结果数据长度为Math.Ceil(N*2 + 1/M)字节"?因此产生的长度是可预测的?

encryption des aes encryption-symmetric

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

用于表示结构中的可选time.Time的惯用方法

我读过两个可选参数?Golang传递nil作为函数的可选参数?

并且仍然想知道我的案例是否更具体.

我得到的是:

type Periodical struct {
    Interval *interval.Interval
    StartsAt time.Time
    EndsAt   time.Time
}
Run Code Online (Sandbox Code Playgroud)

表示具有开始日期并且可能有也可能没有结束日期的期刊事件(期刊事件无限期地运行).

eachYear := Periodical{
    interval.Years(1),
    StartsAt: time.Parse("2 Jan 2006", "1 Jan 1970")}
Run Code Online (Sandbox Code Playgroud)

会抛出

periodical/periodical.go:31:39: cannot use nil as type time.Time in field value
Run Code Online (Sandbox Code Playgroud)

据了解, - 我没有说明EndsAt time.Time.

但那我到底做了什么呢?

我被迫有一个特殊的旗帜可以忽略EndsAt这样吗?

type Periodical struct {
    Interval     *interval.Interval
    StartsAt     time.Time
    EndsAt       time.Time
    isIndefinite bool       // This looks ugly already
}
Run Code Online (Sandbox Code Playgroud)

然后,如果我想Yearly/ Anually我做的事情

eachYear := Periodical{
    interval.Years(1),
    time.Parse("2 …
Run Code Online (Sandbox Code Playgroud)

time struct optional-parameters go

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