Hot For Coding
  • MySQL5.6 Using a password on the command line interface can be insecure

    最近把MySQL从5.5升到5.6以后,mysqldump居然不好用了,提示

    [root@qttc ~]# /usr/local/mysql/bin/mysqldump  -uroot -proot db > bak.sql
    Warning: Using a password on the command line interface can be insecure.
    

    这让人有点奇怪,5.5用的一直都很爽,到5.6居然说命令行方式写密码不安全?那密码写哪呢?

    在官网文档找到了原因

    MySQL users should use the following guidelines to keep passwords secure.
    When you run a client program to connect to the MySQL server, it is inadvisable to specify your password in a way that exposes it to discovery by other users. The methods you can use to specify your password when you run client programs are listed here, along with an assessment of the risks of each method. In short, the safest methods are to have the client program prompt for the password or to specify the password in a properly protected option file.

    ...

    READ ALL

  • SWFUpload上传提示Security Error 2049

    很早之前,我写过一篇基于PHP版本的SWFUpload上传组件的文章,最近老是收到不少朋友询问SWFUpload的问题,决定再整理一些最常见的问题整理出来。

    点击hello弹不出选择文件对话框

    这是由于你没有基于HTTP协议访问引起的,你可以把它放到WebServer里试一试,比如Nginx,Apache,Tomcat等等,然后使用http访问页面

    上传文件提示Security Error 2049

    full

    这是很多朋友经常犯的错误,JavaScript有跨域问题,Flash做为前端组件自然也存在跨域问题,解决此问题的方法是在upload域下创建如下文件:

    ...

    READ ALL

  • Java sleep和yield区别

    yield和sleep都是作用于当前线程

    yield方法会临时暂停当前正在执行的线程,让有同样优先级等待的线程有资源执行。如果没有正在等待的线程,或者所有正在等待的线程的优先级都比较低,那么该线程会继续运行。执行了yield方法的线程什么时候会继续运行由线程调度器来决定,不同的CPU可能有不同的行为。yield方法不保证当前的线程会暂停或者停止,但是可以保证当前线程在调用yield方法时会放弃CPU。

    所以总结下来

    • yield和sleep都不释放锁
    • sleep只是暂停,之后继续
    • yield是让出CPU资源,等待下一次资源调度继续

    ...

    READ ALL

  • CentOS开机卡在进度条的解决方法

    CentOS开机的时候卡在进度条一直进不去

    full

    这看不出开机启动卡在哪里,只好重启按住"e"键,进入启动菜单

    full

    接着按e进入编辑第一项

    full

    然后移动到第二项kernel...接着按e进入编辑

    full

    去掉rhgb quiet字样

    full

    ...

    READ ALL

  • IE8动态创建script标签onload不工作

    今天做项目,发现一个奇怪的问题,动态创建的script标签在IE8下无法触发onload事件?请看示例代码

    var loadJs = function (src, fun) {
      var script = null;
      script = document.createElement('script');
      script.type = 'text/javascript';
      script.src = src;
      if (typeof fun === 'function') {
        script.onload = fun;
      }
    
      document.getElementsByTagName('head')[0].appendChild(script);
    };
     
    loadJs('http://code.jquery.com/jquery-1.11.0.min.js', function () {
      console.log('From jQuery');
    });
     
    loadJs('test.js', function () {
      console.log('From test.js');
    });
    

    ...

    READ ALL

  • Python一次has_key蛋疼的错误调试

    今晚像往常一样打开Aptana写Python程序时,一个has_key调用报错了,代码如下

    info = {}
    info.has_key("key")
    

    控制台

    Traceback (most recent call last):
      File "D:\workspace\aptana\test\main.py", line 8, in <module>
        print(info.has_key("email"))
    AttributeError: 'dict' object has no attribute 'has_key'
    

    ...

    READ ALL

  • Nginx Upload Module 上传模块

    传统站点在处理文件上传请求时,普遍使用服务器端语言处理,如:Java、PHP、Python、Ruby等。今天给大家介绍Nginx的一个模块,Upload Module上传模块,此模块的原理是先把用户上传的文件保存到临时文件,然后在交由后台页面处理,并且把文件的原名,上传后的名称,文件类型,文件大小等参数传给到处理程序。

    安装模块

    GitHub: https://github.com/vkholodkov/nginx-upload-module

    从GitHub上下载源码解压,进入nginx源码目录,重新./configure并且添加如下参数

    ...

    READ ALL

  • JavaScript获取窗口可视区域的宽高

    在jQuery中我们很容易就可以获取整个浏览器窗口可视区域的宽高:

    $(window).width();
    $(window).height();
    

    但是在JavaScript中如何获取这个值呢?关于获取这个值的说法网上一大堆,但大多数都是获取屏幕宽高,而非浏览器可视区域的宽高。因为屏幕大小对于网页来说不是很重要,但可视区域可就不一样了,用户可能随时改变浏览器的大小,所以获取浏览器可视区域的宽高可以动态调整一些需要JavaScript控制的内容。什么是可视区域呢?

    full

    ...

    READ ALL

  • 看看智联招聘是如何被注入恶意脚本

    事情得从修改Email开始,之前使用别的Email地址注册过,但最近需要修改下Email地址,让人恼火的是智联的Email格式验证貌似不支持自定义域名的邮箱,换句话说也就是只能支持常用邮箱。

    无奈搜索脚本发现如下代码:

    if (checkRegForm()) {
      var newEmail = $("#email").val();
      var oldEmail = $("#emailOld").val();
      $.ajax({
        url : "http://my.zhaopin.com/v5/handler/ChangeEmailHandler.ashx",
        dataType : 'jsonp',
        jsonp : 'jsoncallback',
        data : {
          "usermaster_id" : $("#uid").val(),
          "emailOld" : oldEmail,
          "email" : newEmail
        },
        success : function(json) {
          switch (json.status) {
            case "0":
              $("#emailOld").val(newEmail);
              $("#emailshow").val(newEmail);
              $("#email1").val(newEmail);
              $("#oldemail").html(newEmail);
              $("#emailtips a").html(newEmail);
              $("#newwid2").hide();
              $("#divMask").remove();
              $.popupDiv({
                title : "邮箱验证",
                url : "http://my.zhaopin.com/myzhaopin/activeEmail.asp?e=" + oldEmail + "&l=" + $("#loginNameOld").val() + "&t=" + Date.parse(new Date()),
                width : 414,
                heigth : 300
              });
              $("#email").val("").parent().addClass("cenclebtn");
              $("#email_info").text("");
              break;
            case "3":
              $("#email_info").html("必填项为空!");
              break;
            case "4":
              $("#email_info").html("email地址未做修改!");
              break;
            case "10008":
            case "10018":
              $("#email_info").html("用户不存在!");
              break;
            case "10028":
              $("#email_info").html("email已存在,请重新输入!");
              break;
            default:
              break;
          }
        },
        error : function() {
          alert("操作异常,请稍后重试!");
        }
      });
    }
    

    ...

    READ ALL

  • 一道经典的JavaScript面试题

    前两天一位朋友发邮件问了我关于这道经典的面试题,其实在这位朋友给我发邮件之前曾经也有人给我发过邮件询问过此类笔试题,思前想后觉得写出来给那些还正在解答此题中的朋友们。

    题的原型:

    var add = function (m) {
     
      var temp = function (n) {
        return add(m + n);
      }
    
      temp.toString = function () {
        return m;
      }
    
      return temp;
    };
     
     
    add(3)(4)(5); // 12
    add(3)(6)(9)(25); // 43
    

    ...

    READ ALL