自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

koastal的博客

学如逆水行舟,不进则退

  • 博客(194)
  • 资源 (6)
  • 收藏
  • 关注

原创 百度贴吧“神来一句”功能分析

最近需要为论坛做一个类似百度贴吧的“神来一句”的功能,对其相关实现进行了分析,并给出自己的实现方式。

2017-04-17 15:00:40 1018

原创 二级域名之间共享cookie

简介login.koastal.com设置domain为koastal.com,则www.koastal.com即可访问该cookie。 也就是说二级域名(或者三级域名)之间可以通过这种方式共享cookie。 其实cookie的domain属性的用法跟path有些类似,比如我们将cookie的path设置为/,则/user目录下也可以访问该cookie。实践Apache同一端口对应不同域名htt

2017-04-12 19:57:57 4556

原创 军训队列

题目地址http://exercise.acmcoder.com/online/online_judge_ques?ques_id=1650&konwledgeId=136题目描述某大学开学进行军训队列训练,将学生从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列剩下的依次向前靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的依次向前靠拢,继续从头开始进行

2017-02-28 23:42:15 1414

原创 翻转数组

题目地址http://exercise.acmcoder.com/online/online_judge_ques?ques_id=1656&konwledgeId=134题目描述给定一个长度为n的整数数组a,元素均不相同,问数组是否存在这样一个片段,只将该片段翻转就可以使整个数组升序排列。其中数组片段[l,r]表示序列a[l], a[l+1], …, a[r]。原始数组为 a[1], a[2],

2017-02-28 15:38:03 546

原创 股神

题目地址http://exercise.acmcoder.com/online/online_judge_ques?ques_id=1664&konwledgeId=134问题描述有股神吗? 有,小赛就是! 经过严密的计算,小赛买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天…依此类推。 为方便计算,假设每次涨和跌皆为1

2017-02-28 14:25:16 800

原创 在线答题系统的设计

系统说明共100道不定项选择题,存储在MySQL数据表(ques)中每个考生的题目顺序不一样150人同时答题和交卷系统设计时间同步要求考生在同一时间进行交卷,就要统一时间。因此我们以服务器时间为准,在考生登录时获取服务器时间作为开始时间。打乱题目顺序使用mysql中的by rand()方式打乱题目顺序,其中rand种子是考生的考号。可以保证每个考生的题目顺序是不同的,但是又能保证自己题目的顺

2017-01-08 13:53:44 13016 3

原创 Redis进行数据排序

大学时做过一个在线答题系统,考生在规定时间内作答100道不定项选择题,考试结束后系统自动算分。因为很多考生同时作答,答案都需要往同一个数据表里面写,会因为数据表被锁而导致响应速度过慢。因此,采用Redis缓存技术将考生的答题信息记录在服务器内存中,在考试结束之后再写入到MySQL数据库中。当时在设计系统时,计算考生分数并排名是在数据写入到MySQL数据库之后进行的。也就是说需要将考生的答题记录取出,

2017-01-07 23:46:00 6484

原创 无序子集合个数问题

现有A-H共8个字母,从中选出3个元素,可以重复选择,但是得到的集合是无序的,请问共多少个这样的集合?例如 {A,B,C}和{B,A,C}算是一个集合#include<iostream>using namespace std;int main(){ char ele[8] = {'A','B','C','D','E','F','G','H'}; int num[1000];

2016-12-28 08:54:12 701

原创 利用nodemailer发送邮件

nodemail文档地址: https://nodemailer.com/其中2.x与1.x发送邮件的方式有些不同,下面是2.x发送邮件的方式var nodemailer = require('nodemailer');var start = Date.now();console.log(start);var smtpConfig = { host: 'smtp.163.com',

2016-12-19 11:10:28 1682

原创 socket.io实现私聊

socket.io官网api地址 http://socket.io/docs/server-api/socket.io官方api以及很多教程都知识介绍了广播消息和在当前会话发送消息,在很多时候我们需要实现向某个指定的在线用户发送消息,也就是所谓的“私聊”。socket.io服务端基本代码结构var app = require('http').createServer(handler)var io

2016-12-15 22:06:50 14673 2

原创 基于express和mongodb的任务管理系统

