2016-12-1 WEB项目第一天

今天开始学习WEB应用方面的知识,挺兴奋的,学了那么久的东西终于能实际拿出来用了,主要有益的方面就是能了解到WEB的一些功能的实现目标和方式,虽然自认为逻辑思维好,但是细节方面还是比不上经验老到的人。

首先是WEB的整体运行结构,先是用户请求PHP文件,PHP文件通过一定的规则从SQL中调用出数据并通过HTML展示。总的老说,HTML用于显示内容,PHP用于运算(动态网页的根本),SQL用于存储需要的数据。

===============================================================================

对HTML表单的复习

对于HTML的表单标签from(表单),通过自带的属性action=”PHP文件”来将整个表单的数据提交给指定的PHP文件处理,而属性method=’post’指定了数据的提交方式(一般用post,至少表单是如此)。而在PHP中通过常量$_POST来接受HTML提交的数据。

对于表单内的元素,通过给其指定name=’名(根据数据意义命名)’来指定需要提交数据的部分,而Value指定提交数据的默认值(这样理解更好记忆),value几乎只用于单选radio和多选checkbox。举例说明如下:

<input type=”radio” name=”gender” value=”male”>男

<input type=”radio” name=”gender” value=”female”>女

<input type=”radio” name=”gender” value=”secret”>保密

单选radio使用方法如上,因为radio没有确定的输出值,所以每个选项都需要定义自己的value值,如上:男=male;女=female;保密=secret。而每个选项提交的值也就是value所定义的值

还需要把各个选项的name值都设置为同一个来标识这几个radio属于一块,HTML会把name值相同的radio认为是一个选项列。

在接收radio传递的值时要在SQL的字段属性中设置 enum(‘male’,’female’,’secret’) 来限制写入的数据,虽然实际意义不大,但是能作为一个很好的标识。

Form中的多项选项同样需要定义同一个name值来标识多个多选选项为同一列,但是多选需要传递多个值,所以把name作为多选下标只能传递一个值。因此,多选选项的值传递的实现方法为把多选的值存入关联数组之后再通过name下标把数组传递出去:

<input type=”checkbox” name=”hobby[]” value=””>

也就是在定义name值时,使用数组来进行定义。

(存储时把数组转化为字符串存入SQL中[SQL不能存储数组])

Implode(‘,’$数组变量)用于把数组的元素拼接为字符串

===========================================================================

关于PHP接受数据

对于表单form来说,通过$_POST接受到的数据是一个数组,而元素的下标为各项定义的name值,元素的值为各项输入或者计算的值,像radio这种没有值的将会用value定义的值来使用。

(一般定义一个变量来独个存储$_POST中的元素值,e.g.:$user_gender=$_POST[gender]).

关于表单数据处理:

Empty()用于清除用户键入的空格。

Md5()用于对密码的加密,一般对密码加密后存储在数据库中,md5加密是一个不可逆的操作,但是同一串字符的md5码固定,所以当用户登陆需要进行密码比对时,将会把用户键入的密码经过md5加密操作后与数据库中的md5码比对,以此来达到技能验证密码,又保护了用户的数据安全。

===============================================================================

关于页面的问题

WEB的整个搭建一般遵从展示与运算分开的结构,也就是说HTML用于展示,而HTML里的动态展示方面由PHP实现,而PHP专门用于数据的处理。

也就是说,HTML的展示要建立在PHP之后,所以HTML不应该能被用户直接访问到,而应该是PHP请求才能访问。

通过APACHE的分布式配置文件(httpd-vhosts.conf)来实现:

<virtualhost *:80>

<Directory>

Allowoverride all

</Directory>

</ virtualhost >

文件.htaccess:

Deny from All

设置完毕后那么对应虚拟站的HTML就能实现拒绝访问的功能了。

===============================================================================

WEB应用

初始化文件

保存了最常用的基本代码,基本每个脚本都要用到。

Header(“content-type:text/html;charset=utf-8”);

Define(“DIR_ROOT”,str_replace(‘\\’,’/’,_DIR_).’/’);

Define(“DIR_CONFIG”,DIR_ROOT.’CONFIG/’);

Define(“DIR_CON”,DIR_ROOT.’controller/’);

Define(“DIR_CORE”,DIR_ROOT.’core/’);

Define(“DIR_MODEL”,DIR_ROOT.’model/’);

Define(“DIR_VIEW”,DIR_ROOT.’view/’);

Define(“DIR_PUBLIC”,’/public’);      //此处的/表示根目录

把需要重复多次使用的路径定义为常量方便使用。

===============================================================================

连接数据库

$link = mysql_connect(“localhost:3306”,’root’,’zhouyang’)

Mysql_query(‘set names utf8’);

Mysql_query(‘use 库名’);

===============================================================================

PHP使用函数

Trim()——去空格。

Empty()——判断是否为空,空则返回true、否则返回fales。

Header(“refresh:等待秒数;url=跳转到的文件”)——设置网页跳转。

Strlen()——返回字符串长度。

Mysql_query()——在SQL中运行指定命令。

目前项目还处于复习和重复设置阶段,期待项目之后的内容.

