0

0

【原创】我是怎么从零开始教女同学进行php开发的(3)

php中文网

php中文网

发布时间:2016-06-06 19:52:27

|

1194人浏览过

|

来源于php中文网

原创

看了很多 评论,都说无图无真相、说好的高清无码大图呢,为了响应众多呼声,在征得妹子的同意下,我今天就先发一张图吧。 先别急着失望,也别说我是骗人的。看看聊天内容,其实哄妹子开心很容易,在教她学东西的时候,让她多点成就感,让她感觉自己真的学到

     看了很多评论,都说“无图无真相”、”说好的高清无码大图呢”,为了响应众多呼声,在征得妹子的同意下,我今天就先发一张图吧。

【原创】我是怎么从零开始教女同学进行php开发的(3)

 

Tana
Tana

“节点式”AI智能笔记工具,支持超级标签。

下载

    先别急着失望,也别说我是骗人的。看看聊天内容,其实哄妹子开心很容易,在教她学东西的时候,让她多点成就感,让她感觉自己真的学到了东西、有进步,这样她自然就会心花怒放,觉得时间过得快,觉得跟你待在一起感觉很好。如果你整天说,“你也太笨了吧,这都不懂”,又或者说,“怎么教都不会,我帮你写好了,到时候你糊弄一下老师”,人家女生能乐意么?帮人要帮到点子上,只要把程序员琢磨代码的心思拿出百分之一到女孩身上就不会总是出现被发好人卡或者是帮人深夜修电脑还骑自行车往家赶的情况了。

——————————————————闲聊结束——————————————————

立即学习PHP免费学习笔记(深入)”;

    前情回顾:在第(2)篇中,我们重点讲解了表单提交、获取和处理所提交表单的数据。在最后,还提到PHP操作MySQL的内容,演示了如何连接数据库。

    那么今天,我们要讲解的内容主要是以下两点:1.如何与数据库进行简单的交互 2.简单的MVC架构 

 

第六步:从数据库中取数据

    一般来说,在登录过程中,我们只需要从数据库中取数据与页面提取的数据进行对比——验证用户名、密码以及权限,而不需要进行增删改的操作。那么,这里就以查询操作为例,而其他操作,让妹子看书去吧,不能让她沦为伸手党。

    首先,我们看一下我事先建好的数据库基本表。这里就不提供sql语句了,让她自己去动手建,有图形化界面的帮助,相当简单。

【原创】我是怎么从零开始教女同学进行php开发的(3)

 

    看完基本表,再看看PHP代码部分——Controller.php

 1 php
 2   session_start();
 3 
 4   $user_id =$_POST['user_id'];
 5   $user_password= $_POST['user_password'];
 6   $user_limitation=$_POST['limit'];
 7 
 8   $host ='localhost';
 9   $user_name='root';
