小编Mik*_*ike的帖子

我应该使用什么列类型/长度在数据库中存储Bcrypt哈希密码?

我想在数据库中存储散列密码(使用BCrypt).什么是好的类型,哪个是正确的长度?密码是否与BCrypt长度相同?

编辑

示例哈希:

$2a$10$KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3LqtVvpyvHZf0MwvNfVu

在对一些密码进行哈希处理之后,似乎BCrypt总是生成60个字符的哈希值.

编辑2

很抱歉没有提及实施.我正在使用jBCrypt.

mysql hash storage types bcrypt

295
推荐指数
4
解决办法
12万
查看次数

从PDO预处理语句中获取原始SQL查询字符串

有没有办法在预准备语句上调用PDOStatement :: execute()时获取原始SQL字符串?出于调试目的,这将非常有用.

php mysql sql pdo pdostatement

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

使用Javascript格式化当前时间

我想用javascript获取特定格式的当前时间.

使用下面的功能并调用它将给我 周五2013年2月1日13:56:40 GMT + 1300(新西兰夏令时) 但我想格式化它像 星期五下午2:00 pm 2013年2月1日

var d = new Date();
var x = document.getElementById("time");
x.innerHTML = d;
Run Code Online (Sandbox Code Playgroud)

当然,上面的代码没有任何格式化逻辑,但我还没有遇到任何"工作"格式化程序.

javascript format time date

82
推荐指数
8
解决办法
28万
查看次数

如何使用DateTime类在PHP中转换时区?

我试图将当前时间与UTC和UTC之间的时间转换为当前时区.

这是我做的:

$schedule_date = new DateTime($triggerOn, new DateTimeZone('UTC') );
$triggerOn =  $schedule_date->format('Y-m-d H:i:s');

echo $triggerOn;
Run Code Online (Sandbox Code Playgroud)

输出值不会更改格式中唯一更改的内容.

字符串$triggerOn是根据America/Los_Angeles时区生成的

这是我的字符串之前和之后的样子:

BEFORE    04/01/2013 03:08 PM
AFTER     2013-04-01 15:08:00
Run Code Online (Sandbox Code Playgroud)

所以这里的问题是DateTime不会转换为UTC.

php timezone datetime

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

你如何在PHP中12小时和24小时之间转换?

我有一个时间作为字符串,例如:

$time = '5:36 pm';
Run Code Online (Sandbox Code Playgroud)

我要求它是24小时格式(即17:36),但我不知道我需要使用哪些函数来转换它.请帮忙.

php

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

setTimeout()没有等待

我想用Javascript进行秒倒计时.

这是我的HTML

<div id="ban_container" class="error center">Please wait
        <span id="ban_countdown" style="font-weight:bold">
        45</span>
        seconds before trying again
</div>
Run Code Online (Sandbox Code Playgroud)

我的JS:

<script type="text/javascript">
    var seconds = <?php echo $user->getBlockExpiryRemaining(); ?>;

    function countdown(element) {
        var el = document.getElementById(element);

        if (seconds === 0) {
            document.getElementById("ban_container").innerHTML = "done";
            return;
        }
        else {
            el.innerHTML = seconds;
            seconds--;
            setTimeout(countdown(element), 1000);
        }
    }

    countdown('ban_countdown');
</script>
Run Code Online (Sandbox Code Playgroud)

但是由于某种原因,它不会等待超时时间,而是立即执行countdown,这样当我刷新页面时它就会立即显示"完成".我知道它实际上是多次被执行,因为如果我这样做,innerHTML += seconds + " ";它会从45开始倒数.为什么超时会被超时?

javascript timeout settimeout

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

PHP,MySQL和时区

我正在尝试在我的应用程序中集成一个时区系统,我真的很努力避免现在使用时区感知应用程序 - 但它现在是强制性要求所以别无选择.时区只是我的头脑.我在PHP.net以及其他网站上阅读了几个主题,包括但不限于SO.但我永远无法掌握它.