安装mongodb http://www.runoob.com/mongodb/mongodb-window-install.htmlwindows平台下,推荐使用Robomongo工具管理mongodb数据库。安装nodejs http://www.runoob.com/nodejs/nodejs-install-setup.html首先全局安装expresshttp://www.expres

2016-12-15 09:53:30 1552

原创 基于timestamp和nonce的防止重放攻击方案

以前总是通过timestamp来防止重放攻击,但是这样并不能保证每次请求都是一次性的。今天看到了一篇文章介绍的通过nonce(Number used once)来保证一次有效,感觉两者结合一下,就能达到一个非常好的效果了。 重放攻击是计算机世界黑客常用的攻击方式之一,所谓重放攻击就是攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程。首先要明确一个事情,重...

2016-12-04 21:32:44 40338 38

原创 getopts函数中使用

最近在学习shell编程方面的内容,学习shell编程主要是为了更好的学习和掌握一些linux方面的技术。学习shell脚本的主要目的是更加方便高效的使用linux中的各种命令,更好的完成一些基本操作。对于一些更加复杂的操作,例如复杂的运算,操作数据库和文件等,个人觉得使用perl或者python比较好,python用的更加普及一些,不过perl和php的语法结构比较相似,学习成本比较低,所以打算近

2016-11-20 22:02:49 856

原创 基于Base64的对称加密