10   $password ='';
11 
12   $admin_limitation ='1';
13   $guest_limitation='0';
14 
15   $conn = mysql_connect($host,$user_name,$password);//连接MySQL
16   if(!$conn){
17     die('数据库连接失败:'.mysql_error());
18   }
19   mysql_select_db('scut_xiaoy');//选择数据库
20 
21   $sql='select id,password,limitation from login';//定义sql语句
22 
23   $result = mysql_query($sql) OR die("
ERROR:
".mysql_error()."
产生问题的SQL:".$sql); 24 //执行sql语句,成功则返回结果集赋值给变量$result,失败则执行die语句 25 26 if($num=mysql_num_rows($result)) 27 { 28 while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ 29 //while循环,每一次循环取出结果集中的一行赋值给数组变量$row 30 if($row['id']==$user_id&&$row['password']==$user_password&&$row['limitation']==$user_limitation){ 31 //判断语句,仅在用户名、密码、权限三者都符合的情况下为真 32 if($row['limitation']==$guest_limitation){ 33 echo "This is a user page!"; 34 } 35 else{ 36 echo "This is a admin page!"; 37 } 38 } 39 } 40 } 41 mysql_close($conn); 42 ?>

     到目前为止,我们已经基本完成了登录流程的讲解,从登陆页面的代码、表单提交到获取处理表单数据,再到最后根据验证是否通过、根据权限显示不同的页面。

     在Controller.php的最后部分,我用了一个if else语句做判断,我们可以把代码写进里面,作为不同页面的显示。但是这样有一个缺点,就是代码都挤到一个php文件里面。如果只是一个登录功能,这样的缺点还不是很明显,当项目规模扩大之后,我们会发现,某几个PHP文件会十分的臃肿,而且不好维护。为了让妹子养成良好的习惯,我决定给她讲讲简单的MVC分层思想。

 

第七步:简单的MVC分层讲解

     其实我博客里面有两篇就是讲关于MVC分层,但那是基于JAVA WEB开发的,不过有些内容还是可以挪过来。

     MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法。

 ——《百度百科》

     通俗的讲,在下面的讲解中,视图为用户看到的页面(HTML+CSS+JS+少量的PHP代码)并且负责将数据提交给控制器、控制器为控制数据交互流程以及页面跳转的PHP文件、模型是控制器用来处理数据的PHP文件(注:此为菜鸟言论,不负任何法律责任)。

     我们登录流程的最开始讲起——登录页面就是我们的第一个View(视图),代码在前面有,我就不贴出来了,可以用纯HTML代码写。视图提交数据给Controller控制器,也就是我们最开始的Controller.php,经过改造,新的代码如下:

 1 php
 2 require_once 'Model.php';//使用require_once语句导入Model.php文件,若已导入不会重复导入
 3 session_start();
 4 
 5 $user_id =$_POST['user_id'];
 6 $user_password= $_POST['user_password'];
 7 $user_limitation=$_POST['limit'];
 8 
 9 $login=new Class_Login();//定义Class_Login类的对象$login
10 $jugg=$login->login($user_id, $user_password,$user_limitation);
11 //以$user_id, $user_password,$user_limitation作为参数调用$login对象的login方法,返回值赋给$jugg
12 
13 if($jugg==0){//根据返回值跳转至不同的页面
14      header('Location: http://localhost/MyMVC/user.html');
15 }
16 else {
17      header('Location: http://localhost/MyMVC/admin.html');     
18 }
19 ?>

    因为一开始就想给同学讲MVC,所以名字一开始也就取为Controller.php,现在终于名副其实了。在代码中,我导入了Model.php文件,并且使用了Class_Login中的login方法进行处理数据(验证账户)返回判断值,最后根据不同的返回值跳转至不同的页面。这就是登录过程中Controller(控制器)的作用——接收视图传来的数据(用户名、密码等信息),然后将数据交由Model(模型)处理,最后根据返回值选择不同的View(视图)进行跳转(其实还可以将模型返回的数据通过控制器交由视图显示,暂且不提)。

   如果理解了Controller(控制器),其实Model也很好理解。请看Model.php的代码——

 1 php
 2  class Class_Login{//Class_Login类的定义
 3   public function login($user_id,$user_password, $user_limitation){//定义login方法
 4   $host ='localhost';
 5   $user_name='root';
 6   $password ='';
 7 
 8   $admin_limitation ='1';
 9   $guest_limitation='0';
10 
11   $conn = mysql_connect($host,$user_name,$password);//连接MySQL
12   if(!$conn){
13     die('数据库连接失败:'.mysql_error());
14   }
15   
16   mysql_select_db('scut_xiaoy');//选择数据库
17   $sql='select id,password,limitation from login';
18   $result = mysql_query($sql) OR die("
ERROR:
".mysql_error()."
产生问题的SQL:".$sql); 19 20 if($num=mysql_num_rows($result)) 21 { 22 echo '
' ;
23       while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
24           if($row['id']==$user_id&&$row['password']==$user_password&&$row['limitation']==$user_limitation){
25             if($row['limitation']==$guest_limitation){
26                 return 0;
27                 }
28             else{
29                 return 1;
30                 }
31            }
32         }
33    }
34            mysql_close($conn);
35   }
36  }
37 
38 ?>

    至于两个View(视图),即是user.html、admin.html的代码我就不贴出来了,理由大家都懂~

    一时半会,大概她还不会太明白这样做的含义,到项目的后期应该就会慢慢理解的了。

 

——————————————————————别笑,我还这就是那条分割线——————————————————————

 

    连续写了几天博客,感觉收获越来越大。感谢所有有意无意follow这一系列博客的朋友,没有你们的点阅和评论,我绝对不可能像现在这样充满热情地写这些文字。另外,让我感到很欣慰的是,妹子学的很有兴趣,经常跟我说感觉时间过得特别快。其实,妹子没打算以后走技术路线,完成这个学校规定的实训任务之后就会投入到考研准备当中。所以,她能够做到这个地步,作为“技术顾问”我真的没有更多可以说的了。

    透露一下,妹子在北京念大四,而我在广州,一个天南一个地北,所以大家别再,咳咳,都懂的。最后,透露一下,我已经拿到她的侧脸照了,在考虑是不是要爆出来。

 

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

3

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

55

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

67

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

37

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

11

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

16

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

152

2026.01.18

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

139

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.3万人学习

React 教程
React 教程

共58课时 | 3.9万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号