摘要: 1.前、端后都要做好安全的把关工作 不能单靠前端做安全验证工作,后端也必须有过滤机制,检验前方传来的资料。由于Ajax也会接收后端传送来的资料,对这些资料都要采不信任态度,必须加以检查。 2.尽量以HTTP POST方法传输资料 使用GET方法容易让有心人士得到资料,虽然POST并非万无一失,但比起GET至少较为安全。 3.不要直接用eval函式唤起JSON物件 JSON是采用JavaScript物件实字的资料格式,从后端传到Ajax程式时,必须采用eval函式将它从字串转成物件,这时必须先行检查资料中是否有非法字元,以免非法程式借机启用。 4.限制使用者可用的HTML语法 许多Ajax网站允 阅读全文
posted @ 2012-09-14 23:11 风去无痕 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 真正的面向对象语言必须支持继承机制,即一个类能够重用(继承)另一个类的方法和属性。所有开发者定义的类都可作为基类,出于安全原因,本地类和宿主类不能作为基类。有时你可能想创建一个不能直接使用的基类,它只是用于给子类提供通用的函数,这种基数被看作抽象类。创建的子类将继承超类的所有属性和方法,包括构造函数及方法的实现。所有的属性和方法都是公用的,子类可直接访问这些方法,还可添加超类中没有的属性和方法,也可覆盖超类中的属性和方法。一、 继承的方式(1) 对象冒充:构造函数使用this关键字给所有属性和方法赋值(即采用声明的构造函数方式)。因为构造函数只是一个函数,所在可使ClassA的构造函数成为Cl 阅读全文
posted @ 2012-09-14 23:03 风去无痕 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1 typedef struct QNode 2 { 3 QElemType data; 4 struct QNode *next; 5 6 }QNode,*QueuePtr; 7 8 9 typedef struct 10 { 11 QueuePtr front, rear; 12 }LinkQueue; 13 14 15 void 16 InitQueue(LinkQueue *Q) 17 { 18 Q->front = Q->next = malloc(sizeof( struct QNode... 阅读全文
posted @ 2012-09-14 20:04 风去无痕 阅读(127) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h>#include <stdlib.h>#include <string.h>#define ElementType intstruct Node;typedef struct Node *PtrToNode;typedef PtrToNode Stack;int IsEmpty( Stack S); Stack CreateStack(void);void DisPoseStack( Stack S); void MakeEmpty( Stack S); void Push(ElementType X, Stack S); 阅读全文
posted @ 2012-09-14 13:57 风去无痕 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 5 6 typedef int ElementType; 7 8 struct TreeNode; 9 typedef struct TreeNode *Position; 10 typedef struct TreeNode *SearchTree; 11 12 13 SearchTree MakeEmpty( SearchTree T ); 14 Position Find(ElementType X,SearchTree T); 15 Position Fin... 阅读全文
posted @ 2012-09-13 22:39 风去无痕 阅读(208) 评论(0) 推荐(0) 编辑
摘要: C语言,结构体(struct) 用法结构(struct) 结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。结构中可以使用不同的数据类型。 1. 结构说明和结构变量定义 在Turbo C中, 结构也是一种数据类型, 可以使用结构变量, 因此, 象其它类型的变量一样, 在使用结构变量时要先对其定义。 定义结构变量的一般格式为: struct 结构名 { 类型 变量名; 类型 变量名; ... } 结构变量; 结构名是结构的标识符不是变量名。 类型为第二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和无值型)。 构成结构的每一个类型变量称为结构成员, 它象数组的元素一样, 阅读全文
posted @ 2012-09-13 12:06 风去无痕 阅读(651) 评论(0) 推荐(0) 编辑
摘要: int Partition(int a[], int p, int r){ int left =p; int right = r; int provint = a[left]; while( left < right) { while( left < right && a[right] >= provint) right --; a[left] = a[right]; while(left < right && a[left] <= provint) left ++; a[right] = a[le... 阅读全文
posted @ 2012-09-09 15:59 风去无痕 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 归并排序的程序: voidmergeSort(int a[], int first, int last, int temp[]){ int mid ; if ( first < last) { mid = (first + last)/2; //分解 mergeSort(a,first,mid,temp); mergeSort(a,mid +1,last,temp); //合并 mergeArray(a,first,mid,last,temp); }}voidmergeArray(int a[],... 阅读全文
posted @ 2012-09-07 15:52 风去无痕 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 - 程序结束后由系统释放。 4、文字常量区 —常量字符串就是放在这里的。 程序结束后 阅读全文
posted @ 2012-09-06 18:48 风去无痕 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 今天在zend framework中设置cookie ,如 a.text.com/test/a 设置了cookie只能在test下获取cookie,而在a.text.com/test1/a下获取不到cookie 原因是因为在使用setcookie时没有指定path为'/'导致path只有在test生效。 阅读全文
posted @ 2012-08-31 10:11 风去无痕 阅读(399) 评论(0) 推荐(0) 编辑