web网页留言板代码(网站代码生成器)
大家好,关于web网页留言板代码很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于网站代码生成器的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
如何在网站内制作动态留言板,请详解!
楼主可以去我的论坛看,里面有图片,看起来更方便些,下面这个留言本绝对可行的
一、安装与调试
常听朋友感叹ASP程序难学不易懂,不过我起初学习这门技术的时候也有过这样的感悟。从今天开始,我将以我学ASP的经验来做一个简单的ASP留言本,这个留言本用了Access数据库,所以务必请大家要跟我一起做的朋友都安装好Office软件,相信各位自己的电脑上都有了。好了,开始。
创建ASP的运行环境(安装IIS)
IIS(Internet Information Service)是构建ASP站点所必须的,所以,我们应该先确认自己的电脑已安装了IIS信息服务,如果没有安装好的话,请按以下步骤:
1、打开“控制面板”
2、双击“添加/删除程序”
3、单击“添加/删除Windows组件”,打开添加/删除Windows组件对话框:
3、从下拉的列表中选择“Internet信息服务(IIS)”单击“下一步”:
4、出现组件安装进度窗口,如弹出需要安装盘的话,放入Windows2000安装盘,按提示操作即可。直至最后安装完毕。
二、设计数据库
ASP程序本身并不能储存数据,众所周知,留言本有以下信息需要保存:留言者姓名、联系方式、留言内容等等。因为ASP并不能储存数据,所以数据库在这种环境之下就产生了。数据库的种类也很多,针对不同的程序也有适用于它的数据库,比如Access和Ms SQL就比较适用ASP和ASP.net程序,至于其它的数据库和程序,就不属于本文所讨论的问题了,有兴趣的朋友可以查看其它一些资料。
那么既然Access和MS SQL都适用ASP,那么具体又如何来选择呢?我们可以打一个比方:比如钉一枚小钉子,聪明的人一定不会用一个大的棒槌,而是选择小的铁锤,虽然用大的棒槌也一样的可以把钉子钉进去,可是没有人愿意这样做。
数据库也一样:Access比较适用小型的应用,而MS SQL则适用于大中型的数据库应用,所以要做一个留言本,理所当然是选择Access更好一些,但是如果你决心使用MS,没有人会极力阻止你。好了,废话少说,切入正题,下面开始创建数据库。
Access是微软office办公软件中的其中一个,默认的安装Office是有这个Access的,好了,打开程序,开始了,GO!
进入实战了。打开程序后,出现一个对话框,这里我们选择第一个选项”空Access数据库”点击确定,弹出一个新建数据库的文件框,选择你上次你建的站点目录,起个data的文件名,点击创建,OK!双击”使用设计器创建表”打开表创建窗口”如图
创建表的结构如下表:
字段名称数据类型备注(笔者注释)
id自动编号设置“自动编号”
user文本留言者姓名
qq数字留言者的QQ,因为QQ号是由数字组成
email文本留言者的电子邮件
content备注留言内容
data日期/时间留言时间,设定默认值为Now()
数据库设计好了以后,可以直接在数据库里添加两条记录,以后测试时候用!
三、连接数据库
在上一节,我们已经为我们的程序创建了一个数据库,在这一节中,我们来用ASP把程序和数据库连接起来,以后就可以连接到数据库、在ASP中显示数据库中的数据以及更复杂的插入、修改和删除。
一起看以下代码,这就是ASP程序中常用的连接数据库的代码:
<%
set conn=server.createobject("adodb.connection")
connstr="Provider=Microsoft.jet.oledb.4.0;data source="&server.mappath("data.mdb")
conn.open connstr
%>
解释一下以上代码:
<%这是ASP程序的起始
set conn=server.createobject("adodb.connection")在服务器上创建了一个连接数据库的对象
connstr="Provider=Microsoft.jet.oledb.4.0;data source="&server.mappath("data.mdb")告诉ASP数据库的接接方法以及路径
conn.open connstr创建了对象后就用来打开数据库进行连接
%>一切OK了!结束ASP程序
将上面的代码另存为conn.asp文件,放在服务器目录下面就可以了。怎么样,简单吧?
四、制作留言本首页
前面我们已经连接好了数据库,就要让它在这里发挥一下作用了,这一节将讲述如何将数据库里的数据用ASP读取出来,在页面中显示出来,这样就等于是查看留言本了。
利用DW制作如下页面(这里我就不讲如何去做这个页面了,最后我将会给出HTML代码下载)
将制作好的文件存为index.asp,下面就创建数据记录集,用来显示数据库的数据到这个页面中:
用记事本打开index.asp,在页头加入以下代码:
<%@LANGUAGE="VBScript" codepage="936"%>
<!--#include file="conn.asp"-->
<%
set rs=server.createobject("adodb.recordset")
sql="select user,qq,email,content,data from main order by id desc"
rs.open sql,conn,1,1
%>
代码拷贝框
<%@LANGUAGE="VBScript" codepage="936"%>
<!--#include file="conn.asp"-->
<%
set rs=server.createobject("adodb.recordset")
sql="select user,qq,email,content,data from main order by id desc"
rs.open sql,conn,1,1
%>
[Ctrl+A全部选择然后拷贝]
解释一下:
第一行,表明ASP使用的是VB脚本
第二行,是用include包含文件,这里包含的是数据库连接文件。
第三行,ASP程序开始
第四行,利用Server内置对象创建一个记录集
第五行, SQL语句,这里的意思是选择数据库中的user,qq,email,content,data字段,指定该数据表的名称是“main”数据的排列顺序是倒序。
第六行,用刚才创建的名为rs的记录集打开数据库,设置属性为只读(1,1为只读数据,1,3为插入数据,2,3是修改数据。
这样就打开了数据库,接下来就可以显示了。
将“留言人”代替为“<%=rs("user")%>
“时间”代替为“<%=rs("data")%>
“留言内容在此”代替为“<%=rs("content")%>
“QQ”链接到:("qq")%>
“邮件”链接到:mailt<%=rs("email")%>
最后将“填写留言”链接 add.asp“管理留言”链接 admin.asp
好了,再次保存,浏览看看!
怎么了?只显示一条记录?原来我们在数据库里添加了两条记录的哦!还有一条呢?别急,因为我们没有指定ASP循环显示,所以就只有一条啦。。。
在刚才的代码后面添加一行
<%do while not rs.eof%>
并在页面的第一个表格的末尾加上
<%
rs.movenext
loop
%>
上面的代码就是说用rs记录集指针一条一条往下一条移动,直到末尾,loop是循环的意思。。哈哈,再次浏览这个文件
看明白了吗,这样就可以让数据库中的数据全部显示在页面中了。
五、制作添加留言页面,实现留言功能
我们是做的一个留言本,实现留言的功能就十分重要了,要不然就算不上留言本了,接下来就一起来实现这个功能。
用DW制作以下这样的页面:
设置表单的属性如下:
姓名:设置为单行文本域,名称为“user”
QQ号:设置为单行文本域,名称为“qq”
邮件:设置为单行文本域,名称为“email”
内容:设置为多行文本域,名称为“content”
最后将表单的“Action”动作指向addsave.asp就可以了。
保存文档名为add.asp,OK!下一步!
表单是做好了,但是还需要后台程序的支持,一起来使用ASP编写一个添加留言处理程序,添加留言代码:
<%@LANGUAGE="VBScript" codepage="936"%>表明ASP使用的是VB脚本
<!--#include file="conn.asp"-->是用include包含文件,这里包含的是数据库连接文件
<%
set rs=server.createobject("adodb.recordset")利用Server内置对象创建一个记录集
sql="select user,qq,email,content,data from main" SQL语句,上节有详解
rs.open sql,conn,1,3用刚才创建的名为rs的记录集打开数据库,设置属性为插入数据
rs.addnew用记录集新添加一条数据
user=request.form("user")请求表单的变量,定义变量为user,这里request.form是请求表单的意思
qq=request.form("qq")请求表单的变量,定义变量为qq,这里request.form是请求表单的意思
email=request.form("email")请求表单的变量,定义变量为email,这里request.form是请求表单的意思
content=request.form("content")请求表单的变量,定义变量为content,这里request.form是请求表单的意思
rs("user")=user将请求到的表单值传向记录集中代表user字段的名称
rs("qq")=qq将请求到的表单值传向记录集中代表qq字段的名称
rs("email")=email将请求到的表单值传向记录集中代表email字段的名称
rs("content")=content将请求到的表单值传向记录集中代表content字段的名称
rs.update更新一下数据库中的数据。
rs.close关闭记录集
set rs=nothing销毁记录集
conn.close关闭数据库连接
set rs=nothing销毁数据库连接
%>
代码拷贝框
<%@LANGUAGE="VBScript" codepage="936"%>表明ASP使用的是VB脚本
<!--#include file="conn.asp"-->是用include包含文件,这里包含的是数据库连接文件
<%
set rs=server.createobject("adodb.recordset")利用Server内置对象创建一个记录集
sql="select user,qq,email,content,data from main" SQL语句,上节有详解
rs.open sql,conn,1,3用刚才创建的名为rs的记录集打开数据库,设置属性为插入数据
rs.addnew用记录集新添加一条数据
user=request.form("user")请求表单的变量,定义变量为user,这里request.form是请求表单的意思
qq=request.form("qq")请求表单的变量,定义变量为qq,这里request.form是请求表单的意思
email=request.form("email")请求表单的变量,定义变量为email,这里request.form是请求表单的意思
content=request.form("content")请求表单的变量,定义变量为content,这里request.form是请求表单的意思
rs("user")=user将请求到的表单值传向记录集中代表user字段的名称
rs("qq")=qq将请求到的表单值传向记录集中代表qq字段的名称
rs("email")=email将请求到的表单值传向记录集中代表email字段的名称
rs("content")=content将请求到的表单值传向记录集中代表content字段的名称
rs.update更新一下数据库中的数据。
rs.close关闭记录集
set rs=nothing销毁记录集
conn.close关闭数据库连接
set rs=nothing销毁数据库连接
%>
[Ctrl+A全部选择然后拷贝]
将以上文件存为addsave.asp,测试下!咦?怎么填好提交以后就出现空白了,为什么?这是因为在addsave.asp中没有设置数据成功提交好后的转向页面,这里不用做那么复杂的,只要做一个刷新页面就行了,在程序的后面加上:
<meta http-equiv="refresh" content="2;URL=index.asp">
然后在页面中添加提示信息,比如:“您的留言已经成功提交,2秒钟后将自动返回留言本首页”
好了,这个留言的功能总算实现了,最后再测试下,看看效果!
OK!
六、制作管理登陆页面
留言本的管理功能对于留言本来说就不言而喻了,像论坛的登陆功能就是一个很好的例子,不过我们做留言本基本上有删除功能就行了,写这个教程是为了更多的ASP入门者更好的了解ASP,所以旨在学习用,当然也可以在这基础上添加更多的功能,比如回复留言者。
好了,开始了,还是按照以前的,用Dreamweaver做一个登陆页面,如下图:
把用户名的表单名称设置为admin,密码的表单名称设为password,把动作指向checkpass.asp,,存admin.asp这样登陆页面就好了,
下面就做检测密码的ASP程序了,看以下代码解释:
<!--#include file="conn.asp"-->把conn.asp包含进来连接数据库
<% ASP起始
admin=request.form("admin")定义admin的值是表单传过来的用户名域名称admin
password=request.form("password")定义admin的值是表单传过来的用户名域名称admin
if admin="" or password="" then这句的意思是假如用户名和密码没有输入的话那么执行下一句
response.Write("<script language=javascript>alert(请填写完整!);history.go(-1)</script>")用javascript脚本提示用户
end if结束if语句
sql="select* from admin where admin="&admin&" and password="&password&""这句很重要,我们放到后面讲
set rs=conn.execute(sql)设定记录集rs,用conn执行SQL语句
if rs.eof or rs.bof then当没有符合筛选结果时,则执行下面的句子
response.write"<script language=javascript>"
response.write"alert(用户或密码不对!);"
response.write"javascript:history.go(-1);"
response.write"</script>"用javascript脚本提示用户
else如果符合条件的时候
session("admin")=admin新建session,值等于表单传来的用户名
response.redirect"mymanage.asp"转向到mymanage.asp,进入管理页
end if结束if语句
%> ASP结束
代码拷贝框
<!--#include file="conn.asp"-->把conn.asp包含进来连接数据库
<% ASP起始
admin=request.form("admin")定义admin的值是表单传过来的用户名域名称admin
password=request.form("password")定义admin的值是表单传过来的用户名域名称admin
if admin="" or password="" then这句的意思是假如用户名和密码没有输入的话那么执行下一句
response.Write("<script language=javascript>alert(请填写完整!);history.go(-1)</script>")用javascript脚本提示用户
end if结束if语句
sql="select* from admin where admin="&admin&" and password="&password&""这句很重要,我们放到后面讲
set rs=conn.execute(sql)设定记录集rs,用conn执行SQL语句
if rs.eof or rs.bof then当没有符合筛选结果时,则执行下面的句子
response.write"<script language=javascript>"
response.write"alert(用户或密码不对!);"
response.write"javascript:history.go(-1);"
response.write"</script>"用javascript脚本提示用户
else如果符合条件的时候
session("admin")=admin新建session,值等于表单传来的用户名
response.redirect"mymanage.asp"转向到mymanage.asp,进入管理页
end if结束if语句
%> ASP结束
[Ctrl+A全部选择然后拷贝]
将以上代码保存为checkpass.asp
这样,用户在admin.asp页面中输入用户名和密码后,就把用户名和密码值传给checkpass.asp处理,当用户名和密码的值和数据库中的字段相匹配时,就进入mymanage.asp这个管理页面,同时建一个session,这个session的会话变量将在后面起作用,
七、制作管理页面
上节中讲的是制作登陆页面和检测用户,当用户名和密码正确时就转到管理页面,好了,开始实现它。
其实这个留言本的管理页面和用户直接看到的首页没有多大的区别,只是用了Session会话变量用作保护和增加了一个删除链接,当点击这个链接的时候,就会自动删除这条留言,好了,其本的目的知道了,那就GO!
刚才讲了,这个页面和首页的index.asp相似,那么就先复制就行了,然后再改一下
首先找到下面这句:
sql="select user,qq,email,content,data from main order by id desc"
把它改为
sql="select id,user,qq,email,content,data from main order by id desc"
这样,就选取到了id这个自动编号的值,以便删除留言时锁定这个id。
然后在“邮件”这个链接后面增加一个链接“删除”,链接:del.asp?id=<%=rs("id"),修改代码后为<a rel="external nofollow" href="del.asp?id=<%=rs("id")%>" onclick="return confirm(是否确定删除本留言?);">删除</a>这样,待会我们做del这个页的时候,就会知道为什么了!
改过后存为mymanage.asp
现在打开浏览器看看!
怎么不用输入用户名和密码都可进入呀?别急,上节中,我们不是建了一个session的会话变量,这时就派上用场了,直接用记事本打开。在<%@LANGUAGE="VBScript" codepage="936"%>这句的后面加上<%if session("admin")<>"" then%>这句,在末尾写上:
<%
else
response.Redirect("admin.asp")
end if%>
下面来讲解一下。
<%if session("admin")<>"" then%>就是说如果session这个("admin")的值不是空的话就执行。
<%
else
response.Redirect("admin.asp")
end if%>为空的话就转向登陆页,重新登陆,这样的话,直接输入网址的话就会跳到admin.asp,简单吧!
八、删除留言
上节我们增加了一个删除留言的链接,以下是这个del.asp的代码
<!--#include file="conn.asp"-->
<%
set rs=server.createobject("adodb.recordset")
id=Request.QueryString("id")
sql="select* from main where id="&id
rs.open sql,conn,2,3
rs.delete
rs.update
%>
很明了吧,才几句,第1、2、3句都不用我解释了,大家都在上几节中明白了。
第4句:
id=Request.QueryString("id")用id取值字符串中传的id,回头看一下删除的链接:del.asp?id=<%=rs("id")%>就是这个链接才把id的值传来的,<%=rs("id")%>是读取数据库中的自动编号字段中的id。
第5句:
用sql定义SQL语句,这里的*是通配符,表示所有,而Where有点像我们汉语中的“当”,整句话的意思是选择所有来自表名为main的字段,它的条件是当数据库中的id字段是字串所传来的id。如果这个没有的话这个一时间不明白也不要紧,慢慢接触就知道了。
第6句是打开符合条件的记录,确切的讲不应该叫记录集了,因为经过我们这样筛选的话,记录绝对是一条,2,3指定可以对数据库中的数据进入修改。
第7、8句
rs.delete看了就明白了,原来这才是整个程序的精髓,就是执行删除了。
rs.update这是更新数据库中的表,删除后就更新。
最后大家自己用rs.close和conn.close释放。
经过些学习,大家应该对ASP有所了解和认识了,这个做ASP留言本的教程就到此结束了。欢迎大家到新视野QQ群里面共同讨论学习。
用PHP编写留言版的代码
这个小程序一共包含6个文件,其中index.php是程序入口、post.htm是留言表单、在lib文件夹里Model、View、Controller三个文件分别实现MVC,DataAccess是一个简单的数据库访问类。
复制PHP内容到剪贴板
PHP代码:
<?php
/**
*一个用来访问MySQL的类
*仅仅实现演示所需的基本功能,没有容错等
*代码未作修改,只是把注释翻译一下,加了点自己的体会
*/
class DataAccess{
var$db;//用于存储数据库连接
var$query;//用于存储查询源
//!构造函数.
/**
*创建一个新的DataAccess对象
*@param$host数据库服务器名称
*@param$user数据库服务器用户名
*@param$pass密码
*@param$db数据库名称
*/
function __construct($host,$user,$pass,$db){
$this->db=mysql_pconnect($host,$user,$pass);//连接数据库服务器
mysql_select_db($db,$this->db);//选择所需数据库
//特别注意$db和$this->db的区别
//前者是构造函数参数
//后者是类的数据成员
}
//!执行SQL语句
/**
*执行SQL语句,获取一个查询源并存储在数据成员$query中
*@param$sql被执行的SQL语句字符串
*@return void
*/
function fetch($sql){
$this->query=mysql_unbuffered_query($sql,$this->db);// Perform query here
}
//!获取一条记录
/**
*以数组形式返回查询结果的一行记录,通过循环调用该函数可遍历全部记录
*@return mixed
*/
function getRow(){
if($row=mysql_fetch_array($this->query,MYSQL_ASSOC))
//MYSQL_ASSOC参数决定了数组键名用字段名表示
return$row;
else
return false;
}
}
?>
下面再来介绍一下Model类。
这个类也很简单,里面的函数一看就知道,是针对各种数据操作的,它通过DataAccess访问数据库。
复制PHP内容到剪贴板
PHP代码:
<?php
//! Model类
/**
*它的主要部分是对应于留言本各种数据操作的函数
*如:留言数据的显示、插入、删除等
*/
class Model{
var$dao;//DataAccess类的一个实例(对象)
//!构造函数
/**
*构造一个新的Model对象
*@param$dao是一个DataAccess对象
*该参数以地址传递(&$dao)的形式传给Model
*并保存在Model的成员变量$this->dao中
* Model通过调用$this->dao的fetch方法执行所需的SQL语句
*/
function __construct(&$dao){
$this->dao=$dao;
}
function listNote(){//获取全部留言
$this->dao->fetch("SELECT* FROM note");
}
function postNote($name,$content){//插入一条新留言
$sql="INSERT INTO `test`.`note`
(`id`, `name`, `content`, `ndate`, `add`)
VALUES(NULL,'$name','$content', NULL, NULL);";
//echo$sql;//对于较复杂的合成SQL语句,<br/>
//调试时用echo输出一下看看是否正确是一种常用的调试技巧
$this->dao->fetch($sql);
}
function deleteNote($id){//删除一条留言,$id是该条留言的id
$sql="DELETE FROM `test`.`note` WHERE `id`=$id;";
//echo$sql;
$this->dao->fetch($sql);
}
function getNote(){//获取以数组形式存储的一条留言
//View利用此方法从查询结果中读出数据并显示
if($note=$this->dao->getRow())
return$note;
else
return false;
}
}
?>
看完这两个类之后你可能会发现这与以前我们写程序差不多,的确现在还闻不到MVC的味道,如果你不懂MVC,在这两个类的基础上你完全可以开始写你以前的程序了。例如要显示全部留言,只需要写入下代码:
复制PHP内容到剪贴板
PHP代码:
<?php
require_once('lib/DataAccess.php');
require_once('lib/Model.php');
$dao=& new DataAccess('localhost','root','','test');
$model=& new Model($dao);
$model->listNote();
while($note=$model->getNote())
{
$output.="姓名:$note[name]<br>留言:<br>$note[content]<br><hr/>";
}
echo$output;
?>
很亲切吧,呵呵。
有了这个“感情基础”你就不会对MVC望而生畏了,下面我们就要上今天的主菜了,那就是“Controller”闪亮登场!
先大体浏览一下主要结构,它包括一个Controller类以及派生出的三个子类(listController对应显示留言功能、postController对应发表留言功能以及deleteController对应删除留言功能)。
复制PHP内容到剪贴板
PHP代码:
<?php
//! Controller
/**
*控制器将$_GET['action']中不同的参数(list、post、delete)
*对应于完成该功能控制的相应子类
*/
class Controller{
var$model;// Model对象
var$view;// View对象
//!构造函数
/**
*构造一个Model对象存储于成员变量$this->model;
*/
function __construct(&$dao){
$this->model=& new Model($dao);
}
function getView(){//获取View函数
//返回视图对象view
//对应特定功能的Controller子类生成对应的View子类的对象
//通过该函数返回给外部调用者
return$this->view;
}
}
//用于控制显示留言列表的子类
class listController extends Controller{//extends表示继承
function __construct(&$dao){
parent::__construct($dao);//继承其父类的构造函数
//该行的含义可以简单理解为:
//将其父类的构造函数代码复制过来
$this->view=& new listView($this->model);
//创建相应的View子类的对象来完成显示
//把model对象传给View子类供其获取数据
}
}
//用于控制添加留言的子类
class postController extends Controller{
function __construct(&$dao,$post){
parent::__construct($dao);
$this->view=& new postView($this->model,$post);
//$post的实参为$_POST数组
//表单中的留言项目存储在该系统数组中
}
}
//用于控制删除留言的子类
class deleteController extends Controller{
function __construct(&$dao,$id){
parent::__construct($dao);
$this->view=& new deleteView($this->model,$id);
}
}
?>
大体浏览之后,你一定打算开始仔细研究它了吧,别急,为了心中有数,我们先从宏观着眼,先看看总入口index.php是如何调用Controller的:
复制PHP内容到剪贴板
PHP代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>PHP MVC留言板</title>
</head>
<body>
<a rel="external nofollow" href="post.htm">添加新留言</a><br>
<p>
<?php
//!index.php总入口
/**
* index.php的调用形式为:
*显示所有留言:index.php?action=list
*添加留言:index.php?action=post
*删除留言:index.php?action=delete&id=x
*/
require_once('lib/DataAccess.php');
require_once('lib/Model.php');
require_once('lib/View.php');
require_once('lib/Controller.php');
//创建DataAccess对象(请根据你的需要修改参数值)
$dao=& new DataAccess('localhost','root','','test');
//根据$_GET["action"]取值的不同调用不同的控制器子类
$action=$_GET["action"];
switch($action)
{
case"post":
$controller=& new postController($dao,$_POST); break;
case"list":
$controller=& new listController($dao); break;
case"delete":
$controller=& new deleteController($dao,$_GET["id"]); break;
default:
$controller=& new listController($dao); break;//默认为显示留言
}
$view=$controller->getView();//获取视图对象
$view->display();//输出HTML
?>
</body>
</html>
看过index.php之后你就更清楚了吧,原来功能是通过$_GET[“action”]指定的,由一个switch结构分发,不同的功能对应不同的Controller子类。现在可以滚上去(滚动页面上去的简称,绝非不洁用语^_^)仔细看看这个Controller代码了。注释应该很细了,不懂的地方就去看看PHP5的OOP语法和概念吧,单纯看这些概念总是越看催眠效果越好,现在带着实际问题去看,应该有所不同吧。不过我还是建议你在完成这个MVC的Hello World知道MVC是怎么回事之后下功夫打好OOP的基础,毕竟那是根本啊。
怎么样,Controller真是个光说不练的家伙吧,看不到三行它就把你引向View了,那就看看View吧。
View里有对应的子类,负责相应功能的显示。理解了Controller,View的代码就不难看了,难看的话也是因为混杂着HTML的原因,它所做的就是从Model获取所需的数据,然后塞到HTML中。
复制PHP内容到剪贴板
PHP代码:
<?php
//! View类
/**
*针对各个功能(list、post、delete)的各种View子类
*被Controller调用,完成不同功能的网页显示
*/
class View{
var$model;//Model对象
var$output;//用于保存输出HTML代码的字符串
//!构造函数
/**
*将参数中的Model对象接收并存储在成员变量$this->model中
*供子类通过model对象获取数据
*/
function __construct(&$model){
$this->model=$model;
}
function display(){//输出最终格式化的HTML数据
echo($this->output);
}
}
class listView extends View//显示所有留言的子类
{
function __construct(&$model)
{
parent::__construct(&$model);//继承父类的构造函数(详见Controller)
$this->model->listNote();
while($note=$this->model->getNote())//逐行获取数据
{
$this->output.="姓名:$note[name]<br>留言:<br>$note[content]
<a href=\"".$_SERVER['PHP_SELF']."?action=delete&id=$note[id]\">删除</a><br><hr/>";
}
}
}
class postView extends View//发表留言的子类
{
function __construct(&$model,$post)
{
parent::__construct(&$model);
$this->model->postNote($post[name],$post[content]);
$this->output="Note Post OK!<br><a href=\"".$_SERVER['PHP_SELF']."?action=list\">查看</a>";
}
}
class deleteView extends View//删除留言的子类
{
function __construct(&$model,$id)
{
parent::__construct(&$model);
$this->model->deleteNote($id);
$this->output="Note Delete OK!<br><a href=\"".$_SERVER['PHP_SELF']."?action=list\">查看</a>";
}
}
?>
之所以UI方面写得如此简陋,是因为这些工作可以交给Smarty这样的模板去做,而我们这里就像集中精力研究MVC,不想把Smarty扯进来,所以就这样凑合了,以后我们可以再把Smarty结合进来。
看了这个东西之后不知你是否对MVC的概念和实现更明白了一点。
我也是个初学者,这是个依葫芦画瓢之作,目的就是想了解一下MVC,如果你是高手,我很想得到你的点评,这样的划分和架构是否符合MVC的理念?还有哪些应该改进之处?
当然,大家都知道现在很多关于MVC的争论,这很正常,就像关于开发语言的争论一样,永无休止,学术上的争论有助于创新。作为我们学技术、用技术而言,一定要踏实深入学习,掌握了基本用法之后再去讨论,那才是更高层次的发展,在自己都搞不清的情况下在哪里争论只能是浪费时间。
下面说说我体会到的MVC的好处,它的确给程序的功能扩展带来方便,比如这个例子我们想要增加一个根据用户名查询留言的功能,只需要在Model里增加一个查询函数(突然发现这些函数的用法很像存储过程),Controller和View里增加相应的子类,这种分离带来的好处是程序功能模块可以即插即用,再就是整个程序的逻辑非常清晰。我想,对于需求变动频繁的Web应用来说,这种特性也许是很有价值的。
网页设计实习总结
关于网页设计实习总结(精选5篇)
艰辛而又充满意义的实习生活又告一段落了,相信你积累了不少实习心得,为此就要认真思考实习总结如何写了。但是相信很多人都是毫无头绪的状态吧,以下是我收集整理的关于网页设计实习总结(精选5篇),仅供参考,希望能够帮助到大家。
网页设计实习总结1一、实习目的
(一)检验自己是不是真的适合这个职业
鉴于自己对未来的职业生涯的规划更倾向于设计,这和自己所学的专业不是十分有联系,所以我希望在实习的过程里思考自己未来是否适合从事这方面的工作,为以后求职之路少走弯路做一定的尝试。
(二)在实践中查漏补缺
在学校学习的网站建设知识仅仅停留在平时的作业里,并没有得到充分的运用。希望可以藉由这次实习,好好巩固书面知识。在实际运用中通过发现问题,解决问题对知识进行查漏补缺。
(三)在工作中打磨自己
由于学校和社会是截然不同的生活、学习、工作氛围,在工作中我们不可以像在学校一样随心所欲,待人接物方面需要更有礼貌的沟通和恰当好处的圆滑。希望在实习里,和同事上司的相处中获得这方面的成长。
二、实习内容
(一)实习主要内容
广州xx有限公司是一个研发和销售智能寄存柜的公司。它的产品在展示和销售这两个环节很需宣传册、企业网站等作为一个推广媒介。我实习的主要内容就是配合网络部去完成网站建设的工作,涉及前台的外观设计和后台的代码编写,以及宣传册的设计。
1、负责设计公司整个企业网站的页面部分,根据网页设计师或客户所提供的主题要求和思路框架来设计出整个网站。
(1)使用Photoshop、AI等图片处理软件设计、处理和制作网站上需要的图片。
(2)使用DIV+CSS样式及基础的HTML语言做页面布局的排版。
(3)使用Photoshop对网页进行配色及排版设计。
(4)编写CSS代码使网站页面无论是在IE浏览器里还是在FF浏览器上正常显示。
2、负责网站的几个主体模块的文案撰写和后台编辑。
(1)在已有的文案上配合网站架构进行提炼和归纳整理。
(2)使用Photoshop对文案进行概念配图。
(3)在后台将文案部分合理配色排版。
(4)按照网站架构在后台录入所有产品资料。
(二)工作过程
在公司的2个多月里,我的工作都是由负责整个网站文案架构的曹经理分配监督的。确认实习机会前的面试的时候也是由他负责的。面试的时候他并没有过多的考察我在网站制作上的技术问题。更多的从我对网站设计方面的配色排版的现有审美以及做事的认真细致程度去考察的。从一开始我就以踏实认真的态度对待每一项他交付给我的任务。下面我挑选一些让我收获很多,学习很多,影响我很多,让我回想起来都是历历在目的事情重点说一下。
1、经理让我按照网页设计师提供的jpg稿变成div和css
(1)这个任务简单来说就是架构网页框架和完善里面的文本主体。里面涉及很多文本,我觉得既然有具体的设计稿就一定保存有文案,所以咨询了经理是否有必要花这部分时间去打文本。经理的回复是很有必要。他的意见是,让我重新输入文本可以帮助检查错误,同时可以让我更熟悉公司的产品和网站的主要内容,对我后面的工作有帮助。顿时知道,一个实习生想到的东四是多么的肤浅,对经理工作上的态度更是肃然起敬。
(2)因为经理没想要让实习生负责过于复杂的事情,在这部分工作中设计的div和css的内容并没有很复杂,需要的就是要注重细节。但实际上自己做事远没有自已一开始想象的那么能够静下心地考虑大局。只要想到一个觉得挺好的排版我就一下子全部套用了,以至于最后通过多次检查,发现这个排版有瑕疵的时候又要重头再来。这些经历都让我体会到比起表面的工作速度,有前面深思熟虑的慢节奏才能造就最终的高效率。所以一开始在用css排版的时候其实应该多做几个版本仔细做对比,看清楚哪个更合适才确定的。
2、经理让我设计几个栏目对应的banner图片
(1)由于自己并没有专门学过banner规范和设计方面的专业知识,有的只是审美方面的一些小体会。接手这个工作需要花大量的时间去学习和参考。一开始略略觉得压力大,但是觉得经理让我去做,就是相信我的能力。所以我也没有慌,按照自己的节奏和需要边学边做。
从整体了解主题:自己找了多个类似的企业网站作参考,通过总结企业网站中,几个主要的栏目在网站上具体意义,体会这对应的几个栏目banner的设计意义。
思考配色与构图:对整个内容有了一了解后,便要思考作品的色彩和具体的构图,先用笔画出草图,有时候也会直接在脑海里构思。除了从公司的角度,围绕要传达的东西去设计,我也充分意识到要转换身份从用户的角度出发,怎样才可以更吸引人。总体来说就是除了审美上的设计,也考虑很多目的性。
查找素材:素材这个问题我总结了一种思路,电脑里下载一些专业的“科技信息”图库。另外配合专业在线图库网站(通常是国外站点)+Google,百度图片等搜索引擎进行即使的素材查找。再加上自己平时积累的素材,选择是非常大的。最后就是不断地观察对比最终效果,看哪几张banner图片更适合整体网站。
(2)最终banner图片并没有全都采用我设计的,有一些还是因为不够大气被撤下来了。一开始我还挺灰心,觉得自己的付出没有得到认可。但是我知道当初经理就是感觉可以给我试一下,才给我这个机会去让我发挥一下的,所以我好好学习了别人的图片,看自己的和别人的差别在哪里,不浪费这次尝试性地努力。
3、经理让我参考旧网站单独做一个公司简介的页面
(1)我知道经理的意思是重新排版成符合网站的配色。这样对我来说其实很简单。但是我从旧网站了解到公司简介那篇文案比较累赘,如果想要浏览网站的用户肯停留在这个页面多几秒,或者因为这个公司简介的页面而更信任这个公司的产品,更有冲动订个公司的寄存柜就要在文案的内容上下功夫,就要在表现上更生动,让人看着不会觉得文字流水账,很烦躁。
于是在经理没有给我严格期限的时候,我选择了按照自己的思路去修改文案,把多余的文字删掉,根据公司的优势修改出精简的几点,变得更有条理更有重点。
这只是对文案的初步处理,接着根据几个要点用Photoshop处理几张概念配图出来,将公司寄存柜的技术水平之领先,应用领域之众多,销售范围之巨大等等用更生动形象的方式表现。从设想到思考中间的问题到最后的完成,花的时间虽然多,但是最终的效果得到了经理的肯定,对网站的宣传作用起到了很好的帮助,这都是值得的。
三、实习体会
做了2个月的网页设计和编辑的实习生,终于体会到网页设计并非只是图文混排的那点事。当你真正的去努力的创造了之后,经常被别人一眼就否定了。这才真正明白一个好的网页不只是效果华丽还要多从用户的角度去考虑问题。通过实习,我不仅将自己在学校学过的东西通过实践进步一巩固,也通过向公司的人请教学到很多工作上的技巧,更通过实习体会到很多没有人会教授给你的东西。工作是人生活的重要部分,是我们毕业生必须面对的。就算是遇到困难,我也会用平常的心态实际看待问题,不说“不可能”,而是冷静下来思考如何处理并付诸于实践。
在实习的日子,我学习到了很多如果没有这次经历,就不会有的细腻体会。
(一)深刻感受到什么是真正的细心
其实在高中甚至到大学,老师都总是强调“细心”,对于细心什么的我以前自我感觉还挺不错的。但是当老师在斤斤计较一个标点符号或者花时间可以渲染“细心”的重要性的时候我就觉得好小题大做那时的我觉得“细心”是你可以刻意去营造的状态。包括经理对我强调细致的时候我也是这样想的。我觉得只要想到考试的时候或者处理工作的事情的时候去跟自己说细心点就好了。但是在这个实习的过程里,因为无意和粗心犯下的错误,才让我明白老师反复说的话到底意义在哪里。往往一些不好的后果或者没有必要的错误,正正是在你认为不用细心和没有想过要去细心的行为后出现的。这才是我们为什么要养成这个习惯的原因。所以不管是生活中的小事情还是工作中的大事情,我们都要养成习惯,以细心认真的态度对待。
(二)主动思考的重要性
从学校走向社会,首要面临的问题便是角色转换的问题。从一个学生转化为一个单位人,一个单位人工作要考虑的问题就是如何发挥自己最大的价值为单位创造效益。做事要主动一点,这不是指一直主动问上司有什么事做,而是在别人交付你任务的时候自己主动想一下怎么做才更好,而不是把自己当一个机器人一样。就像做公司简介页面的时候,我把自己做得效果给经理看的时候,经理说“你真的很用心,很负责”,“你做的公司简介那个页面,让我感触很深”。
网页设计实习总结2真的是万事开头难啊,遇到了很多问题,比如:插入的图片不符合规格,一下子把其他内容的框架挤开;插入的层太多,大一点的就把小一点的给覆盖掉了;插入的FLASH不能产生效果。总之问题一箩筐。实践出真知,原来自己还有那么多欠缺的知识。于是回归本源,先把课本上的东西弄通再谈其他。然后又到图书管里借了几本网页制作方面的书籍来参考。
在对基本知识有了详细的了解之后,做起东西来就得心应手多了,知道引导页能过加映像之后,我决定为我的网页设计一个引导页。
然后是主页和二级页面的设置。要注意,网上只能使用JPG和GIF两种图象格式,其他诸如BMP和TIF等很通用的格式都不能用在网上,因为它们太大了,但可以用图象软件进行转换,比如Office97的照片编辑器。把准备在主页上出现的图象放进相应的目录里后。
在一步一步的边学边做的过程中,看着心中的东西一点一点的出来,真的很有成就感。虽然自己的网页技术还差的远,但是回顾一下这周真的学到了很多的东西。
网页的调试
之前把作过的东西放到U盘里,发生过图片显示不出来的状况,还好即使找到了解救的方法,把源文件和WEB页面放到一起这样就算路径改变的话也不会影响页面的效果。
一、网站的整体规划
1、讨论网站主题:
因为自己对普罗旺斯很感兴趣,于是就想到要是一下为心中的仙境设计一个旅游网站。
2、定位网站CI形象:
旅游网站最重要的就是是浏览者产生想去亲身体验一下的共鸣。于是在网页设计上面,根据普罗旺斯梦幻般的意境,我采用的是清新隽永的CI形象。使浏览者有宾至如归的感受。
3、确定栏目和板块:
1、首先要考虑整个网页的长和宽,以及长度和宽度之间的比例。
2、其次就应该考虑导航条的设置了。
3、正文的框架设置(横向因素和纵向因素交错)在浏览了很多精美的旅游网站之后,再结合自己的想法,我先在草纸上画出了大体的栏目和板块。
4、网站的整体风格和创意:建立一个浪漫的旅行网站,走映像派路线,目的务必使浏览者留下映像。
二、网页制作的前期策划与准备
资料的搜集:
由于个人的爱好,我很早以前就收集了许多普罗旺斯的美图,这次就方便多了。接着就搜集了一些有梦幻效果的网页背景,FIASH源代码、小图标和一些GIF的动画等。
2、熟悉制作工具软件:
主页制作的基本条件有:
硬件:
一台电脑(64MB以上内存,当然越大越好啦);可以拨号上网;如果你有条件的话,建议:配置扫描仪,这将大大方便图像和文字的输入;
软件:
HTML编辑软件:常用的有Frontpage、Hotdog等,本文重点介绍Dreamweaver;
图像处理软件:常用的有Photoshop、flash、Fireworks等;
文件上传软件:常用的有Cuteftp、WSftp等。
网页设计实习总结3一、工作介绍
我工作的这家公司,从事网站开发工作的,公司在技术团队这部分是比较正规的,一般是五到六人为一个小组,小组中有明确分工,有负责联系客户接恰生意的,有专门做技术的,而在技术这块分为网站前台、后台开发,我在学校主要做的是后台开发,当然前台设计工作也还算熟练,但不是很精通。我们这个小组一般接下的活都是一些小型网站的开发工作,这样的网站技术难度不大,而且工作周期短,有相当一部分的,只需要通过cms软件就可以进行开发。但是有个别的网站开发时,我们还是需要进行一些手写代码工作的。
二、开发技术
做为一个刚毕业的大学生,我的知识储备肯定有不足的地方,毕竟学校教的东西肯定会有一部分和社会是脱节的,但好在我的领导对于我没有太多的要求,他只是要求我尽快的适应公司的工作和生活,在短时间内熟练的掌握相关技术,干好本职工作。
在大学里对一个学生来说什么是最重要的,那就是学习能力。要知道,这个世界上,知识在发展,人类在进步,每天都在进行日新月异的变化,我们的知识储备总会有不够的地方,但是一定要有学习能力,将不会知识快速掌握,只有这样才能占据主动,减少被动情况的尴尬发生,通过二个星期的时间,我成功的适应了公司的工作和生活节奏,每天早九点上班,晚17:30下班,中午休息一个半小时,每周还有两天假期。我利用业余时间,抓紧学习,将工作中所需要的技术进行了强化学习,其实这些东西在学校的时候就接触过,只是不精通。那个时候学的东西多,难免有个主次之分,这次工作了,才知道哪个应该多学点,但好在我都有学过,所以有个好的基础在这里,也就不怕了,比如说:flash,公司要求技术人员会做flash,flash这东西以前我在宿舍的时候经常玩的,可是后来在分析就业情况时,分析错了方向,以为这东西没有什么用处,结果就给荒废了。但好在还有印象,并且当初记了很多的笔记,所以说记笔记是很重要的事情。而其它像javascript、ml、数据库这些东西我都学过,只是实践能力稍差一点,但好在从前在学习方面用的功不是白费的。通过这种实战环境,和半个月的刻苦学习,我终于可以感上小组的工作进度了,已经可以很好的完成领导教给我的任务了。
像我这个组常用的是css+div排版,后台使用php技术进行开发,服务器平台采用,linu+apache+mysql+php,这种lamp组合,我很高兴在学校学的东西能学有所用。以前我们是用表格(table)进行排版,这种方式简单但是已经有些过时了,现在大部分网站都开始了重新构架,所以都采用css+div进行网页排版,我目前正在学习,掌握的还算比较快。而在后台开发部分,我们使用php来进行开发,我的工作是手写一些小模块。或者用javascript写一些特效小代码。
网页设计实习总结4这两个星期是我们的网页设计实训时间,这正是考验我们实力的时候了。
经过一个学期的网页设计的学习,我们的专业基础更加扎实了,我们对于自己的专业学习更加有信心了。一开始对于网站设计我是抱着好奇以及兴趣认真地学习,刚开始接触网页设计会觉得很神奇,平时上网接触到的网页可以通过自己的努力来建成。一心想着设计一个美观大气的大网站,可以与其他网站媲美。对于我这种初学者,有这种天真的梦想促使我更努力。
平时老师授课,讲解了有关网页设计的理论知识以及实际操作的'示范。网页设计更着重于实际操作,我们在机房通过每次上课的学习运用,已经有了一定的基础。一开始我们都是看着别人的网站去模仿建设,到后来每个人在设计自己的网页时都有自己的人个人风格,这就是网页设计的乐趣。他不仅可以激发同学们的兴趣,还可以把自己的风格更大胆地展示出来,是一个可以展示自我的空间,使我们更有成就感。
这两个星期我们实训课让我们更清楚地认识到自己的建站水平。实训任务是建立自己班级的网站,刚开始觉得两个星期足够我们去建成一个网站,但是我们都太高估我们自己了。一开始设计网站时不知道从何下手,之前老师上课讲的知识一时不知道怎么灵活运用起来,我才发觉对我软件功能的不太熟悉,除了基本的框架构建,其他的设计都需要比较长的时间去思考以及翻查书本。但是同学们都很积极地向老师提问,把自己存在的问题一一的解决掉。虽然建立网站不是很顺利,也只有这样我们才可以正视自身,把平时半桶水的听课方式给改掉。在这次的网站建设过程中,我发现自己对于知识不能灵活运用,不能巧妙地结合起来,对代码的不熟悉,这更加是一个大问题。建站过程中会遇到代码出错,代码位置写错之类的问题,当测试的时候出现了错误但是不能看懂出错原因,只能靠网上搜索。因为对于这种程序的东西我会比较抗拒,从小就不喜欢思维性太强的学习,所以建站会遇到比较多这种问题,但是我只能积极去面对才能完成任务,毕竟这是我的专业,为了专业而专业,不能说不喜欢就不愿意去学,这次实训我反省了自身的存在问题。我们建立网站的时候都发挥自己的创新力、想象力,用心地完成这个大项目。会遇到很多的问题,经常因为一个细小的步骤而出错,做动态网页的时候会遇到更多类似的问题,通常都会花费我很多时间来解决出错原因。打个比方,我会一个上午都在弄留言板,因为不知道出错原因,当请教老师或是同学的时候才恍然大悟,原来是这么简单的。当然,最终可以解决困难我还是很欣慰的。
当我真正建立起自己的网站的时候,我看着自己的作品非常地兴奋,这是我用心血完成的只属于自己的网站,特别地欣慰。因为过程的困难,我更加珍惜自己第一次的作品,做每一步都会小心翼翼,就像母亲生怕会失去自己的孩子一样,我就是这样的感受。
我可以说网页设计给了我很大的收获,我是用我的热情去学习,也是用我的真心去设计,属于自己的东西永远是最美好的。网页设计不是用嘴巴就可以设计的,更需要的我们的坚持、创新、用心,才能收获更大的胜利。
网页设计实习总结5 21世纪的时期,中国的网络正在实飞猛进,大多的企业都是通过建立网站来进入企业宣传,通过企业网站来打广告,宣传产品、品牌推广,促进销售等方法来实现企业营利的目的。所以,中国的互联网在中国的近几年来,有了非常大的发展空间,如“网上商店”“网上服务”“网络资源”非常的流行。所以网页设计师中一个紧缺的人才。对一个企业来说,做好一个网站是必不可少的。我们现在做为电子商务专业的,我们的最终目标是针对全球这个大的市场,还有这个网络市场。作为一个企业的管理者,应当为自己设计一个能够促进销而且能够代表我们企业的形象、宣传我们企业最新出来的产品的这么一个网站。
我们学了一个学期的网页设计,这周我们开始实践我们专用的计划如下:
第一天:网页设计与布局。网页的题材自己定,可以任选。
第二天:准备材料。建立站点,将所有的题材放到自己所建立好的站点里去,以便在做的可以更方便、快捷的应用到网页中,提高速率。
第三天:将所在准备的材料一起联接起来,放到自己的所设计的布局结构中。再做二级网页,建立超链接,把一级和二级网页连接起来。
第四天:将所做的网页进行整理、调试、发布。在网站上申请一个空间,将自己做的网页传到网上去。
第五天:写实习报告。将写好的实习报告打成电子文档,传到老师处,审查。
网页的布局:
网页的布局指的是网页的整体架构,也就是排版。在一个被别人打开网页之后,如何才能突出我们网站里面最重要的内容,即让用户第一眼就看到这个网页所想要传达的信息和内容。这首先就要从网页布局做起。我觉得网页布局应当注意以下几点:
1、整个网页的长和宽的比例。
2、导航条的设置。
3、正文的框架结构。
我的这个上网页中,我的大体布局就是“F“型的。从我的首页上看上去虽然有点乱的感觉,但整个的布局是清楚的,乱而有型。在大多数企业网站中的布局都是大同小异,但是它们做出来的效果显得非常的完美,所也是他们企业的成功之处所在。因此,一个网页布局是一个非常重要的一个工作。
网页的设计:
网页的设计不仅需要学好网页设计软件的方法,还需要和其它的软件一起使用,如动画设计软件,静态图像处理软件,等等。所以学习起来的确有点困难,所以需要有有点耐心去学习,不要是因为一时的好奇而去做网站,那肯定是不得行的。当我们遇到问题的时候要总要想着自己去面对解决,不要掉入技术的陷阱,如果你的网页设计技术一流,并且对软件的掌握程度已经达到一定水平,但是你设计的网页确不堪目睹,这是因为网页设计是介于平面设计和编程技术两者之间的"边缘科学。"不仅涉及到美学,心理学,平面构成,色彩搭配等平面设计的方面的知识,还涉及到html,javascript,css,asp,php等编程语言技术方面的知识。只有综合运用多种知识,才能设计出视听特效,动感十足,富于个性的web页面,才能全面展现互联网这一新型媒体的独特魅力和多维空间的超强功能。
网页的整个形象:
在一个网页做成之后,就要去找开看下网站的整个效果。首先是给视觉效果人视觉效果的,而在视觉效果中又最注重是颜色的,所以色彩的配合是必不可少的知识。在调整好之后,到网上去申请一个空间,传到网上去,看下效果。
从我不知从何下手做网页时到现在学习了一学期和这个专用周结束,总算有一个大体的方向和设置的格式了。我一开始对什么网页的布局和设置啊,什么都着落,对于一个好的网站的是如何做出来的和它所应用的方法都大概有一个认识。比如说那些动画、流动的窗口和按钮、弹出图片等等一些广告、视屏之类的。在我们的课本中没有多少的代码,只有文字性的操作步骤。还有那些什么JAVA代码一个都没有。然而在我们制作过程中,我们很多的时候都需要使用那些JAVA代码,我们又不知道,只有到网上去找。但是这并不是一件坏事。我们还可以学到很多东西,这也是我们所需要的。我觉得我现在做出的网页虽然不是很好,但是通过了这一周的实习,我收获也是不少啊!
;
好了,关于web网页留言板代码和网站代码生成器的问题到这里结束啦,希望可以解决您的问题哈!