海运的博客

PHP和JS加密登录用户密码

发布时间:December 6, 2013 // 分类:PHP // No Comments

服务端通过生成随机数并设置session:

session_start();
$_SESSION["tk"] = substr(md5(time()),0,6);

<script type="text/javascript" src="/md5.js"></script>
<script type="text/javascript">
   function md5(form)
   {
         var session = "<?php echo $_SESSION['tk']; ?>";
         form.Password.value=hex_md5(form.Password.value.session)
   }
</script>

修改表单提交调用JS,提交type要为submit,不然无效。

<form id="Form_Login" method="post" action="login.php" onsubmit="md5(this)"> 

Debian7使用apt-get源安装LNMP

发布时间:December 5, 2013 // 分类:Nginx // No Comments

Debian7官方源添加了php-fpm软件包,现可通过apt-get快速安装部署LNMP环境了。
安装Mysql:

apt-get install -y mysql-server mysql-client

安装PHP:

apt-get install php5-cli php5-fpm php5-mysql php5-curl

安装Nginx:

apt-get install nginx-full

Nginx主配置文件为:

/etc/nginx/nginx.conf

调用虚拟主机配置文件目录:

/etc/nginx/sites-enabled/

修改默认虚拟主机配置文件支持PHP解析:

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #    # With php5-cgi alone:
    #    fastcgi_pass 127.0.0.1:9000;
    #    # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

PHP转多维数组为一维数组

发布时间:December 3, 2013 // 分类:PHP // No Comments

<?php
   function arr_foreach ($arr) 
   {
      static $tmp=array();  
      if (!is_array ($arr)) 
      {
         return false;
      }
      foreach ($arr as $val ) 
      {
         if (is_array ($val)) 
         {
            arr_foreach ($val);
         } 
         else 
         {
            $tmp[]=$val;
         }
      }
      return $tmp;
   }
   $a = array(1,2=>array(3,4=>array(5,6)),7);
   print_r(arr_foreach($a));
?>

使用for循环,只能遍历数字下标的数组:

<?php
   function arr_foreach($arr)
   {
      static $tmp=array();  

      for($i=0; $i<count($arr); $i++)
      {  
         if(is_array($arr[$i]))
         {  
            arr_foreach($arr[$i]);  
         }else{  
            $tmp[]=$arr[$i];  
         }  
      }  

      return $tmp;  
   }  
   $a = array(1,array(3,array(5,6)),7);
   print_r(arr_foreach($a));
?>

PHP简单加密解密函数

发布时间:December 3, 2013 // 分类:PHP // No Comments

<?php
   function url_base64_encode($string) {
      $data = base64_encode($string);
      $data = str_replace(array('+','/','='),array('-','_',''),$data);
      return $data;
   }

   function url_base64_decode($string) {
      $data = str_replace(array('-','_'),array('+','/'),$string);
      $mod4 = strlen($data) % 4;
      if ($mod4) {
         $data .= substr('====', $mod4);
      }
      return base64_decode($data);
   }

   function encrypt($key, $str) {   
      $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_DEV_URANDOM);
      $str_encrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$key,$str,MCRYPT_MODE_ECB,$iv);
      return trim(url_base64_encode($str_encrypt));   
   }   

   function decrypt($key, $str_encrypt) {   
      $str_encrypt = trim(url_base64_decode($str_encrypt));   
      $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_DEV_URANDOM);
      $str_decrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$key,$str_encrypt,MCRYPT_MODE_ECB,$iv);
      return trim($str_decrypt);
   }
   echo encrypt('key','http://www.baidu.com////aaaa/bbbb/ccd//ddd')."\n";
   echo decrypt('key','zPsrxzCmqAAvlLwv4E7AlI346XTbaw1hAOoPZhtD3sKw__EIxmWpyHTEp4u2skGM')."\n";

?>

PHP获取域名所有MX A记录

发布时间:December 3, 2013 // 分类:PHP // No Comments

<?php
   if (getmxrr("qq.com", $mxhosts, $mxweights)) {

      foreach ($mxhosts as $host) {
         $hosts[] = dns_get_record($host, DNS_A);
      }
   }
   function getall_by_key(array $arr, $key){  
      if (!trim($key)) return false;  
      preg_match_all("/\"$key\";\w{1}:(?:\d+:|)(.*?);/", serialize($arr), $output);  
      return $output[1];  
   }  
   print_r(getall_by_key($hosts, 'ip'));  
?>
分类
最新文章
最近回复
  • spartan2: https://dashboard.hcaptcha.com/welcome_accessib...
  • 海运: 应该能,在购买页面先手工跳过cf机器验证,后续一定时间内不更换ip应该不会再次验证。
  • spartan: 大佬斯巴达开启了CF的机器识别验证,请问插件能自动跳过吗? 另外这个脚本有没有简单使用说明,新...
  • vincent: 膜拜大佬
  • 海运: proxy-header或proxy_protocol
  • liangjw: 如果是 内部调用 或者 中间存在 代理 而上一个代理又在内网 ,那怎么处理来自代理私有IP?
  • chainofhonor: 感谢,用dnsmasq设置自动判断BIOS和UEFI成功了
  • 海运: 不好意思,这个是很多年前的,现在也许已经不适用,我现在也不用多线了。
  • CQ: -m state --state NEW 替换成-m conntrack --ctstate NEW
  • CQ: 你好,我入站已经成功分流,但是不知道出站怎么设置,PREROUTING替换成POSTROUTI...