小编jlm*_*kes的帖子

如何使用Javascript或Jquery检查div何时调整大小

所以我在线框图中有一个网络应用程序,但是我遇到了一个需要技术解决方案才能巩固这个模型的问题.那是:

  • 图#1用户创建新的'text-field'元素(具有最大宽度的div.)然后用户开始输入所述元素,直到...

  • 图#2元素到达它的最大宽度,文本下降到一个新的行,并创建一个'新的'背景图像(以另一个div的形式)(它的不透明度和位置动画效果)以容纳更大的元素sze.

UX模型概念

这是预期功能的大致轮廓(目前给出,我不知道如何使用一个行为类似于具有最大宽度的div的文本字段)但我很好奇如何创建事件处理程序第二步 ; 我考虑过检查每个'keydown'事件,但这似乎效率低下......

有没有人有任何建议或想法来解决这样的问题?谢谢!

javascript jquery events

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

如何在不破坏后退按钮的情况下混合触发页面刷新的链接,Angular的html5Mode = true?

我将逐步介绍有问题的流程......

  • 我加载google.com(仅作为起点)
  • 我转到app.com
  • 我导航到app.com/projects
  • 我导航到app.com/api/test(通过window.location)
  • 我看到了原始的JSON(到目前为止很好......)
  • 我按回来,url更改为app.com/projects但我仍然看到JSON.
  • 我再次按回来,url更改为app.com,但我仍然看到JSON.
  • 我再次按回去,google.com加载.
  • 我向前推,app.com加载好......一切恢复正常

奇怪的是,我只是html5Mode = true在Webkit- firefox按需工作时才观察到这一点......

...

首先,我的server.coffee看起来像这样:

app.get '/partials/:partial', routes.partials
app.get '/api/test', api.test
app.get '*', routes.index
Run Code Online (Sandbox Code Playgroud)

基本上,所有请求都加载索引(引导Angular),视图/部分处理程序除外,以及使用原始JSON响应的测试api路由.

...

(我使用ui-router模块来管理嵌套视图和UI状态;它使用的$urlRouterProvider,与Angular非常相似$routeProvider)

其次,我的app.coffee看起来像这样:

app = angular.module('app', ['ui-router'])
.config([
    '$stateProvider'
    '$locationProvider'
    '$urlRouterProvider'
    ($stateProvider, $locationProvider, $urlRouterProvider)->
        $urlRouterProvider
            .when('/api/test', [
                '$window'
                '$location'
                ($window, $location)->
                    $window.location.href = '/api/test'
            ]) …
Run Code Online (Sandbox Code Playgroud)

routes coffeescript pushstate angularjs

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

帮我理解pack(),openssl_random_pseudo_bytes()和mt_rand()来保存密码

我正在构建一个具有用户群的应用程序,而我正在确保登录安全.我是编程(和PHP)的新手,但到目前为止我的努力已经指向使用Crypt()和Blowfish哈希盐.

在我走得更远之前,让我指出此时对phpass不感兴趣.

crypt()文档中,用户最近发布了以下内容:

<?php 
   $salt = substr(str_replace('+', '.', base64_encode(pack('N4', mt_rand(), mt_rand(), mt_rand(), mt_rand()))), 0, 22); 
?>
Run Code Online (Sandbox Code Playgroud)

它适用于mt_getrandmax()== 2147483647的系统.

创建的salt长度为128位,填充为132位,然后以22 base64字符表示.(CRYPT_BLOWFISH只使用128位的盐,即使22个base64字符有132位.如果检查CRYPT_BLOWFISH输入和输出,你可以看到它忽略输入的最后四位,并在输出时将它们设置为零.)

注意,mt_rand()返回的四个32位双字的高位总是为零(因为mt_getrandmax == 2 ^ 31),所以128位中只有124位是伪随机的.我发现我的申请可以接受.

我测试了我的服务器,确实mt_getrandmax()返回2147483647.我尝试了解文档以了解上面的代码到底是做什么的 - pack()代码N4是针对32位字符串(大端字节顺序??)重复4次...我假设是为什么有4个mt_rand()论点.

我不明白的是为什么他替换+.和22个的base64字符的目的(不,我完全理解什么是BASE64.)

建议我研究openssl_random_pseudo_bytes()我的随机盐生成,因为我之前看到的方法仅限于自己1234567890abcdefghijklmnopqrstuvwxyz.

据说5.3.4之前有一个错误导致openssl_random_pseudo_bytes()运行缓慢,偶尔导致超时错误.我不确定我是否应该尝试使用openssl_random_pseudo_bytes()Crypt()类似上述方法使用mt_rand()pack().

我试图更多地了解所有这些元素是如何工作的,以及它们在概念上做了什么 - 而不是仅仅使用一个而不理解它来实现我的目标; 我正在努力学习:P

有人可以帮助我理解这里工作的不同元素,或者至少将我引导到一个知识库,在那里我可以阅读它吗?我认为最常见的组件是理解不同的格式/术语(base64,ascii,hexdec,bit,byte等),但最后,如何实现与我的密码一起使用的相当安全的盐.

php random algorithm salt

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

停止后退按钮暴露安全页面?

我遇到了浏览器缓存(显然很常见)的问题,我的安全页面可通过后退按钮访问(用户注销后).

这是我的logout.php

<?php
    // 1. Find the session 
    session_start();

    // 2. Unset all the session variables
    $_SESSION = array();

    // 3. Destroy the session cookie
    if(isset($_COOKIE[session_name()])) {
        setcookie(session_name(), '', time()-42000, '/');
    }

    // 4. Destroy the session
    session_destroy();

    redirect_to('index.php?logout=1');
?>
Run Code Online (Sandbox Code Playgroud)

这成功地在IE7,IE8,Chrome和Firefox上注销用户 - 但在Safari中,我可以按后退按钮(在注销后立即)并仍然可以看到安全内容.如果我刷新安全页面,它会将我引导到登录屏幕(应该如此).

我尝试过使用:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
Run Code Online (Sandbox Code Playgroud)

......但它没有效果.有人可以提供任何建议吗?我发现这篇关于浏览器缓存的文章,但我还没有在其中找到答案......虽然我确实找到了:

<?php
 Header("Cache-Control: must-revalidate");

 $offset = 60 * 60 * 24 * 3;
 $ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) …
Run Code Online (Sandbox Code Playgroud)

php session

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

是$(function(){}); 和$("document").ready(function(){}); 相同?

我一直很喜欢Lynda.com的Jquery Essential Training,我注意到教练在开始时使用:

    Fig. 1

    $("document").ready(function(){
    fun stuff goes here
    });
Run Code Online (Sandbox Code Playgroud)

然而,在他开始使用的某个地方:

    Fig. 2

    $(function(){
    fun stuff goes here
    });
Run Code Online (Sandbox Code Playgroud)

从他说话的方式来看,听起来好像是完全同义的(一些固有的jquery简写?)但据我所知,它从未被明确触及过.

我相信有人可以为我快速解决这个问题.我发现了这一点,但我认为这个问题略有不同 - 我理解在文档就绪上调用函数的概念与全局可用函数的概念; (这些功能也有名字.)

教师使用幻象函数(我认为这是一个没有名字的函数的术语),当输入图2时,他说"所以这将是文档就绪......"

javascript jquery

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

如何在表单自动填充时触发 Javascript 表单处理程序?

我构建了一个类似于 Twitter 登录的表单,即。每个都有一个<span>标签<input>...然后在按键时,标签将其字体大小设置为 0。这是一个很酷的效果。

我注意到的问题是,如果您使用表单自动填充程序,则只有触发初始按键事件的表单才能正确为其标签设置动画 - 其他标签不会正确地设置动画,从而与输入的值重叠。

我的问题是......如何弥补这一点?当表单自动填充器输入输入值时会触发哪些事件,更具体地说,我将如何通过 jQuery 使用它们?

。。。

表格样本如下:

<div class="name">
    <input class="name" name="name" type='text' value="<?php echo $name; ?>">
    <span>Full Name</span>
</div>
Run Code Online (Sandbox Code Playgroud)

。。。

下面的 jQuery 示例:

$(function(){
    // On document ready, check form fields
    $(':input').each(function() {
        if($(this).val() === "") {
            $(this).next('span').animate({fontSize:16},'fast');
        }
    });

    // On form focus, adjust colors
    $(':input').focus(function() {
        $(this).addClass('focus');
        $(this).next('span').addClass('focus');
    });

    // On keypress, remove label
    $(':input').keypress(function() {
        $(this).next('span').animate({fontSize:0},'fast',function(){
            $(this).hide();
        });
    });

    // On form blur, restore colors and label …
Run Code Online (Sandbox Code Playgroud)

jquery events

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

使用crypt(),我的应用程序如何验证随机生成盐的密码?

我一直在关注PHP的crypt函数和Stackoverflow上的一些问题,而我正试图找出salted和hashed密码.

我在PHP社区页面上找到了这个:

<?php
function md5crypt($password){
    // create a salt that ensures crypt creates an md5 hash
    $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
                    .'abcdefghijklmnopqrstuvwxyz0123456789+/';
    $salt='$1$';
    for($i=0; $i<9; $i++){
        $salt.=$base64_alphabet[rand(0,63)];
    }
    // return the crypt md5 password
    return crypt($password,$salt.'$');
}
?>
Run Code Online (Sandbox Code Playgroud)

这样的事情与以下相比如何:

<?php
// Slightly modified example from PHP community page

$password = trim(mysql_prep($_POST['password']));

// Get the hash, letting the salt be automatically generated
$hashed_password = crypt($password);
?>
Run Code Online (Sandbox Code Playgroud)

以下是另一个问题的摘录:

但是,PHP crypt()函数可以使用各种不同的哈希值来计算哈希值.当您使用"$ 1 $"为盐添加前缀时,您将获得带有MD5的哈希值.当你用$ 2 $加前缀时,你会得到一个带有河豚的地穴,这样更安全.

"$ 1 $"以输出为前缀,以便验证散列.如果没有包含,则无法从存储的哈希中知道应该使用哪种算法!这些信息必须存储在其他地方.为了节省您的麻烦,PHP在哈希输出中包含了算法.

我的头脑有点关于哈希,加密和盐...但真正让我感到困惑的部分是,我如何比较一个用户输入password的 …

php passwords hash

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

get_class_vars() 未显示变量,但在同一类上运行的 property_exists() 返回 true

我正在学习 PHP,并且我已经开始使用类——下面可能是最基本的对象,哈哈。

<?php

    class Person {

        var $first_name;
        var $last_name;

        var $arm_count = 2;
        var $leg_count = 2;

        function say_hello() {
            echo "Hello from inside the class " . get_class($this) .".<br />";
        }
        function full_name() {
            return $this->first_name . " " . $this->last_name;
        }
    }

    $person = new Person();

    echo $person->arm_count . "<br />";

    $person->first_name = 'Lucy';
    $person->last_name = 'Ricardo';

    echo $person->full_name() . "<br />";

    $vars = get_class_vars('Person');
    foreach($vars as $var => $value) {
        echo "{$var}: {$value}<br />";
    }

    echo …
Run Code Online (Sandbox Code Playgroud)

php class object

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

解析错误:解析错误,期待我的MVC框架中的"T_FUNCTION"

我正在关注使用PHP创建你的第一个微小的MVC Boilerplate教程,据我所知 - 我的代码与Jeff的代码相同......但我收到了这个错误:

解析错误:解析错误, 在第8行的D:\ wamp\www\MVC_test\application\load.php中期待`T_FUNCTION'

load.php

<?php

    class Load {
        function view( $file_name, $data = NULL )
        {
            if( is_array($data) ) { extract($data); }
        }
        include 'views/' . $file_name;
    }

?>
Run Code Online (Sandbox Code Playgroud)

我尝试了一些不同的东西,但我不明白第8行有什么问题.

php

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

是否可以设计一个纯粹的管理类(不是要实例化),并使用所有静态方法?

在容器对象中,我创建了一个类Factory,它负责组装2种不同类型的数组:一个包含多个foo对象,另一个包含多个bar对象.

我打算把它们称为:

$this->foos = Factory::assemble_foos().

$this->bars = Factory::assemble_bars().

Factory会也理论上被称为更新/删除显式声明的对象/属性,因为这样的:

例如. Factory::destroy_bar( $bar_id )

例如. Factory::update_foo( $foo_id, $attr, $val )

但我对OOP和PHP相当新,并对我的方法感到好奇 - 我意识到这个Factory类纯粹是管理的,而且它从来没有打算实例化(或者至少从未实例化多次).

对于这种方法,有一个专门的静态方法,也许是一些静态属性,是否存在"不良实践"?我应该重新处理我的代码,以便我的容器对象实例化一个Factory,并使我的方法实例方法?

谢谢

php static class

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