这是php Sessions的新手.我存储的用户数据非常小,而且不是很敏感但当然我还想要一个安全的网站.我已经使用salt将他们的密码哈希存储在我的数据库中.
我是否需要使用他们的密码在我网站的每个页面上验证用户,或者是否过度杀伤?换句话说,如果他们已经成功"登录"并且我已经在php会话中存储了他们的用户名,那么他们就可以漫游,网站知道他们是谁?
我问,因为在会话中存储用户密码似乎不是最好的主意.真的吗?
我正在编写我的第一个jQuery插件,并且我有一些关于我应该放置东西的问题.我试着四处寻找,但似乎有不同的方法来构建插件,所以我迷路了.我通过关注jQuerys网站上的Authoring Plugins文档得到了这一点,但不确定下一步该怎么做.
我在哪里放一个共同的功能?以hello()为例.假设我打算在整个插件中使用该功能,它应该在哪里生活?现在我把它放在顶部,这似乎有效,但我不确定这是正确的做法.
我在哪里放一个全局变量?以我的变量"imgs"数组为例.我应该在现在或我的init方法或其他地方声明这个吗?
(function($){
function hello(){
alert("hello world");
}
var imgs = new Array();
var methods = {
init: function(options){
if(options){
$.extend({
width: 200,
height: 200,
selectedColor: '#123456'
}, options);
// for every image do something
this.find('img').each(function(){
var $this = $(this);
var width = $this.width();
var height = $this.height();
console.log("width: " + width + " height: " + height);
selection = function() {
console.log($this.attr('src'));
hello();
};
$this.bind('click', selection);
});
}
return this;
},
test : function( string ) { …Run Code Online (Sandbox Code Playgroud)我的问题更多是关于术语然后是技术性的(或者是它?).
类中的getter方法和公共方法有什么区别?它们是同一个还是它们之间有区别?
我问,因为我正在努力学习最好的编码实践,这个领域对我来说似乎很灰暗.我正在评论我的代码并注意到我有一个名为"Getters"的大部分和另一个名为"公共方法"的大部分然后我就像......"什么是差异?!".
谢谢!
我正在使用HTML5 canvas元素.假设我有两个想要组合的ImageData对象,可以放在一个画布上.让我们假设我不关心这些图像是如何结合的.两个ImageData对象都具有完全相同的像素数和形状.
将两张图片组合在一起的最佳方法是什么?
我想我可以写一个for循环并迭代ImageData数组并手动组合并设置每个像素的每个rgba值,但我想知道是否有更好的方法?我需要尽快完成此操作.
提前致谢.
我正在使用php Imagick :: cropImage,我遇到了一些麻烦.
假设我有这个图像:

我想用这个裁剪区裁剪图像:

这是我正在使用的PHP代码:
$width = 200;
$height = 200;
$x = -100;
$y = -50;
$image = new Imagick();
$image->readImage($path_to_image);
$image->cropImage( $width, $height, $x, $y );
$image->writeImage($path_to_image);
$image->clear();
$image->destroy();
Run Code Online (Sandbox Code Playgroud)
结果是50px x 150px图像(这不是我想要的):

我想要的是一个200px x 200px图像,其中填充其余部分(检查图案说明透明像素):

如何填充这些空像素?
希望有人能指出我正确的方向.
我不是OOP的新手,但我不熟悉它在Javascript中的工作方式.我理解js中的类是对象的概念.
我正在编写一个脚本,它将编写一些html并允许用户添加或删除一些元素.一切正常,除非你点击"添加复选框"以获取html在最后一个实例中更新的任何实例而不是自身(这使我相信存在某种范围或封装失败).
我已经简化了问题并发布了一个小提琴,单击"添加复选框"作为"颜色"实例,您将看到html被添加到"animals"组中.请注意我在第25行的js评论.
var CheckboxGroup = function(label){
return this.init(label);
}
CheckboxGroup.prototype = {
type: "checkbox",
label: null,
description: null,
$label: null,
init: function(label){
if(!label) label = "Checkboxes";
self = this;
this.$wrap = $("<div class='checkBoxGroup'></div>");
this.$label = $("<div>"+label+"</div>").appendTo(this.$wrap);
this.$options = $("<div></div>").appendTo(this.$wrap);
this.$add = $("<div class='n'>Add Checkbox</div>").appendTo(this.$wrap);
this.$add.click(function(){
self.addOption("New Option");
});
this.options = [];
return this;
},
addOption: function(label){
$option = $("<div class='c'><input type='checkbox' name='"+label+"'><span class='l'>"+label+"</span></div>").appendTo(this.$options);
$remove = $("<span class='rm'>x</span>").appendTo($option);
$remove.click(function(){
var r=confirm("Remove Option?");
if (r==false) return;
$(this).parents('.c').remove();
});
this.options.push($option); …Run Code Online (Sandbox Code Playgroud) 我正在尝试初始化 Firebase 应用程序,但我不明白如何或在哪里调用它。
我有一个文件名 fire.tsx ,其中有一个对 firebase 的调用initializeApp。但现在怎么办?我如何将其包含在我的应用程序中?
我认为只需添加import { firebaseApp, firebaseAnalytics } from './fire';到 App.tsx 的顶部就可以工作,但显然不行。我这样做错了吗?
import firebase from "firebase";
import "firebase/auth";
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
const firebaseConfig = {
apiKey: "xxx-xx-xx",
authDomain: "xxx-xx-xx",
databaseURL: "xxx-xx-xx",
projectId: "xxx-xx-xx",
storageBucket: "xxx-xx-xx",
messagingSenderId: "xxx-xx-xx",
appId: "xxx-xx-xx",
measurementId: "xxx-xx-xx"
};
const firebaseApp = initializeApp(firebaseConfig);
export default firebaseApp;
export const firebaseAuth = firebase.auth();
export const firebaseAnalytics = getAnalytics();
Run Code Online (Sandbox Code Playgroud)
应用程序.tsx
import { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用http_build_query并返回一个意外的字符串.这是我正在做的一个例子:
$timestamp = time();
$args = array("name"=>"Bob",
"id"=>uniqid(),
"timestamp"=>$timestamp,
"token"=>md5('unique_salt' . $timestamp));
$query = http_build_query($args, '', '&');
echo $query;
Run Code Online (Sandbox Code Playgroud)
这就是结果:
name=Bob&id=5354a8336b3d7×tamp=1398057011&token=ba2c56005ac83d5169d173993f6a0d32
Run Code Online (Sandbox Code Playgroud)
您可以看到键"timestamp"已替换为"×tamp" - 我甚至不确定第一个字符是什么,因为它不是字母x.
我在几个不同的服务器上测试了这个,结果相同.是什么赋予了?!
php ×4
javascript ×3
canvas ×1
ecmascript-6 ×1
firebase ×1
getter ×1
html5 ×1
imagemagick ×1
imagick ×1
jquery ×1
methods ×1
oop ×1
reactjs ×1
security ×1
session ×1
terminology ×1