[b][size=18px]纯C语言开发的网站开源了![/size][/b][/align] [align=center]空间 commit 代码 纯C语言 #include <stdio.h> #include <winsock2.h> //用来做缓存 #include <stdlib.h> #include <time.h> #include <windows.h> #include "E:\\TengYunJiaWuSpach\\register\\tengyunjiawucache.h" //内存网络集群缓存 #include "E:\\TengYunJiaWuSpach\\register\\WuWeiDataStruct.h" //相关数据结构定义 #include "E:\\TengYunJiaWuSpach\\register\\WebLiberary.h" //相关 get post head 参数解析 #include "E:\\TengYunJiaWuSpach\\register\\htmlfilter.h" //过滤和替换特殊字符,防止恶意攻击 去除 form 段 #include "E:\\TengYunJiaWuSpach\\register\\database.h" //腾云驾雾专用数据库 DAO 部分 #include "E:\\TengYunJiaWuSpach\\register\\cookies.h" #include "E:\\TengYunJiaWuSpach\\register\\base64ende.h" #include "E:\\TengYunJiaWuSpach\\register\\space.h" #include "E:\\TengYunJiaWuSpach\\register\\register.h" #include "E:\\TengYunJiaWuSpach\\register\\error.h" main() { char *address, *u; //空间名称 char *who, *baseusername; //加密用户 char *token; char *ct, *cm; //操作类型,具体操作 char *spRefURL; //HTTP_REFERER post 方式的 //post参数解析(这可是久经考验了!) loadurlparams(); ct = parambyname(&urlparamlist, "ct"); //操作类型 cm = parambyname(&urlparamlist, "cm"); //操作命令 CRUD spRefURL = parambyname(&urlparamlist, "spRefURL"); if(spRefURL==NULL) printf("Location: http://cangzhuo.cn\n\n"); token = strtok(spRefURL + 7, "."); if(token != NULL) { //判断空间是否存在 if(!CheckSpaceExist(token)) { //cookies参数解析(这可是久经考验了!) loadcookiesparams(); //在验证一下空间防止伪造空间 readspace(token); if(cookiesbyname(&cookiesparamlist, "username")) { baseusername = cookiesbyname(&cookiesparamlist, "username"); iniEnv(baseusername); if(ainitcookies.username[0]!=0) { //还是要验证一下密码防止伪造 cookies readuser(ainitcookies.username); if ( strcmp(oneuser.password, ainitcookies.password)==0) { //判断空间是否存在 if(ainitcookies.space[0]!=0) { //判断是否登陆用户自己的空间 if( strcmp( lowercase(token), lowercase(ainitcookies.space) ) ==0) { //只有这里可以执行对应提交命令 其他地方不可以 //...... 所有提交都在这里进行分类处理 if(strcmp(ct, "6")==0){LinkCommit(atoi(cm), token);} } else { //printf("2"); printf("Location: http://cangzhuo.cn\n\n"); } } else { //printf("4"); printf("Location: http://cangzhuo.cn\n\n"); } } else { //printf("5"); printf("Location: http://cangzhuo.cn\n\n"); } } else { //printf("6"); printf("Location: http://cangzhuo.cn\n\n"); } } else { //printf("7"); printf("Location: http://cangzhuo.cn\n\n"); } } else { //空间不存在 printf("Location: http://cangzhuo.cn\n\n"); } } else { printf("Location: http://cangzhuo.cn\n\n"); } fflush(stdout); return; } 上述代码是我最近新做的空间的千分之一的代码 我用了接近 2个月的业余时间,做了一个空间 完全采用 C语言开发的,与 baidu 空间大体上一模一样,包括界面也一模一样! 我想下周进行开放测试! 不知道 baidu 的大哥大姐,还有李老师有没有意见! 如果你们有意见的话,我就不开放测试了! 如果没有意见到时候请进行观摩! 没意见的话: 时间: 2007-12-22 日左右! 具体地址到时候我会写在: http://www.tengyunjiawu.com/come/1/36/1.html 程序完全由本人独自开发完毕! 粗略计算了一下:可以保证 5000W 注册用户! 我这次开发空间,增加了网络内存缓存集群! 网络内存缓存集群名词解释: 使用起来就好象你操作一台电脑的内存一样! 其实数据实质上是分布在 N 台电脑的内存中! |