这个MVC结构该如何理解 属于ModelContloller主要用来控制管理各个访问与处理(Model)/视图的关系处理。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可能是把三层结构和MVC给弄混了。 我和我partner的对话,关于上面的问题:例如:用户登录的过程其中验证用户密码正确性的过程应该输入MVC中的哪一步?谢谢了我认为是C,但是有人认为是M。我觉得应该是C啊。Sent at 9:27 AM on Fridaygo4pro.org: 令狐虫 : 验证过程当然是C,说M的人回去复读TR: http://topic.csdn.net/u/20081121/03/17879a04-cd8c-46b2-af66-e68e7d970599.html前令狐去看一下。Sent at 9:42 AM on Fridaygo4pro.org: 令狐虫 : 哦。我理解错了,如果这么说的确应该是在M层TR: ???难道我们都理解错了?我从他的文字中,我判断应该是在C里啊至少在我们的狗屎皮中,这个判断是在C里的。go4pro.org: 令狐虫 : 其实我们的系统就是MVC结构的,C就是我们的Controller,只负责根据Function处理的结果进行跳转。我们的M就是Function目录下的那些东西TR: 对的。go4pro.org: 令狐虫 : 他说的是“验证密码正确性”这个应该算是一个function也就是M令狐虫 : C的作用是根据这个function返回的结果给出不同的VTR: 他说的是“验证密码正确性”的过程………………go4pro.org: 令狐虫 : 所以这就变成了一个文字游戏了……TR: 可能是他的表述有点模糊吧……因为我的理解是,M返回一个“对”、“错”,然后C负责去不同的定向……而M如何返回对错是无所谓的……go4pro.org: 令狐虫 : 你的理解完全正确令狐虫 : 至于那个人问这个问题的本意,已经不重要了……TR: 呵呵如此说来,是他的表述有点模糊。我把这段对话贴回去……供大家讨论吧…… 验证用户密码正确性的过程去哪(where)验证,接收并且传递结果显示是属于C的工作范围.而显示结果给用户就属于V的工作范围而M封装了数据库存取的接口,当然负责数据的验证了. 如果单说验证处理,他应该属于M的范畴(数据层在它之下),因为,数据如何来的,向用户返回什么也面,跟验证处理毫无关系。但是如果是从用户的角度说整个操作,那就MVC都包括了。lz提的问题本身就不严密。或者应该问,验证处理的整个步骤,M在干什么、V在干什么、C在干什么。 知道了,我写一下过程1,表单提交2,$db_conn=new mysqli(........)$username=$_POST['username']$password=$_POST['password']$sql=select username from member where username='$username'if($db_conn->query($sql)) echo "welcome come";else "wrong page";其实我的意思指的就是if($db_conn->query($sql)) 的过程是属于哪个,我的理解是属于C,简单说在这个例子中判断用户名和密码是否正确是C告诉程序我该做哪个(echo "welcome come";/else "wrong page";),而echo 的两个部分应该属于M.当然这段没有封装。但是我决的封装后也有两种情况1,if进行判断,然后读取funtion2,将if也一起封装进去当然两者的不同仅仅是if在内在外的差别,请问这样该如何理解,谢谢 你这么写,当然是在M了。MVC后:C:$username=$_POST['username']$password=$_POST['password']$result=checkUser($username, $password);if ($result) //验证通过 header("location: login_ok.php");else header("location: login.php");M:function checkUser(....){....} 请问朋友的理解,如果从判断,查询属于M层,那么$username=$_POST['username'] $password=$_POST['password'] 是不是只有这两个属于 C,即接受请求 可以这样理解.但其实前面还有一个过滤层呢,不能直接获取post数据的. M层C控制层,就是调用M,呈现V,可以不再C层,过多验证操作 这些属于层与层间互相通信的信息,不属于任何层。这些信息的载体,PHP默认是$_POST、$_REQUEST等联想数组,在正统的MVC模型中,通常使用Bean也叫做POJO。M中,专门用来传送信息数据的BEAN也叫做DTO。 $PHP_SELF应用于表单中 关于php 正则替换 在线等 急急急 What PHP ORM (object relational mapper) are you using php+脚本怎么截图? PHP正则表达式(高手请进) 如何生成数组 php过滤掉无法识别的问号字符 网上在线播放音乐用怎么实现的啊 PHP可否调用动态链接库? PHP开发的网上商店系统,请教一个很奇怪的问题。 MySQL数据库能否像access数据库那样直接通过ftp下载下来?
我认为是C,但是有人认为是M。我觉得应该是C啊。
Sent at 9:27 AM on Friday
go4pro.org: 令狐虫 : 验证过程当然是C,说M的人回去复读
TR: http://topic.csdn.net/u/20081121/03/17879a04-cd8c-46b2-af66-e68e7d970599.html
前令狐去看一下。
Sent at 9:42 AM on Friday
go4pro.org: 令狐虫 : 哦。我理解错了,如果这么说的确应该是在M层
TR: ???难道我们都理解错了?
我从他的文字中,我判断应该是在C里啊
至少在我们的狗屎皮中,这个判断是在C里的。
go4pro.org: 令狐虫 : 其实我们的系统就是MVC结构的,C就是我们的Controller,只负责根据Function处理的结果进行跳转。我们的M就是Function目录下的那些东西
TR: 对的。
go4pro.org: 令狐虫 : 他说的是“验证密码正确性”这个应该算是一个function也就是M
令狐虫 : C的作用是根据这个function返回的结果给出不同的V
TR: 他说的是“验证密码正确性”的过程………………
go4pro.org: 令狐虫 : 所以这就变成了一个文字游戏了……
TR: 可能是他的表述有点模糊吧……
因为我的理解是,M返回一个“对”、“错”,然后C负责去不同的定向……
而M如何返回对错是无所谓的……
go4pro.org: 令狐虫 : 你的理解完全正确
令狐虫 : 至于那个人问这个问题的本意,已经不重要了……
TR: 呵呵如此说来,是他的表述有点模糊。
我把这段对话贴回去……
供大家讨论吧……
而显示结果给用户就属于V的工作范围
而M封装了数据库存取的接口,当然负责数据的验证了.
因为,数据如何来的,向用户返回什么也面,跟验证处理毫无关系。
但是如果是从用户的角度说整个操作,那就MVC都包括了。lz提的问题本身就不严密。
或者应该问,验证处理的整个步骤,M在干什么、V在干什么、C在干什么。
1,表单提交
2,$db_conn=new mysqli(........)$username=$_POST['username']
$password=$_POST['password']$sql=select username from member where username='$username'if($db_conn->query($sql)) echo "welcome come";
else "wrong page";其实我的意思指的就是if($db_conn->query($sql)) 的过程是属于哪个,我的理解是属于C,简单说在这个例子中判断用户名和密码是否正确是C告诉程序我该做哪个(echo "welcome come";/else "wrong page";),而echo 的两个部分应该属于M.当然这段没有封装。但是我决的封装后也有两种情况
1,if进行判断,然后读取funtion
2,将if也一起封装进去当然两者的不同仅仅是if在内在外的差别,请问这样该如何理解,谢谢
$password=$_POST['password']$result=checkUser($username, $password);if ($result) //验证通过
header("location: login_ok.php");
else
header("location: login.php");
M:
function checkUser(....)
{
....
}
$password=$_POST['password'] 是不是只有这两个属于 C,即接受请求
但其实前面还有一个过滤层呢,不能直接获取post数据的.
C控制层,就是调用M,呈现V,可以不再C层,过多验证操作
这些属于层与层间互相通信的信息,不属于任何层。
这些信息的载体,PHP默认是$_POST、$_REQUEST等联想数组,
在正统的MVC模型中,通常使用Bean也叫做POJO。M中,专门用来传送信息数据的BEAN也叫做DTO。