时间: 2024-11-02 09:33:43

2016-12-1 WEB项目第一天的相关文章

IntelliJ IDEA 12 创建Web项目 教程 超详细版

原文:IntelliJ IDEA 12 创建Web项目 教程 超详细版 IntelliJ IDEA 12 新版本发布 第一时间去官网看了下  黑色的主题 很给力 大体使用了下  对于一开始就是用eclipse的童鞋们 估计很难从eclipse中走出来 当然 我也很艰难的走在路上 ... 首先要说一点,在IntelliJ IDEA里面“new Project” 就相当于我们eclipse的“workspace”,而“new Module”才是创建一个工程. 这个和Eclipse有很大的区别 1.官

IntelliJ IDEA 12 创建Web项目 教程 超详细版(转)

IntelliJ IDEA 12 新版本发布 第一时间去官网看了下  黑色的主题 很给力 大体使用了下  对于一开始就是用eclipse的童鞋们 估计很难从eclipse中走出来 当然 我也很艰难的走在路上 ... 首先要说一点,在IntelliJ IDEA里面“new Project” 就相当于我们eclipse的“workspace”,而“new Module”才是创建一个工程. 这个和Eclipse有很大的区别 1.官网下载下来的默认不是黑色的主题 这里需要修改一下 工具栏上的扳手图标 或

【IneliJ 】使用IneliJ IDEA 2016将Java Web项目导出为War包

本文记录使用IDEA导出war包的过程以及碰到问题的解决办法 虽说现在改用IDEA进行开发了,但还是用eclipse打war包 ….囧 这样下去不是办法... 于是今天就试着使用IDEA进行打包. 项目使用SSH框架,没有用maven管理. 第一步配置Web Application:Exploded(已经配置的可以跳到第二步): 打开project structure(默认的快捷键是Ctrl+Alt+Shift+S),依次选择Artifacts>+>Web Application:Explod

Jetty和Tomcat运行Maven Web项目几种方法

目录 1.简介 2.采用Jetty和Tomcat运行Maven Web项目 1.简介 上一篇我们介绍了用Eclipse创建了Maven Web项目,接下来我们介绍怎么运行Maven Web项目方便我们开发和调试,这里使用的是Maven插件的形式引用进来的,这样耦合性比较低,我们需要什么样的工具就引入对应的插件就可以用.  2.采用Jetty和Tomcat运行Maven Web项目      1)采用Jetty运行Maven Web项目 第一步:安装Jetty插件到Eclipse上,首先Eclip

idea 中利用maven创建java web 项目

转自:http://www.linuxidc.com/Linux/2014-04/99687.htm 本文主要使用图解介绍了使用IntelliJ IDEA 12创建Maven管理的Java Web项目的过程. IntelliJ IDEA 的详细介绍:请点这里IntelliJ IDEA 的下载地址:请点这里 相关阅读: IntelliJ IDEA: 字体美化(anti-aliased)和字体添加 http://www.linuxidc.com/Linux/2013-11/92609.htm Int

tomcat部署java web项目遇到的一些小挫折

背景:本人不是Java开发人员,经过四年多的历练,可以说是一枚BI攻城师了吧,最近粗糙的写了一个Portal来集成cognos报表,下面就入正题说一下发布过程中遇到的小问题吧. a:前提:Java web项目已经在MyEclipse里面开发好,发布,利用MyEclipse8.5自带的tomcat运行,通过IE访问项目主页,登录验证一切OK b:把Java web项目导出为.war格式的文件放到tomcat/webapp下面 或者 在MyEclipse8.5中添加自己安装的tomcat6.0然后运

【读书笔记】2016.12.10 《构建高性能Web站点》

本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 1.1 等待的真相 1.2 瓶颈在哪里 1.3 增加带宽 1.4 减少网页中的HTTP请求 1.5 加快服务器脚本计算速度 1.6 使用动态内容缓存 1.7 使用数据缓存 1.8 将动态内容静态化 1.9 更换Web服务器软件 1.10 页面组件分离 1.11 合理部署服务器 1.12 使用负载均衡 1.1

记自己的第一个完整的java web项目

我是从asp.net平台转到java平台的.基于asp.net平台开发网站的快速便捷性,工作几年来大小网站多少也写了6.7个.但是转到java后,因为是在一家大公司,而且做的功能也比较单一,局限于此,一直未能使用java来写一个web站点.后来正好大学同学从事淘宝电商,让我帮他弄一个网站,所以我就想到了使用java来开发这个站点,正好练手一下java顺便也是使用一下bae,因为很早之前就接触到了BAE,但是问题在于无法部署asp.net的网站,所以只好作罢,这次正好是一个难得的机会.     考

IntelliJ IDEA 12创建Maven管理的Java Web项目(图解)

http://blog.csdn.net/zht666/article/details/8673609 本文主要使用图解介绍了使用IntelliJIDEA 12创建Maven管理的Java Web项目的过程. 本文PDF文档下载地址:http://download.csdn.net/detail/zht666/5141235 1.新建项目,选择Maven Module,输入项目名称,点击Next继续. 注意这里的Module就是项目的意思,等同于MyEclipse中的Project.  接着直接