海运的博客

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'));  
?>
分类
最新文章
最近回复
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
  • 孤狼: 擦。。。。apcupsd会失联 nut在冲到到100的时候会ONBATT进入关机状态,我想想办...
  • 海运: 网络,找到相应的url编辑重发请求,firefox有此功能,其它未知。
  • knetxp: 用浏览器F12网络拦截或监听后编辑重发请求,修改url中的set为set_super,将POS...
  • Albert: 啊啊啊啊啊啊啊啊啊 我太激动了,终于好了英文区搜索了半天,翻遍了 pve 论坛没找到好方法,博...