如何重现问题:
在此页面上 https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform
例如20 Water Street, New York City, NY, United States,选择一些地址(正如预期的那样,字段填充了信息).现在,例如在地址更改20到10中,而不是从建议列表中选择地址,只需单击页面上的某个位置即可.建议的列表消失,新地址10 Water Street, New York City, NY, United States保留在输入字段中,但字段信息未更新.
我用它来获得经度和纬度.因此,如果用户不是点击地址,而是点击外部,看起来就像是他改变了地址,但事实上我仍然会拥有之前地址的Lat和Lng.
这是init函数
var autocomplete;
function initialize() {
autocomplete = new google.maps.places.Autocomplete(
/** @type {HTMLInputElement} */
(document.getElementById('addressAutocomplete')), {
types : [ 'geocode' ]
});
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
console.log(place);
});
}
Run Code Online (Sandbox Code Playgroud)
我认为smth就像这样可以工作,但事实并非如此,这条线console.log(place);输出未定义
$(document).ready(function() {
$(document).on('focusout', '#addressAutocomplete', function() {
google.maps.event.trigger(autocomplete, 'place_changed', {});
});
});
Run Code Online (Sandbox Code Playgroud)
谢谢
我的问题来自于 如何使用河豚散列长密码(> 72个字符)
我使用bcrypt(河豚)来哈希密码.所以,正如我从这个问题中发现的那样 https://security.stackexchange.com/questions/39849/does-bcrypt-have-a-maximum-password-length
它的字符数限制为72.
所以,我开始考虑限制密码的最大长度,但是在这些问题及其答案之后
所有人都说是反对的.提到的东西,比如
a maximum length specified on a password field should be read as a SECURITY WARNING通过这个答案 - /sf/answers/6980711/所以,我认为我不符合其中一个案例.当然,我同意愚蠢的限制,例如最大长度10,甚至更糟,8或6,但不是30,40或更长的密码(盐渍)被认为是安全的?从这篇文章(虽然有点旧),但它说
it can make only 71,000 guesses against Bcrypt per second
Run Code Online (Sandbox Code Playgroud)
这适用于8个字符的密码.因此,我想象自定义彩虹表会蛮力一个30个或更多字符密码(考虑到每个密码都有自己的盐),因为彩虹表大小呈指数增长
引用同一篇文章的评论
每次在密码中添加一个字符时,都会以指数方式增加通过暴力破解所需的难度.例如,8-char密码的密钥空间为95 ^ 8组合,而20-char密码的密钥空间为95 ^ 20组合.
因此,对于一个20长度密码与bcrypt根据那将是必要95 ^ 20 /(71 000*3600*24*365)~10年28度(如果我做对了)
qsn1:现在,在这种情况下,使用blowfish有一个意思是不要将密码最大长度限制为72,因为在任何情况下都会被截断,因此这里没有额外的安全性增益.
qsn2:即使存在salt(每个用户都是唯一的并保存在db中),毕竟我想在密码中添加pepper(在应用程序中硬编码而不是保存在db中).我知道是否会增加一些额外的安全性,但我认为以防万一db(或db backup)只是泄露,胡椒将是有用的.
https://security.stackexchange.com/a/3289/38200
所以,为了能够添加20个字符胡椒,我需要将密码最大长度设置为50左右.我想这样:让我们说用户是使用70个字符,在大多数情况下(如果不是全部),它将是一些短语或类似的,而不是生成强大的字符,因此将用户限制为50最大长度并添加另一个20-22更安全字符胡椒肯定更安全/随机.另外,让我们说黑客正在使用"常用短语"的彩虹表,我认为有更高的机会,这72 character common phrase将被黑客攻击,而不是50 character common phrase + 22 character …
encryption passwords password-policy password-storage password-encryption
根据PSR2,在键和多行数组的值之间具有空格的正确方法是什么。
$result = [
'key1' => 'value1',
'another_key' => 'value2',
'some_other_key' => 'value3'
];
Run Code Online (Sandbox Code Playgroud)
与
$result = [
'key1' => 'value1',
'another_key' => 'value2',
'some_other_key' => 'value3'
];
Run Code Online (Sandbox Code Playgroud)
看起来第一个更具可读性,但是我们还有多余的空间。
我有2个表,餐馆和订单,订单表有restaurant_id,status而且date领域,每一天都是在订单表中的单独一行.
我需要过滤餐馆并仅显示在某个日期范围内至少有一个预订的餐厅,但我必须在日历上显示它,它应该看起来像一个有信息的餐馆列表.
像这样的Smth

