From b3e1b4a9f89664dc007da7a41ff855326d4248de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=91=A8=E8=8A=B7=E8=8E=B9?= <1191106009.com>
Date: Fri, 10 Jun 2022 10:16:37 +0800
Subject: [PATCH 1/2] zzy
---
...50\346\240\274\350\241\250\345\215\225.md" | 211 ++++++++++++++++++
...Cookie+Session\344\274\232\350\257\235.md" | 129 +++++++++++
...41\345\244\247\344\275\234\344\270\232.md" | 116 ++++++++++
3 files changed, 456 insertions(+)
create mode 100644 "\345\221\250\350\212\267\350\216\271/20220525-PHP+Mysql+\350\241\250\346\240\274\350\241\250\345\215\225.md"
create mode 100644 "\345\221\250\350\212\267\350\216\271/20220601-Cookie+Session\344\274\232\350\257\235.md"
create mode 100644 "\345\221\250\350\212\267\350\216\271/20220608-PHP\347\254\254\344\270\200\346\254\241\345\244\247\344\275\234\344\270\232.md"
diff --git "a/\345\221\250\350\212\267\350\216\271/20220525-PHP+Mysql+\350\241\250\346\240\274\350\241\250\345\215\225.md" "b/\345\221\250\350\212\267\350\216\271/20220525-PHP+Mysql+\350\241\250\346\240\274\350\241\250\345\215\225.md"
new file mode 100644
index 0000000..c6f8576
--- /dev/null
+++ "b/\345\221\250\350\212\267\350\216\271/20220525-PHP+Mysql+\350\241\250\346\240\274\350\241\250\345\215\225.md"
@@ -0,0 +1,211 @@
+# 笔记
+
+1. html中的meta是字符集的意思
+2. 想要修改或上传数据就要放入表单(input)
+
+
+
+# 作业
+
+```php+HTML
+
+
+
添加学生信息
+
+
+添加学生信息
+
+
+
+
+返回主页";
+}else{
+ echo ""; // history.go(-1):返回上一步
+}
+
+
+
+
+ 学生管理系统 - 首页
+
+
+
+
+学生管理系统 - 首页
+
+
+ id |
+ name |
+ score |
+
+ 没有数据! | ";
+ } else {
+
+ while ($arr = mysqli_fetch_assoc($result)) { // 从数据里得到一行,以数组的形式返回
+ ?>
+
+
+ |
+ |
+ |
+ 编辑| 删除 |
+
+
+
+
+
+添加学生信息
+
+
+
+返回主页";
+}else{
+ echo "";
+}
+
+
+
+
+ 学生管理系统 - 首页
+
+
+
+学生管理系统 - 首页
+
+
+
+
+返回主页";
+}else{
+ echo "";
+}
+```
+
diff --git "a/\345\221\250\350\212\267\350\216\271/20220601-Cookie+Session\344\274\232\350\257\235.md" "b/\345\221\250\350\212\267\350\216\271/20220601-Cookie+Session\344\274\232\350\257\235.md"
new file mode 100644
index 0000000..73c7ba7
--- /dev/null
+++ "b/\345\221\250\350\212\267\350\216\271/20220601-Cookie+Session\344\274\232\350\257\235.md"
@@ -0,0 +1,129 @@
+# 笔记
+
+1. 表单快捷键:!+Tab
+
+2. th就是td,但th能加粗
+
+3. 复制当前行:ctrl+D
+
+4. action:表示数据提交给谁(php的文件名.php) // 后面不写就默认给自己
+
+5. onclick:点击后会发生的事
+
+6. alert:警告(弹出一个弹窗)
+
+7. include_once:引入数据库的文件
+
+8. 一个$:键名
+
+ 两个$:变量
+
+9. history.go(-1):返回上一级
+
+10. continue:跳过此次循环
+
+11. mysql_affected_rows( ):得到最近一次query运行影响的行数
+
+12. 加密:md5(”需要进行加密的字符串“)
+
+1. 通过setcookie( )函数创建Cookie:
+
+ ```php
+ bool setcookie( string $name, string $value,有效期 )
+
+ // 函数
+ $name变量名
+ $value 值
+ $expire用于表示Cookie的有效期,
+ $path用于表示Cookie在服务器端的有效路径,
+ $domain用于表示Cookie的有效域名,
+ $secure用于指定Cookie是否通过安全的HTTPS连接来传输
+ ```
+
+2. 读取Cooike:
+
+ ```php
+ // 定义一个$val作为盒子来接收
+ $val = $_ COOKIE ['key'];
+ // 例:
+
+ setcookie("loginTime",time(),time()+60)
+ if(isset$_COOKIE['loginTime'])){// isset? 是否被设置
+ echo "你上次的访问时间是".@("Y-m-d H-i-s",$_COOKIE['loginTime']);// 格式化日期
+ }else{
+ echo "首次访问本网站";
+ }
+ ```
+
+5. 空:empty( )
+
+6. Session:页面与页面之间的传递
+
+7. Cookie:将网页的变量存在电脑里
+
+8. time( ):当前时间
+
+9. 创建会话需要通过依稀啊步骤:启动会话——注册会话——使用会话——保存会话
+
+ ```php
+ // 启动会话:
+ bool session_start()
+ // bool是session_start()函数的返回值类型,如果session启动成功,该函数返回true,否则返回false
+ // 例:
+
+A.0
+B.1
+C.2
+D.3
+3、定义关联数组的时,其键名与值之间的分隔符是? B
+A.->
+B.=>
+C.:
+D.#
+4、下列说法正确的是? B
+A. 数组的下标必须为数字,且从“0”开始
+B. 数组的下标必须是连续的
+C. 数组中的元素类型必须一致
+D. 数组的下标可以是字符串 弱类型语言
+
+
+二、简答题(12分)
+1:PHP中变量有哪些基本数据类型?
+字符串型、整型、浮点型、布尔型
+2:控制流程语句有哪些?
+条件控制语句:if else、switch
+跳转控制语句:break、continue
+循环控制语句:do while、while、for循环
+
+
+三、编程题(50分):
+
+
+
+
+';// 换行
+}
+?>
+
+1 && <2,这样就没有意义
+ if ($a%$c==0) {
+ $b=0;
+ }
+ }
+ if ($b==1){
+ echo $a." ";
+ }
+}
+}?>
+
+四、操作题(30分):
+"周芷莹","age"=>19,"sex"=>'女',"score"=>80);
+foreach ($a as $b){
+ echo $b." ";
+}
+?>
+
+"red","b"=>"green","c"=>"blue");
+$key=array_search("red",$a);
+echo $key;
+?>
+
+
+```
+
--
Gitee
From aa7bfc4fc4475e2b6d4678b3761d22e0d3a6a615 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=91=A8=E8=8A=B7=E8=8E=B9?= <1191106009.com>
Date: Fri, 1 Jul 2022 08:27:59 +0800
Subject: [PATCH 2/2] zzy
---
...40\344\270\216\344\270\213\350\275\275.md" | 271 +-
...41\345\244\247\344\275\234\344\270\232.md" | 295 +
...\350\257\276\350\200\203\350\257\225.docx" | Bin 0 -> 399302 bytes
.../untitled2/.idea/.gitignore" | 8 +
.../untitled2/.idea/modules.xml" | 8 +
.../untitled2/.idea/untitled2.iml" | 8 +
.../untitled2/add.php" | 34 +
.../untitled2/delete.php" | 23 +
.../untitled2/index.php" | 17 +
.../untitled2/link.php" | 6 +
.../untitled2/select.php" | 49 +
.../untitled2/\346\263\250\346\204\217.txt" | 1 +
.../ddlb.txt" | 52 +
.../link.txt" | 5 +
.../login.txt" | 40 +
.../ordermedicinedb.sql" | 93 +
...\215\267_PHP_\345\244\247\344\272\214.zip" | Bin 0 -> 3101740 bytes
.../untitled2/.idea/modules.xml" | 8 +
.../untitled2/.idea/untitled2.iml" | 8 +
.../untitled2/.idea/workspace.xml" | 60 +
.../untitled2/add.php" | 48 +
.../untitled2/delete.php" | 14 +
.../untitled2/link.php" | 4 +
.../untitled2/select.php" | 40 +
...\215\267_Web_\345\244\247\344\272\214.zip" | Bin 0 -> 3230370 bytes
.../\350\257\225\345\215\267.pdf" | Bin 0 -> 463720 bytes
...5\345\261\217\345\267\245\345\205\267.exe" | Bin 0 -> 2763333 bytes
...\344\275\234\346\211\213\345\206\214.docx" | Bin 0 -> 139335 bytes
.../axios.min.js" | 3 +
.../vue.js" | 12014 ++++++++++++++++
30 files changed, 12904 insertions(+), 205 deletions(-)
create mode 100644 "\345\221\250\350\212\267\350\216\271/20220610-PHP\347\254\254\344\272\214\346\254\241\345\244\247\344\275\234\344\270\232.md"
create mode 100644 "\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/PHP\345\212\250\346\200\201\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225.docx"
create mode 100644 "\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/untitled2/.idea/.gitignore"
create mode 100644 "\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/untitled2/.idea/modules.xml"
create mode 100644 "\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/untitled2/.idea/untitled2.iml"
create mode 100644 "\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/untitled2/add.php"
create mode 100644 "\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/untitled2/delete.php"
create mode 100644 "\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/untitled2/index.php"
create mode 100644 "\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/untitled2/link.php"
create mode 100644 "\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/untitled2/select.php"
create mode 100644 "\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/untitled2/\346\263\250\346\204\217.txt"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_PHP_\345\244\247\344\272\214/php\350\257\225\345\215\267\344\272\214/ddlb.txt"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_PHP_\345\244\247\344\272\214/php\350\257\225\345\215\267\344\272\214/link.txt"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_PHP_\345\244\247\344\272\214/php\350\257\225\345\215\267\344\272\214/login.txt"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_PHP_\345\244\247\344\272\214/php\350\257\225\345\215\267\344\272\214/ordermedicinedb.sql"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_PHP_\345\244\247\344\272\214/\350\257\225\345\215\267_PHP_\345\244\247\344\272\214.zip"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/untitled2/.idea/modules.xml"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/untitled2/.idea/untitled2.iml"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/untitled2/.idea/workspace.xml"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/untitled2/add.php"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/untitled2/delete.php"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/untitled2/link.php"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/untitled2/select.php"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214.zip"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267.pdf"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\351\231\204\344\273\266\357\274\232\345\275\225\345\261\217\345\267\245\345\205\267/\345\275\225\345\261\217\345\267\245\345\205\267.exe"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\351\231\204\344\273\266\357\274\232\345\275\225\345\261\217\345\267\245\345\205\267/\345\275\225\345\261\217\345\267\245\345\205\267\346\223\215\344\275\234\346\211\213\345\206\214.docx"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\351\231\204\344\273\266\357\274\232\350\257\225\345\215\267\346\211\200\351\234\200\345\205\266\345\256\203\350\265\204\346\226\231/axios.min.js"
create mode 100644 "\345\221\250\350\212\267\350\216\271/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\350\257\225\345\215\267_Web_\345\244\247\344\272\214/\351\231\204\344\273\266\357\274\232\350\257\225\345\215\267\346\211\200\351\234\200\345\205\266\345\256\203\350\265\204\346\226\231/vue.js"
diff --git "a/\345\221\250\350\212\267\350\216\271/20220520-\346\226\207\344\273\266\347\232\204\344\270\212\344\274\240\344\270\216\344\270\213\350\275\275.md" "b/\345\221\250\350\212\267\350\216\271/20220520-\346\226\207\344\273\266\347\232\204\344\270\212\344\274\240\344\270\216\344\270\213\350\275\275.md"
index 46f31f0..0e44e79 100644
--- "a/\345\221\250\350\212\267\350\216\271/20220520-\346\226\207\344\273\266\347\232\204\344\270\212\344\274\240\344\270\216\344\270\213\350\275\275.md"
+++ "b/\345\221\250\350\212\267\350\216\271/20220520-\346\226\207\344\273\266\347\232\204\344\270\212\344\274\240\344\270\216\344\270\213\350\275\275.md"
@@ -24,7 +24,7 @@
!isset:如果没有设置这个变量
-5. imp-name:临时文件
+5. tmp-name:临时文件
6. xlsm:自带代码,无法运行
@@ -42,231 +42,92 @@
-# 作业
+# 文件上传
```php+HTML
-// 实现一个文件上传,限制只能上传pdf和word格式,大小为1M以内。
-
+
- 上传文件
+ 表单
-
+
-";
+";
-echo "类型:".$file['type']."
";
-echo "大小:".$file['size']."Kb"."
";
-echo "临时保存位置:".$file['tmp_name']."
";
-
-// 上传1M以内的文件
-$allow_size = 10204*10240;// 1M
-if($file['size']>$allow_size){
- echo "本系统只允许上传{$allow_size}大小的文件,你上传的文件大小是:{$file['size']}";
- die("上传文件超过允许的范围!");
-}
-
-$name=$file['name'];
-
-//echo "文件后缀是:".$namearr[count($namearr)-1];//
-// 有个函数可以直接得到数组的最后一个值,用end
-$namearr =explode('.',$name);
-$a =end($namearr);
-
-// 假设只允许上传jpg png的格式的文件
-$sz =array("pdf","word");// 0
-$sz[]="xlsm";
+// 定义一个盒子来放我的文件,并把我的文件设置成$_FILES(不设置访问权限)
+$myfile=$_FILES['myfile'];
-// 在数组找一个值。如果找到就返回这个值的键名或索引,找不到就false
-$b = array_search($a,$sz);
-if($b===false){
- die("不允许的格式!");
-}
-
-// 假设你要指定 保存的目录
-if(is_dir('./c')){ // 先判断这个路径 是不是一个目录
- $path = './c/';// 如果是就把这个路径设置为保存的目录
-}else{
- mkdir('./c'); // 如果不存在 这个目录 ,就自己建一个
- $path = './c/';
-}
-die();
-$ret = move_uploaded_file($file['tmp_name'], $path.$name);
-if($ret){
- echo "保存成功!点击查看";
-}else{
- echo "保存失败!";
+// 判断文件是否上传成功(error) 0:没有错误
+// 1:超过了允许上传的文件的大小
+// 2:超过了允许上传的最大文件数量
+// 3:文件只有部分被上传
+// 4.没有文件被上传
+// 6.找不到临时文件
+// 7.文件放入临时文件时失败
+if ($myfile['error']!=0){// 如果我提交的文件中的error不等于0则输出文件上传失败
+ echo "文件上传失败";
}
-```
-
-
-
-# 干货
-
-```php+HTML
-";
-//print_r($_FILES);
-// 判断文件是否上传成功 通过error的代码 。0 表示没有错误就是上传成功
-$myfile = $_FILES['myfile'];
-
-
-if($myfile['error']!=0){
-die("上传发生错误!");
-}
-//echo "文件名:".$myfile['name']."
";
-//echo "类型:".$myfile['type']."
";
-//echo "大小:".$myfile['size']."字节 =".($myfile['size']/1024)."KB
";
-//echo "临时保存位置:".$myfile['tmp_name']."
";
-
-
// 如果我们只能允许上传1M以内的文件 1024*1024 1B=1024字节 1KB=1024B
-$allow_size = 10204*10240;// 1M
-if($myfile['size']>$allow_size){
- echo "本系统只允许上传{$allow_size}大小的文件,你上传的文件大小是:{$myfile['size']}";
-
- die("上传文件超过允许的范围!");
-}
-$name = $myfile['name'];
-// 检测文件类型是否符合要求
-$namearr =explode('.',$name);
-//echo "文件后缀是:".$namearr[count($namearr)-1];//
-// 有个函数可以直接得到数组的最后一个值,用end
-
-$hz =end($namearr);
-// 假设只允许上传jpg png的格式的文件
-$okhz =array('jpg','png','gif','mp4',"xlsx","psd");// 0
-//$okhz[]="xlsm";
-//$isok = array_search($hz,$okhz);// 在数组找一个值。如果找到就返回这个值的键名或索引,找不到就false
-//if($isok===false){
-// die("不允许的格式!");
-//}
-
-// 直接判断一个值在不在一个数组里 用in_array()
-$isok = in_array($hz,$okhz);// 找到就返回 true 否则false
-if($isok==false){
- exit("不允许的格式!");
-}
-
-
-//if (($hz!='jpg') && ($hz!='png')){
-// echo $hz;
-// die("不允许的文件格式!");
-//}
-// 如果以上检测都通过了。说明文件满足要求。可以保存在服务器
-
-
-// 假设你要指定 保存的目录
-
-if(is_dir('./class17')){ // 先判断这个路径 是不是一个目录
- $path = './class17/';// 如果是就把这个路径设置为保存的目录
+$daxiao=1024*1024; // 因为在后台的sizi中默认的单位是字节
+if ($myfile['sizi']>$daxiao){
+ echo "本系统只允许上传{$daxiao}大小的文件,你上传的文件的大小是:{$myfile['sizi']}";
+ die("你所上传的文件的大小超过允许的范围");// die:程序死亡并停止
+}
+
+// 定义一个盒子放我提交的文件的文件名
+$name=$myfile['name'];
+// 用分割函数explode()把文件名打散为数组(分割成n段),用逗号分割开来,再定义一个盒子$fengename装起来
+$fengename=explode(",",$name);
+//用end函数得到数组的最后一个值,再定义一个盒子$end装起来
+$end=end($fengename);
+// 假设只允许上传jpg、gif、png、jpeg的格式的文件,定义一个数组$geshi给它们装起来
+$geshi=array('jpg','gif','png','jpeg');
+// 判断一个值在不在一个数组里 用in_array()函数,找到就返回 true 否则false,再定义一个盒子$tof装得到的true或false
+$tof=in_array($end,$geshi);// 判断$end里的值在不在$geshi里,找到就返回 true 否则false
+if ($tof==false){
+ echo "你上传的文件属于不允许的格式";
+}
+
+// 假设你要指定 保存的目录,先判断这个路径 是不是一个目录
+if (is_dir('./class7')){
+ // 如果是就把这个路径设置为保存的目录并用盒子$ml装起来
+ $ml='./class7';
}else{
- mkdir('./class17'); // 如果不存在 这个目录 ,就自己建一个
- $path = './class17/';
+ // 如果不存在这个目录 ,就自己建一个,并用盒子$lj装起来
+ mkdir('./class7');
+ $ml='./class7';
}
-die();
-$ret = move_uploaded_file($myfile['tmp_name'], $path.$name);
-
-if($ret){
- echo "文件保存成功!查看";
-}else{
- echo "文件保存失败!";
-}
-```
-
-```php+HTML
-";
-//echo "你提交的姓名是:".$_GET['username'];
-//echo "你提交的密码是:".$_GET['pwd'];
-
-// 案例:判断用户名和密码是否正确
-
-
-if(!isset($_GET['submit']) || $_GET['submit']!='提交'){
- die("非法访问!");
-}
-
-
-// 1,假设数据库里这样的
-$user = "admin";
-$pwd = "666";
-
-// 2 这是用户提交的数据
-$username= $_GET['username'];
-$password= $_GET['pwd'];
-
-
-// 3 判断
+// 用move_uploaded_file()函数,把文件从临时存储的地方 转移到$ml(./class7)这个目录下,并取新文件名($name),再定义一个盒子$move装起来
+$move=move_uploaded_file($myfile['tmp_name'],$ml.$name);// 注意:这个$name也可以随意重新定义,但最好用原文件名即$name
-if($username!=$user || $password!=$pwd){
- echo "用户名错误或密码错误!" ;
+if ($move){
+ // 如果移动成功,临时文件就跳转到$ml(./class7)目录下,并取新文件名($name),且保存,点击即可查看
+ echo "文件保存成功 查看";
}else{
- echo "登录成功!";
+ echo "文件保存失败";
}
```
diff --git "a/\345\221\250\350\212\267\350\216\271/20220610-PHP\347\254\254\344\272\214\346\254\241\345\244\247\344\275\234\344\270\232.md" "b/\345\221\250\350\212\267\350\216\271/20220610-PHP\347\254\254\344\272\214\346\254\241\345\244\247\344\275\234\344\270\232.md"
new file mode 100644
index 0000000..21e98e7
--- /dev/null
+++ "b/\345\221\250\350\212\267\350\216\271/20220610-PHP\347\254\254\344\272\214\346\254\241\345\244\247\344\275\234\344\270\232.md"
@@ -0,0 +1,295 @@
+# 作业
+
+```php+HTML
+一、选择题(6分)
+1、下面哪项描述是错误的? A
+A.静态成员必须实例化对象才能使用
+B.成员变量需要用public protected private修饰,在定义变量时不再需要var关键字
+C.类中的普通方法只能实例化对象才能进行调用
+D.包含抽象方法的类必须为抽象类,抽象类不能被实例化
+2、关于面向对象的说法不正确的是? D
+A:OOP是面向对象的简称
+B:静态方法不用实例化对象就能调用
+C:类里面的$this关键字代表该对象本身
+D:普通方法不用实例化对象就能调用
+3、面向对象的三大特性中哪个不属于封装的做法? B
+A 将成员变为私有的
+B 将成员变为公有的
+C 封装方法来操作成员
+D 使用private修饰方法
+
+二、简答题(4分)
+1:面象对象的三大特性是什么?
+多态,封装,继承
+
+三、操作题(90分)
+1、制作一个文件上传的页面,完成文件上传功能。(30分)
+限制规则:
+上传的文件不能超过1M,
+上传文件的类型只能是jpg、gif、png、jpeg,
+对上传的文件进行保存。
+// a.php
+
+
+
+
+ 表单
+
+
+
+
+
+
+// a.1.php
+'; // 代码整齐排列
+// print_r:打印
+// $_FILES:超全局数组(它不受访问限制,在任何地方都可以看)
+print_r($_FILES); // 打印超全局数组
+// 我的文件名:myfile
+
+// 定义一个盒子来放我的文件,并把我的文件设置成$_FILES(不设置访问权限)
+$myfile=$_FILES['myfile'];
+
+
+// 判断文件是否上传成功(error) 0:没有错误
+// 1:超过了允许上传的文件的大小
+// 2:超过了允许上传的最大文件数量
+// 3:文件只有部分被上传
+// 4.没有文件被上传
+// 6.找不到临时文件
+// 7.文件放入临时文件时失败
+if ($myfile['error']!=0){// 如果我提交的文件中的error不等于0则输出文件上传失败
+ echo "文件上传失败";
+ die();
+}
+
+// 如果我们只能允许上传1M以内的文件 1024*1024 1B=1024字节 1KB=1024B
+$daxiao=1024*1024; // 因为在后台的size中默认的单位是字节
+if ($myfile['size']>$daxiao){
+ echo "本系统只允许上传{$daxiao}大小的文件,你上传的文件的大小是:{$myfile['size']}";
+ die("你所上传的文件的大小超过允许的范围");// die:程序死亡并停止
+}
+
+// 定义一个盒子放我提交的文件的文件名
+$name=$myfile['name'];
+// 用分割函数explode()把文件名打散为数组(分割成n段),用逗号分割开来,再定义一个盒子$fengename装起来
+$fengename=explode(".",$name);
+//用end函数得到数组的最后一个值,再定义一个盒子$end装起来
+$end=end($fengename);
+// 假设只允许上传jpg、gif、png、jpeg的格式的文件,定义一个数组$geshi给它们装起来
+$geshi=array('jpg','gif','png','jpeg');
+// 判断一个值在不在一个数组里 用in_array()函数,找到就返回 true 否则false,再定义一个盒子$tof装得到的true或false
+$tof=in_array($end,$geshi);// 判断$end里的值在不在$geshi里,找到就返回 true 否则false
+if ($tof==false){
+ echo "你上传的文件属于不允许的格式";
+ die();
+}
+
+// 假设你要指定 保存的目录,先判断这个路径 是不是一个目录
+if (is_dir('./class7')){
+ // 如果是就把这个路径设置为保存的目录并用盒子$ml装起来
+ $ml='./class7';
+}else{
+ // 如果不存在这个目录 ,就自己建一个,并用盒子$lj装起来
+ mkdir('./class7');
+ $ml='./class7';
+}
+
+// 用move_uploaded_file()函数,把文件从临时存储的地方 转移到$ml(./class7)这个目录下,并取新文件名($name),再定义一个盒子$move装起来
+$move=move_uploaded_file($myfile['tmp_name'],$ml.$name);// 注意:这个$name也可以随意重新定义,但最好用原文件名即$name
+
+if ($move){
+ // 如果移动成功,临时文件就跳转到$ml(./class7)目录下,并取新文件名($name),且保存,点击即可查看
+ echo "文件保存成功 查看";
+}else{
+ echo "文件保存失败";
+ die();
+}
+
+2、创建如下数据库和表。(10分)
+create database company charset utf8;
+use company;
+CREATE table department(
+id int PRIMARY key auto_increment COMMENT '部门ID',
+name varchar(32) not null unique COMMENT '部门名称',
+description varchar(1024) COMMENT '部门简介');
+INSERT into department(id,name,description) VALUES(1,"人力资源部","管理人员信息"),(2,"市场部","负责市场客户开发及客户维护"),(3,"财务部","负责公司财务"),(4,"软件开发部","负责公司软件开发");
+
+3、实现对部门信息数据的增删改查。(50分) [详细的图片见word]
+// link.php(连接数据库)
+
+
+新增
+
+ 部门编号 | 部门名称 | 部门描述 | 操作 |
+
+ ";
+ echo "$id | $name | $jieshao | 更新 删除 | ";
+ echo "";
+
+ }
+ ?>
+
+
+// update.php
+
+
+
+// update_do.php
+0){
+ echo "数据更新成功";
+}else{
+ echo "数据更新失败";
+}
+
+// delete.php
+0){
+ echo "删除成功 查看";
+}else{
+ echo "删除失败";
+}
+
+// add.php
+查看";
+ }else{
+ die("添加失败!");
+ }
+}
+?>
+
+
+
+
+
+ 添加数据
+
+
+
+
+
+
+注意:在表单中没有输入框的就要写value,但文件上传例外
+```
+
diff --git "a/\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/PHP\345\212\250\346\200\201\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225.docx" "b/\345\221\250\350\212\267\350\216\271/PHP\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225/PHP\345\212\250\346\200\201\347\275\221\347\253\231\345\274\200\345\217\221\347\273\223\350\257\276\350\200\203\350\257\225.docx"
new file mode 100644
index 0000000000000000000000000000000000000000..7ed75373548dfee9d209245939c8eab864d0df4d
GIT binary patch
literal 399302
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