base64加密辨识度太高,很多开发人员都能通过明文看出这种加密方式,然后解密得到明文。我们可以通过对密文进一步加工,使别人无法直接使用base64解密得到明文。下面的代码是.net语法,基本思路是将加密之后的密文的后面的一小部分保留,然后我们将前面偶数位的密文,分成两部分前后调换,解密的思路与之是一样的。class Tool{ public string Encrypt(string p

2016-11-17 11:07:37 2750

原创 shell通过telnet调用http和smtp协议

expect命令简介Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。常用语ssh和telnet等需要进行人机交互的命令。以前写过一个expect实现ssh跳转登录的例子:http://blog.csdn.net/koastal/article/details/52434314基本结构## 如果expect文件不存在,需要安装 yum install expec

2016-11-13 22:03:34 4523

原创 php通过socket调用http和smtp协议

socket发送HTTP请求http协议请求报文格式get## 请求方法 请求文件路径?查询字符串 HTTP/协议版本号## Host: 主机名:端口号## Connection:closepost## 请求方法 请求文件路径 HTTP/协议版本号## Host: 主机名:端口号## Content-type: application/x-www-form-urlencoded## Con

2016-11-13 16:24:07 2225

原创 .net重启zabbix服务

使用zabbix监控位于局域网中的主机,由于被监控主机没有公网ip,所以使用主动式zabbix_agentd进行监控。主动式监控(zabbix_agentd主动向zabbix_server发送数据)配置文件#### 日志文件位置LogFile=c:\zabbix_agentd\zabbix_agentd.log#### 禁用被动模式StartAgents=0#### 主动上传数据ip地址Ser

2016-11-11 09:18:38 1057

原创 web缓存技术

web缓存包括浏览器缓存,数据库缓存,代理服务器缓存。代理服务器缓存反向代理服务器,在数据转发过程中,可以缓存一些数据,以提高响应速度。 这个了解的不多,不多写了。数据库缓存我们可以将一些读取非常频繁的数据,比如访问次数,表单中显示的数据等,存储在redis,memcached等基于内存的nosql数据库中,作为缓存,提高响应速度。读取缓存失败时,将会从mysql中取数据,并设置redis相应的数

2016-11-09 11:12:36 864

原创 web服务器配置gzip压缩

什么是gzip压缩 HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%.这样传输就快了,效果就是你点击网址后会很快的显示出来.当然这

2016-11-04 23:33:30 3994

原创 PHP中散列密码的安全

php的基本哈希函数已经不再安全?php手册中有专门的一个部分来介绍这个问题 http://php.net/manual/zh/faq.passwords.php很多应用,都是将用户的密码都是直接通过md5加密直接存储到数据库中的,包括我最近在用的开源项目zabbix的web管理界面。$password = "1234";$hash = md5($password);echo $res;php

2016-11-04 20:49:25 1131

原创 http重定向总结

301 “HTTP/1.1 301 Moved Permanently”, 302 “HTTP/1.1 302 Found”, 303 “HTTP/1.1 303 See Other”, 307 “HTTP/1.1 307 Temporary Redirect”,302状态码是为了兼容HTTP1.0的,在HTT

2016-11-03 20:47:14 1154

原创 无刷新文件上传

使用FromData通过XHR上传使用ajax技术,能够以xhr的方式,实现无刷新的表单数据的提交和响应。但是这种方式仅仅能够传递一般的参数,也就是以字符串的形式传递key和value。XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttpRequest的

2016-11-01 12:12:45 467

原创 多文件上传

基于HTML5的多文件上传html5的上传文件标签,支持multiple属性,可以使我们很方便的选择多个文件进行上传。前台上传文件页面 index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>多文件上传实例</title></head><body><div style="w

2016-11-01 12:09:51 622

原创 PHP提高SESSION响应速度的几种方法

设置多级目录存储SESSION将SESSION存储到redis中及时释放SESSION锁如果网站中大量的使用了ajax技术,则在高并发的情况下有可能会发生SESSION请求被阻塞的情况,也就是执行session_start()失败的情况。这只因为上一个操作该session_id对应的文件还没有释放,接下来操作的请求就不能满足,导致死锁。我们可以通过下面的几种方法缓解SESSION死锁的情况:不要滥用

2016-10-31 20:56:03 3449

原创 基于session.upload_progress 的文件上传进度显示

介绍session.upload_progress 是PHP5.4的新特征。 当 session.upload_progress.enabled INI 选项开启时,PHP 能够在每一个文件上传时监测上传进度。 这个信息对上传请求自身并没有什么帮助,但在文件上传时应用可以发送一个POST请求到终端(例如通过XHR)来检查这个状态。 当一个上传在处理中,同时POST一个与INI中设置的s

2016-10-31 11:05:33 5618 5

原创 浅析XSS和CSRF攻击及防御

XSS攻击CSRF攻击XSS和CSRF的关系XSS防御CSRF防御总结以上介绍的攻击和防御方法都是一些基本的情况,所介绍的防御机制并不能保证绝对安全,但是应该可以防御一般的攻击情况了,我们做了这些处理总是比没做要好,不是么?

2016-10-23 22:41:31 8061 2

原创 宏定义函数

什么是宏定义宏定义也可以成为“宏代换”,C语言提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。宏定义和操作符的区别是:宏定义是替换,不做计算,也不做表达式求解。c语言编译工具会在预处理阶段,将宏名替换为字符串。所以,我们可以把宏定义理解为,发生在程序编译之前的字符串替换操作。#include<stdio.h>#define VAL 2.5int main(){

2016-10-21 19:44:08 10551 5

原创 swoole多进程操作

多个任务同时执行 将顺序执行的任务,转化为并行执行(任务在逻辑上可以并行执行)比如,我们要对已知的用户数据进行判断,是否需要发送邮件和短信,如果需要发送则发送。不使用多进程时,我们首先判断是否发送邮件,如果需要则发送;然后再判断是否需要发送短信,如果需要则发送。如果发送邮件耗时2s,发送短信耗时2s,那么我们完成任务大概需要4s左右的时间。如果我们使用多线程的话,可以开两个线程,一个用于处理邮

2016-10-20 12:18:12 11092

原创 swoole和redis异步任务

redis异步任务interface.php<?phpfor($i=0;$i<100;$i++){ $msg = "zhezhao[".$i."]"; $redis = new Redis(); $redis->connect("127.0.0.1"); $redis->publish("test",$msg); $redis->close();}han

2016-10-20 09:43:56 5785 2

原创 php通过pecl方式安装扩展

安装peclcd /usr/local/php/bin/wget http://pear.php.net/go-pear.phar -O go-pear.phpphp go-pear.php##回车默认安装安装php扩展pecl search key-word #用于查找扩展pecl install key-word #用于安装扩展查询相关扩展[root@localhost src

2016-10-18 16:56:30 7420

原创 使用swoole异步发送邮件

发送邮件的操作一般是比较耗时的,所以我们一般采用异步或者队列来执行。php使用redis的publish/subscribe也是一种不错的选择,这在以前的一篇博文中写过。 http://blog.csdn.net/koastal/article/details/52813669今天写一下,php语言本身是不支持异步操作的,不过我们可以通过swoole扩展实现异步功能,这个异步功能基于tcp协议,相

2016-10-16 23:35:49 5353 3

原创 linux挂载磁盘

查看磁盘信息fdisk -l结果显示这是有两块磁盘,分别是sda和sdb。对磁盘进行分区fdisk /dev/sdb# d 删除分区# n 新建分区# q 退出不保存# w 保存修改结果# p 该硬盘的分区信息格式化分区mkfs -t [ext3/vfat] /dev/sdb1挂载磁盘mkdir /mnt/databasemount -t [ext3/vfat] /mnt/database

2016-10-14 10:48:24 462

原创 php使用redis作为消息队列

安装redisredis不在centos官方源里面,需要手动下载EPEL(Extra Packages for Enterprise Linux)进行安装。 EPEL相当于是原来源的扩展,具体的介绍可以看下这两篇文章http://blog.chinaunix.net/uid-2469966-id-3916408.htmlhttp://f.dataguru.cn/thread-4792...

2016-10-14 10:26:08 12379 4

原创 zabbix二次开发——添加menu

如果所示,在zabbix菜单栏中添加一个错误收集器模块(Error Collector),有两个子栏目错误列表(Error List)和报警设置(Alert Seting)。需要修改两个地方1.\include\menu.inc.php Line 305 添加如下'collector' => [ 'label' => _('Error Collector'),

2016-09-26 15:36:28 4368 1

原创 zabbix 发送邮件脚本

关于如何zabbix发送邮件的文章有很多,但是关于zabbix发送邮件的脚本内容的资料却比较少。 下面是发送邮件的一个完整脚本。#!/bin/bash#export.UTF-8#extract paramsto=$1subject=$2body=$3#convert mailbodyFILE=/usr/local/zabbix/share/zabbix/alertscripts/mai

2016-09-25 19:24:43 2092

转载 OSI七层模型图解

原文地址: http://blog.csdn.net/yaopeng_2005/article/details/7064869

2016-09-21 17:10:45 425

原创 TCP连接的三次握手和四次挥手

三次握手三次握手是指的TCP连接建立的过程,是在客户端和服务器之间进行的,并且是由客户端开始的。客户端客户端在握手开始之前是CLOSED状态。当客户端向服务器开放的端口发送请求(SYN)以后,客户端就处于SYN-SEND状态收到服务器返回的连接确认消息(SYN+ACK)以后,客户端向服务器再发送消息(ACK)确认连接,发送完确认消息之后,客户端就处于ESTABLISHED状态。服务器服务器

2016-09-21 16:28:54 538

原创 反向代理技术实践

什么是反向代理?这篇博文介绍了正向代理和反向代理,以及他们的区别 http://blog.csdn.net/m13666368773/article/details/8060481 我又画了一张图,帮助理解正向代理 反向代理 (中间的文字写错了,应该是反向代理服务器)nginx设置反向代理nginx.confserver{ listen 80; server_name s

2016-09-21 11:07:58 584

原创 zabbix的安装和配置

设置防火墙关闭firewallsystemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动安装iptables防火墙yum install iptables-services #安装vi /etc/sysconfig/iptables #编辑防火墙配

2016-09-20 11:14:37 1636

原创 vs2015编写“windows服务”定时执行程序

参考文章: http://www.cnblogs.com/xujie/p/5695673.html上面的文章写的已经不错,有几点问题,进行了一下修改。1.System.Timers.Timer控件从工具箱中拖入在设计视图,工具箱,选择项,.NET Framework组件查找到System.Timers.Timer组件,然后勾选,确定。 再将刚才引入的Timer控件拖入调用。2.Timer控件通过

2016-09-13 17:02:11 4399

基于PHP的sso实例

基于PHP的sso实例

2016-05-29

MVC构架V2.0

PHP编写的MVC构建,集成了smarty模板和medoo数据库框架

2016-05-19

简单的MVC构架

MVC,Smarty

2016-05-18

Smarty3中文手册

Smarty3中文手册,使用方法可参考:http://blog.csdn.net/koastal/article/details/51423125

2016-05-16

psftp上传下载工具

psftp.exe可以方便的在windows和linux之间传数据。 使用方法http://note.youdao.com/share/?id=67fffbb40a84394766d83680eb9ff7df&type=note

2016-01-11

OAuth2.0新浪微博简单示例

帮助新手学习OAuth的一个很好的示例 http://blog.csdn.net/koastal/article/details/50282509

2015-12-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除