• 第一个动态网站的心得--细数建站跳过的坑!


    第一个动态网站的心得–细数建站跳过的坑!

    这是我第一次接到外快任务,也是第一次做动态网站!是为我的熟人–我们学校的数学社做一个新社员线上报名系统,由于需要在开学的百团大战前交付使用,从找到我给需求,到完成、测试可使用,一共不到10天时间,所以时间紧,过程也是异常波折,不过还好最后完成了。还是数学社的大家信任我,给我这次机会去各种试错,各种跳坑再爬起来!不过这次做了以后,发现自己远没有原来自认为的那么厉害,嗯给了我一个很好的警示,自己还是弱鸡还需要各种学习各种实践,自己掌握的还只是皮毛。好了,接下来数一数我第一次建站跳过的坑。先说明,我最后网站的实现是html+css+js,数据库用的access,用asp连接网页和数据库。

    1.刚接到任务的头两天,以为动态和静态一样简单

    刚接到任务时,由于只写过一个静态的页面,嗯我的个人主页,放在了Github上,所以我以为写这种需要读写数据的网站也和写静态页面一样简单,只要html类代码就好了,然后挂在Github之类的公共网站上就可以用了,果然too young。。。

    头两天写了个html+css+javascript的网页,把各种需求都写了,页面还有点漂亮,找了好几个好看的js库呢。写完以后突然想起页面是写了,但数据怎么存呢?这个时候才想起要做数据库,赶紧在网上查了查,发现github等版本管理网站只提供静态页面的服务(为什么我之前没发现?!肯定文档看得不认真!),像报名网站这种动态的需要连接数据库的网站,挂到github根本不能用。。。于是开始有点慌了,不过这时通过数学社学妹了解到数学社本身自己有网站,用的discuz论坛网站,可以写网页,有数据库。感觉像抓到救命稻草一样,立马转向用discuz开发了!毕竟discuz官网还是有给技术文档和论坛模版的,看起来也不是很难的样子。

    2.转战discuz,连续掉进两个坑。。

    花了半天时间看各种信息、文档,发现discuz平台用的是php+Mysql,等于我之前html白写了,我还尝试着挣扎一下,在网上查到论坛帖子可以内嵌html,所以想尝试一下,但是做了以后在才反应过来,这样放的还是一个静态网站,根本接触不到后端的数据库!无奈只好放弃。但是我看数学社网站的原作者学长都写的差不多了,如果我要写,其实也只要写一个php页面和调用数据库,不用写整个网站论坛,所以决心改用php。由于我完全没有接触过php,只好在网上下了个模版,但是完全没学过,修改的很不顺,很多东西只能用浏览器的“检查元素”一个个点着看才能看懂是什么(笑)。

    好不容易写好了这个php页面,要放进discuz后台了,发现不对劲,学妹给的管理员账号是能够进行各种权限操作,但是就是不能对网站的核心–php页面进行增删修改的动作,仔细看才发现discuz的后台就是封装好的,直接把功能抽象成小白都能使用的后台,不是真正的后端(我以前完全没了解过后端、服务器方面的知识)!我有点慌了,赶紧去找原作者学长,和他交流了以后,发现这个网站是没用独立的ftp的!如果需要上传,要把页面和数据库本地测试好以后,发给学长由学长代为上传。这样在线测试网站太麻烦了!而且如果有什么需要修改的也要麻烦学长,学长网站做好但不负责维护,他更不会把他的账号和密码给我,他的意思是我再租一个服务器,然后他把整个转到新服务器上,就算把网站交给我维护了。但是我也只是帮写个动态啊哪会维护论坛网站,所以我放弃了,只能另找办法。这时,我才真正重视起来,觉得应该好好研究下网站发布和使用了。在网上看了各种信息,最后选择用阿里云主机!自己重新做网站和数据库!

    3.使用云主机的得意与失意

    跳了那么多坑,我不敢再大意。仔细研究了阿里云主机windows版的配置:语言支持:asp,.net,html等,数据库支持:access,SQL server。我选择了asp+access的组合,毕竟这个网站的报名信息大概也就几千条,access比较熟悉好做,SQL server功能强大,但是没接触过,时间太紧不敢尝试。查了一下,发现asp是个好东西!asp可以把脚本语言、html、组件和web数据库访问功能结合在一起!同时还在网上发现了Dreamweaver,更是个好东西!DW不仅可以对网页可视化编程设计,在实时视图上可以看到网页更改效果,还支持通过设置站点,直接连接数据库,我的另一篇blog就有关于dw连接数据库的方法。而且网上也有很多关于云主机asp+access的教程,还是蛮有帮助的,所以重做asp网站还是比较快的(原来写的那版html舍弃了,原来为了好看调用了很多js模版,有的模版的可读性不太友好…)。

    因为一路做的都很小心,所以网站做的也很顺利。做完后用云主机赠送的域名进行在线测试,网站显示完整!数据库插入信息成功!这个时候真的超级高兴,急忙把域名发给学妹让她们测。结果学妹们都发来了无法访问的截图,显示因为网站没有进行备案,只允许开发者登号进入!我赶紧进行备案,但是这时发现问题有点严重了!按照阿里备案的流程,申请需要至少四五天。在线申请过审后,需要一两天等阿里寄幕布及把申请单发到河南,收到幕布后拍照上传,再等一两天过审,再等网管局确认核对,才算过。但是这时距离交付使用只剩3天,根本来不及!我在网上四处寻找解决办法,最后决定改用云服务器ecs,把网站搬过去!只是可惜了我一个月的云主机钱,108呢!(事后和别人交流得知,其实更好的办法是:一边备案,一边申请一个境外域名,这样跳出去再跳回来,就能避开国内域名备案期间不能开网站的问题了)

    4.云服务器的顺利和虚惊一场

    有了云主机的前车之鉴,我在购买云服务器前还特地打客服再三确认,境外服务器确实可以现做现用,才付款,而且更小心的选择了按时付费,万一不行包月就亏大了,而且报名网站也就才用三四天就可以撤了。云服务器其实就是多个云主机的集合,虽然一开始用需要对整个服务器进行配置,不过需要安装的计算机文件按照网上教程选,一步步做下来,繁琐是繁琐,但好歹顺利。终于把网站搬过来了。用自己的电脑在线测试一下,OK!再用自己手机的safari浏览器测试,OK!这一刻超级感动!于是用微信把链接发给学妹,让学妹测试。学妹们说现在都能打开网站看的首页了,但是填了所有数据提交以后,全都返回提交失败!我急忙打开微信尝试,发现同样的问题!明明填了数据也提交了,跳转的页面显示数据没有填,为空!但是我用自己的电脑和别人的电脑打开链接,信息却可以提交成功!赶紧在网上找原因,感觉可能是由于用了access,windows系统本身自带了access可以使用,但安卓系统和ios系统并没有access,可能是数据库在手机上不能使用,而造成的电脑上可以提交,手机却提交失败!于是,赶紧换了数据库,改用sqlite,因为sqlite既轻量又能在多平台上使用!用sqlite重新做了一个数据库,上线测试,在电脑上成功了,但是在微信上还是不行!怎么调都不成功。。。

    在都快要崩溃放弃时,我在把access的数据导入sqlite时发现,之前我们在微信内测试提交的数据其实都有提交到access数据库上!我顿时萌生了一个猜想:是不是可能微信把提交成功的返回信息给拦截了!我立马用手机浏览器safari打开,信息提交成功!为了证明不是个例,我下载了各种浏览器:百度浏览器、QQ浏览器、UC浏览器,还用安卓手机自带的ie浏览器测试,都可以成功提交!我再把数据库改回access,照样能提交。至此,真正原因终于找到了!并不是因为access在手机上不能使用(对于app制作才是),使用者都是对服务器进行访问,access在服务器上,又没有调用手机的数据库,所以不是access的错。真正的错误来自于微信!我自己仔细想了一下,以及问了老师和朋友以后,判断原因大概在以下几点中:

    1. 因为我租的是境外ip,微信为了安全,在访问网站之前会询问是否访问,不只访问首页时会,页面跳转时也会再问一次,可能就是这个询问导致了数据提交了,但是提交成功的信息在页面跳转时因为询问而被删除了。这样导致了跳转后的页面显示提交不成功,但实际我服务器的数据库已经能看到提交的数据了。

    2. 因为ip是阿里云的,是否有可能是背后的…竞争关系,导致微信会对页面附带的信息进行拦截。额…

    3. 有可能微信的浏览器功能并不健全,比较微信不是浏览器,平时能打开链接查看网页就不错了,可能并没有处理网页附带信息的模块,导致数据提交了,但是页面附带的判断提交是否成功的代码运行不了,导致跳转的页面识别成提交失败。

    前两条我也不能确认是不是这个原因,因为我的境内域名还不能用,测试不了,就不清楚到底是不是真的原因。。。(写完这篇blog后,尝试了下用云主机的ftp账号登还在备份的境内域名,然后在微信里测试,发现没有出现询问是否进入不安全网址的提示,而且结果也显示数据提交成功了!这样就说明猜想3不对,而这个境内域名也是阿里云的,猜想2也不对,原因应该可能就是猜想1了!)anyway,最后网站终于在deadline前顺利交付使用,只要注意不用微信填就可以了。

    总结:这次经历通过不断的跳坑、试错、找各种解决办法、爬出坑再跳另一个坑(…)积累了很多经验,所以才有了这篇心得,我觉得要是不把我对这些坑的感受和感悟写下来,真是对不起我跳的坑,对不起前两天在坑里苦苦挣扎的自己。。。anyway,现在写完交付了一身轻~不过这次时间太短,很多功能做的都很匆忙,网站有的地方还看的出做的很生涩,而且每次跳坑以后试错都不敢尝试太耗时间的方式,导致有很多好的东西没有去用(比如mysql我没有真正去写和使用,因为php用的别人模版;再如sqlite数据库的加密到现在对我来说还是个黑盒…)。很多现学的知识、代码写法也因为时间问题囫囵吞枣,来不及消化。所以,再也不敢自大到没完全了解需求、调查好制作要求和背景知识,就随便接下一个时间紧的任务了!谨记!用“永远是知识和技术的初学者”的心态前进!

    建站有帮助的网址:

    用ASP实现一个真正的注册页面
    ASP用户登录注册代码
    ASP网站如何测试
    用DreamWeaver作ASP时如何进行系统注册
    菜鸟学DreamWeaver做ASP
    怎样用access和dreamweaver做动态网站
    解决IIS7中出现An error occurred on the server when processing the URL错误提示的方法
    用ASP连接读写ACCESS数据库实例

  • 相关阅读:
    ssk文件 窗体皮肤
    子窗体加载时最大化出现异常不正常最大化显示
    android: ADB错误“more than one device and emulator”
    使用adb devices命令报:adb server version (39) doesn't match this client (41);killing
    测试需要关注的测试点以及测试优先级(一)——接口测试
    解决Jenkins可安装插件列表没有可选择插件问题
    Win10同时安装jdk1.7和jdk1.8
    Python中@staticmethod 和@classmethod 的区别
    windows下彻底删除jenkins
    selenium如何保证元素定位的成功率
  • 原文地址:https://www.cnblogs.com/sriting/p/6031977.html
Copyright © 2020-2023  润新知