所以我想知道是否有人可以帮助我在这里:(我想要做的是我的应用程序中的偏好选项,允许用户从选择菜单中选择自己的时区,但应用程序也应该能够设置/为每个用户选择相应的DST.

请相信这会帮助那些仍在努力掌握时区的人,所以请提供尽可能详细的解释,即使你不得不考虑我一个完整的dumbo/noob.


编辑赏金:

我正在为这个问题添加一个赏金,因为我真的需要一个关于编写PHP/MySQL应用程序的时区的好规范问题(因此我也添加了MySQL标记).我从很多地方找到了东西,但把它们放在一起会很好.查尔斯的答案很棒,但我仍然觉得它有些缺乏.以下是我想到的一些事情:

  • 如何从PHP DateTime对象存储数据库中的时间
  • 它们应该存放在DATETIMETIMESTAMP?每个有什么好处或警告?
  • 我们是否需要担心MySQL的时区DATE
  • 如何使用插入值NOW().这些是否需要在插入之前或之后以某种方式进行转换?
  • 是否有必要设置MySQL使用的时区?如果是这样,怎么样?应该是持久地还是每次HTTP请求?它必须设置为UTC还是其他任何东西?或者服务器的时间是否充足?
  • 如何从MySQL检索值并将它们转换为DateTime对象.将它直接放入DateTime::__construct()还是我们需要使用DateTime::createFromFormat()
  • 什么时候转换为当地时间.是否曾经有一段时间我们想要它回显给用户之前将其转换(例如,与另一个DateTime对象或静态值进行比较)?
  • 有没有时间我们需要担心夏令时(DST)?为什么或者为什么不?
  • 如果他们之前插入数据(例如使用NOW())而不担心时区以确保一切保持一致,那么应该怎么做?
  • 你认为有人应该注意的任何其他事情

如果可能,尝试将其分成逻辑部分,以便将来的用户更容易找到信息.请务必在必要时提供代码示例.

php mysql timezone datetime

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

如何在正则表达式中删除星号?

我想用这个模式*1*.我试过\*1\*,但它不起作用.问题出在哪儿?

javascript regex escaping

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

如何在Visual Studio Code,UNIX中的所有文件中创建所有行结尾(EOL)?

我使用Windows 10 home,我通常使用Visual Studio Code(VSCODE)来编辑Linux Bash脚本以及PHP和JavaScript.

我没有开发任何专门用于Windows的东西,我不介意我编辑的所有文件的默认EOL都是Unix(nix).

在VSCODE中,如何确保所有文件中的所有EOL(来自任何文件扩展名)都是nix?


在我用VSCODE在Windows中编写了一些Bash脚本,将它们作为项目的一部分上传到GitHub之后我问了这个问题,并且审查该项目的高级程序员告诉我,那里有Windows EOL,还有我的BOM问题可以解决,如果我将那里的EOL改为nix(或者这就是我理解的,至少).


因为我的所有开发都是面向Linux的,所以我希望默认情况下,我编辑的任何文件都有nix EOL,即使它是Window唯一的.

php bash editor line-endings visual-studio-code

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

php返回混合数据类型 - 好的或坏的

在php中返回值时,返回混合数据类型被认为是好的还是坏的做法.我正在开展一个项目,我经常遇到返回id号码的方法null.我null通过检查null和返回来处理该值,-1如果是的话null.

我发现自己的另一种情况是方法应该做什么并返回一个字符串.但有时候不能返回字符串,因为它没有找到或发生异常.这里最好的事情是什么?返回像'failed'之类的字符串?然后,这会在方法之间创建一个字符串耦合,因为调用方法必须确切地知道要检查的字符串失败消息?

编辑:好的,已经有一些不同的意见.我喜欢在失败时返回false的想法和实际结果,无论数据类型是成功的.但是......在这方面有什么最佳实践吗?我的意思是,在这些情况下,其他语言的程序员会做什么,例如java和c ++等?

php

15
推荐指数
3
解决办法
8301
查看次数