因此,这意味着如果at least one day with reserved status在该日期范围内满足条件,则也应该获取该餐馆的该日期范围的所有订单.
我无法进行通常的内部联接,
SELECT r.`id`, r.`name`, o.`date`, o.`status`
FROM restaurants r
INNER JOIN orders o ON r.id = o.restaurant_id AND o.date BETWEEN '2013-08-10' AND '2013-08-31'
AND status = 'reserved'
Run Code Online (Sandbox Code Playgroud)
因为,在这种情况下,例如,对于restaurant2,我将不会获得8月31日的订单信息,因为尽管它的日期范围为10 - 31,但其状态为"已关闭".所以,我想这样做一个左连接
SELECT r.`id`, r.`name`, o.`date`, o.`status`, o.`id` order_id
FROM restaurants r
LEFT JOIN orders o ON r.id = o.restaurant_id AND
o.date BETWEEN '2013-08-10' AND '2013-08-31'
WHERE o.`id` IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
但我还需要添加一个条件,以保证至少有一个排,订单的状态="保留",我试图添加其中类似的条款COUNT(o.status = …
我有大约100万条记录一张大桌子,有田start_date和end_date,与DATE类型.我需要检查一些日期范围的重叠数,比如在2013-08-20AND 之间2013-08-30,所以我使用.
SELECT COUNT(*) FROM myTable WHERE end_date >= '2013-08-20'
AND start_date <= '2013-08-30'
Run Code Online (Sandbox Code Playgroud)
日期列已编制索引.重要的一点是,我搜索重叠的日期范围总是在将来,而表中记录的主要部分是过去的(比如大约97-99百万).所以,如果我添加一个列is_future - TINYINT,这个查询会更快,所以,只检查这样的条件
SELECT COUNT(*) FROM myTable WHERE is_future = 1
AND end_date >= '2013-08-20' AND start_date <= '2013-08-30'
Run Code Online (Sandbox Code Playgroud)
它将排除剩余的9700万左右的记录,并将仅检查剩余的1-3百万条记录的日期条件?
我使用MySQL
谢谢
编辑
mysql引擎是innodb,但如果说是MyISAM则会很重要
这是创建表
CREATE TABLE `orders` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title`
`start_date` date DEFAULT NULL,
`end_date` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Run Code Online (Sandbox Code Playgroud)
在@Robert Co回答后 …
我正在使用这个jquery图像上传插件 https://github.com/blueimp/jQuery-File-Upload
我需要的是调整大小/裁剪客户端大小的图像,因此它将具有精确的高度和宽度,然后上传到服务器.
这是上传脚本的一部分,它工作正常,唯一的问题是,它只是调整图像大小而不裁剪,我最终得到上传的图像,例如宽度150像素和高度说133像素(虽然高度并且初始图片的宽度超过1000像素,我想要精确的高度和宽度 - 150px).从选项列表我认为imageCrop应该做的伎俩,https://github.com/blueimp/jQuery-File-Upload/wiki/Options#imagecrop,但事实并非如此.我做错了什么,或者插件不支持我需要的功能?如果是这样,有什么办法可以使用这个插件使用一些外部库/函数来实现我需要的东西吗?
谢谢
编辑:
我也试过这个选项
canvas: true,
cover: true,
crop: true,
thumbnail: true,
aspectRatio: '1/1'
Run Code Online (Sandbox Code Playgroud)
但无济于事
$('#fileupload').fileupload({
url: 'test.php'
dataType: 'json',
imageCrop: true,
process: [
{
action: 'load',
fileTypes: /^image\/(gif|jpeg|png)$/,
maxFileSize: 20000000 // 20MB
},
{
action: 'resize',
maxWidth: 150,
maxHeight: 150,
minWidth: 150,
minHeight: 150,
imageCrop: true
},
{
action: 'save'
},
{action: 'duplicateImage'},
{
action: 'resize',
maxWidth: 100,
maxHeight: 100,
minWidth: 100,
minHeight: 100,
imageCrop: true
},
{
action: 'save' …Run Code Online (Sandbox Code Playgroud) 我想写一个带有断言的正则表达式从字符串中提取数字55 unknownstring/55.1,这是我的正则表达式
$str = 'unknownstring/55.1';
preg_match('/(?<=\/)\d+(?=\.1)$/', $str, $match);
Run Code Online (Sandbox Code Playgroud)
所以,基本上我想说的是给我斜线后面的数字,然后是一个点和数字1,之后就没有字符了.但它与正则表达式不匹配.我只是试图$从最后删除标志,它匹配.但是这个条件是必不可少的,因为我需要将它作为字符串的结尾,因为该unknownstring部分可以包含类似的文本,例如unknow/545.1nstring/55.1.也许我可以使用preg_match_all,并采取最后一场比赛,但我想了解为什么第一个正则表达式不起作用,我的错误在哪里.
谢谢
我需要使用表锁定(写入)并同时更新一些表,因此我同时需要事务,因为锁定不是事务安全的。
从 mysql 文档中,我阅读了以下内容 https://dev.mysql.com/doc/refman/5.6/en/lock-tables-and-transactions.html
对事务表(例如 InnoDB 表)使用 LOCK TABLES 和 UNLOCK TABLES 的正确方法是使用 SET autocommit = 0(不是 START TRANSACTION)开始事务,然后是 LOCK TABLES,并且在提交事务之前不调用 UNLOCK TABLES明确地。例如,如果您需要写入表 t1 并从表 t2 读取,您可以这样做:
Run Code Online (Sandbox Code Playgroud)SET autocommit=0; LOCK TABLES t1 WRITE, t2 READ, ...; ... do something with tables t1 and t2 here ... COMMIT; UNLOCK TABLES;当你调用 LOCK TABLES 时,InnoDB 在内部获取自己的表锁,而 MySQL 获取自己的表锁。InnoDB 在下一次提交时释放它的内部表锁,但是 MySQL 要释放它的表锁,你必须调用 UNLOCK TABLES。你不应该有 autocommit = 1,因为 InnoDB 在调用 LOCK TABLES 后立即释放它的内部表锁,很容易发生死锁。如果 autocommit = 1,InnoDB 根本不获取内部表锁,以帮助旧应用程序避免不必要的死锁。
另一方面,从这个页面我们有 https://dev.mysql.com/doc/refman/5.6/en/commit.html
要为一系列语句隐式禁用自动提交模式,请使用 START TRANSACTION 语句: …
我有menus,categories和products表.我使用的是mysql 5.5,所有表都是innoDB,在所有情况下,id都是自动增量的主键(int).
menus table
id, name, status
categories table
id, menu_id, name
products table
id, menu_id, category_id, status, name, url, content
Run Code Online (Sandbox Code Playgroud)
多个脚本可以并行运行,执行包含以下逻辑的相同php文件.
START TRANSACTION;
SET autocommit = 0;
LOCK TABLES products WRITE, categories WRITE, menus WRITE;
SELECT
p.`id`,
p.`name`,
p.`url`,
p.`status`,
c.`id` cat_id,
c.`name` cat_name,
m.`id` `menu_id`,
m.`name` menu_name
FROM
products p
LEFT JOIN categories c
ON p.`subcategory_id` = c.`id`
LEFT JOIN menus m
ON p.`menu_id` = m.`id`
WHERE p.`status` = 0 LIMIT 1 …Run Code Online (Sandbox Code Playgroud) 我用cakephp开发了几年,现在想尝试asp.net mvc.
在cakephp中有一个bake插件,允许基于可自定义的模板创建标准功能.例如,根据我的需要更改这些模板
1)用于控制器
https://github.com/cakephp/bake/blob/master/src/Template/Bake/Controller/controller.ctp https://github.com/cakephp/bake/blob/master/src/Template/Bake/Element /Controller/index.ctp https://github.com/cakephp/bake/blob/master/src/Template/Bake/Element/Controller/add.ctp
2)用于模型文件
https://github.com/cakephp/bake/blob/master/src/Template/Bake/Model/table.ctp
3)用于查看文件
https://github.com/cakephp/bake/blob/master/src/Template/Bake/Template/index.ctp https://github.com/cakephp/bake/blob/master/src/Template/Bake/Element /form.ctp
我可以从CLI运行命令并获得完整的功能验证,带有操作和视图文件的控制器文件 - 基于现有表的结构和它们之间的关系.该插件将根据模板文件在相应目录中创建实际的php文件.预先定制的烘焙模板允许在几分钟内生成CRUD或任何其他自定义功能.
asp.net mvc(v5或更高版本)中是否有类似的功能?所需的功能是能够完全自定义模板,模板将用于创建控制器,cshtml文件和模型文件 - 假设我们已经拥有数据库中具有外键关联的表.(最好免费,但不一定)
谢谢
mysql ×4
jquery ×2
locking ×2
php ×2
asp.net-mvc ×1
blueimp ×1
cakephp ×1
encryption ×1
google-maps ×1
javascript ×1
join ×1
passwords ×1
psr-2 ×1
regex ×1
sql ×1
transactions ×1