後端開發技術教學(三) 表單提交、數據處理

上回:後端開發技術教學(二) 條件指令、循環結構、定義函數 -CSDN博客

必要資源:

trae中文版下載網址:?TRAE - The Real AI Engineer

phpStudy 2018 :?phpStudy - Windows 一鍵部署 PHP 開發環境 · 小皮出品


目錄

一、表單提交

? ? ? ? 1.1? get & post

? ? ? ? 1.2 提交流程

二、超全局變量

? ? ? ? 2.1? $_GET

? ? ? ? 2.2? $_POST

三、實際操作

? ? ? ? 3.1? 表單製作

? ? ? ? 3.1.1? 數據為文件

? ? ? ? 3.2? 數據處理

? ? ? ? 3.2.1? 空格刪除

? ? ? ? 3.2.2? 密碼加密

? ? ? ? 3.2.3? 臨時存儲至統一變量

? ? ? ? 3.2.4? 其他字符串處理函數

? ? ? ? ? ? ? ? 3.2.4.1? 輸出特殊字符

? ? ? ? 3.3? 數據儲存

四、小結


????????上期我們講解了一些PHP的結構指令及定義函數,那麼這期我們就來說說服務器是怎麼接收用戶提交的數據的。

一、表單提交

? ? ? ? 在學習表單提交之前首先需要理解甚麼是get、post和url。

? ? ? ? 1.1? get & post

=> 兩個用於請求收集數據的語句。

特性GETPOST
數據位置URL 參數(可見)HTTP 請求正文(不可見)
安全性低(適合非敏感數據)高(適合密碼、個人信息)
使用場景搜索、分頁等簡單操作註冊、登錄、數據提交
PHP 獲取方式$_GET['參數名']$_POST['參數名']
  • ?get: 即url(網址)中的"?",'?'後面的就是GET收集到的數據。

  • post: 隱藏在請求主體中(要抓包才能看到內容)。

? ? ? ? 1.2 提交流程

=> 這邊用在csdn更改用戶資料作例子。

? ? ? ? i.) 用戶發送更改資料的請求給服務器。

? ? ? ? ii.)?服務器把上傳數據的頁面發送給用戶(包括get或post請求)

? ? ? ? iii.) 用戶把新數據發送給服務器

????????iv.)?服務器收到儲存數據的臨時文件(臨時文件存在時間非常短)

? ? ? ? v.)?服務器馬上把數據存儲起來

? ? ? ? vi.)?服務器響應(資料更新成功)

二、超全局變量

? ? ? ? 超全局變量是指已經預定義的變量,類似於系統已經定義的函數,分別在於這次是變量。

? ? ? ? 2.1? $_GET

=> 專門用於儲存從GET請求中收集到的數據,收集到的數據會以數組的方式儲存 ( [標]=>[值] ),

若是不知道數組大家可以先稍微看一下上期的文章哈。

=> 比如我在表單(get請求)上的name欄填寫了111。password欄填寫了111111

=> 提交之後就會自動填寫到url中(?標=值 & 標=值),以數組的方式儲存。

//提交後,get請求收集到的數據會存到$_GET變量中
print_r($_GET);    //因為是數組所以要用print_r()::輸出:Array([username]=>111 [passsword]=>111111)//也可以單獨引出數據
echo $_GET["username"];    //因為是字符,所以用echo::輸出:111

????????

? ? ? ? 2.2? $_POST

跟$_GET大差不差,分別只在於:

  • post提交的數據,不會顯示在url上(不可見)。
  • post提交的數據會存於$_POST中。

? ? ? ? => post會用於傳輸個人資料等敏感訊息(數據不顯示,需抓包才能看到)

三、實際操作

? ? ? ? 接收上傳數據主要有3個步驟: 表單製作、數據處理、存儲數據。

? ? ? ? 3.1? 表單製作

* 要是看不懂下面的代碼,可以稍微看一看前端篇1(文末鏈接)

<form action="" method="get">    //以get的方式接收數據name:<input type="text" name="username"><br>         //下標="username",值=輸入的數值password:<input type="password" name="password"><br>    //下標="password"<input type="submit" value="上傳">
</form>//POST也是同理可證
<form action="" method="post">    //只是數據接收方式不同而己

* input 中的name參數等於甚麼,下標就是甚麼

? ? ? ? 3.1.1? 數據為文件

? ? ? ? 若要上傳文件類的數據,所用的代碼就與字符串的不一樣。首先就要滿足2個條件

  • method屬性=表單提交方式必須為POST

  • enctype屬性=form表單屬性,用以規範表單數據的編碼方式enctype="multipart/form-data"

? ? ? ? => 默認的編碼方式無法上傳2進制文件,會轉義特殊字符。

<form action="數據要提交到的網址" method="post" enctype="multipart/form-data"><input type="file">
</form>!!$_FILES是2維數組
::$_FILES變量默認接收上傳檔案
**$_FILES的下標是定死的,不像name和password一樣是自定義的::分別是[name], [type], [tmp_name], [error], [size][name]=文件原始名
[type]=MIME類型
[tmp_name]=臨時存儲路徑
[error]=文件是否上傳成功
[size]=文件大小(KB)

=> $_FILES是2維數組

//若要引用[name]數據
echo $_FILES['file']["name"]

? ? ? ? 3.2? 數據處理

=> 密碼需要通過加密儲存,用戶名可能有多餘的空格需要刪除,又或者會有中文亂碼的問題。還要將同一類數據賦值到統一變數中,方便存儲。

? ? ? ? 3.2.1? 空格刪除

????????把名字旁多餘的空格刪除。

????????????????=> 會把"111"左邊的所有空格刪除

//get和post都是一樣的
trim($_POST["username"]);    //把值兩邊的空格刪掉
trim($_GET["username"]);     //從收集的數據中,找到標為"username"的值echo trim("    HI    ");
::輸出:HI

? ?

? ? ? ? 3.2.2? 密碼加密

? ? ? ? 把密碼加密成32位密文,確保安全存儲。

//get和post都是一樣的
md5($_GET["password"]);    //從收集的數據中,找到標為"password"的值
md5($_POST["password"]);   //把值加密成32位密文

? ? ? ? 3.2.3? 臨時存儲至統一變量

? ? ? ? 因為存儲命令中需要輸入具體的值,將其賦值到統一變量中就不用每次都重新手動輸入不同的值。

$username=trim($__POST['username']);    //把空格刪除後把值賦到$username變量中
$username=trim($__GET['username']);     //每次接收 用戶名 數據,都會存到$username變量中$password=md5($_POST["password"]);    //把數據加密後把值賦到$password變量中
$password=md5($_GET["password"]);     //每次接收 密碼 數據,都會存到$password變量中//get和post都是一樣的

? ? ? ? 3.2.4? 其他字符串處理函數

? ? ? ? 這裡只跟大家講功能哈,怎麼個用法大家用的時侯查一下就好,不用特別記。

  • ltrim()

? ? ? ? ?刪除字符串左邊的空白字符,或指定字符

  • rtrim()

? ? ? ? ?刪除字符串右邊的空白字符,或指定字符

  • trim()

? ? ? ? ?刪除字符串兩邊的空白字符,或指定字符

  • strlen()

? ? ? ? ?獲取字符串的長度

  • substr()

? ? ? ? ?字符串截取

  • str_replace()

? ? ? ? ?字符串替代

  • strtolower()

? ? ? ? ?將字符串(英文)轉為小寫(a,b,c)

  • strtoupper()

? ? ? ? ?將字符串轉為大寫(A,B,C)

  • strip_tags()

? ? ? ? ?刪除字符串的<html>、<xml>、<php>、<js>標籤

  • htmlspecialchars()

? ? ? ? ?把一些預定義字符轉換為HTML實體字符

echo htmlspecialchars("<hr>");    //<hr>本來是具有換行功能的
::輸出:<hr>                       //<hr>失去換行了功能,會直接輸出::後面講數據庫的時侯會細說

? ? ? ? ? ? ? ? 3.2.4.1? 輸出特殊字符

? ? ? ? ? ? ? ? 字符如空格符、大小於符是不能直接輸出的,不然在網頁上顯示不出來。

&nbsp; =  表示空格符
&amp;  =  表示 & 符號
&lt;   =  表示 < (小於符)
&gt;   =  表示 > (大於符)

? ? ? ? 3.3? 數據儲存

=> 收集到的數據會統一存儲到指定的文件中

$username=trim($__POST['username']);    //刪掉空格後,把數據存儲到$username變量中
$password=md5($_POST["password"]);      //把密碼加密儲存到$password變量中file_put_contents(<儲存到哪個文件>.<數據1>." ".<數據2>."\n");
//name和password一起保存到同一文件中
//帳號和密碼之間用空格隔開
//接一個換行符(換行以存儲另一組數據)::假設:
$username="xiaofong";
$password=(123456);
file_put_contents('1.txt',$username." ".$password."\n");
::輸出(在1.txt文件中):xiaofong 123456(換行)

四、小結

????????大家只需要記住它們的功能和運作邏輯就可以了,實操可以讓AI幫忙寫代碼,具體的之前已經說過了,這裡就不多說了。接我們會開始研究後端python、數據庫mysql以及分析漏洞哈。大家敬請期待了。


post抓包:? 如何使用burpsuite實現0元購? -CSDN博客

trae AI寫代碼:後端開發技術教學(一) [附2025最新可用 phpstudy2018下載鏈接] -CSDN博客

前端HTML:

前端開發技術教學(一) -CSDN博客

前端開發技術教學(二) -CSDN博客


後記:後端開發技術教學(四) 數據交互延伸-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92731.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92731.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92731.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python訓練Day39

浙大疏錦行 圖像數據的格式&#xff1a;灰度和彩色數據模型的定義顯存占用的4種地方 模型參數梯度參數優化器參數數據批量所占顯存神經元輸出中間狀態 batchisize和訓練的關系 一、 圖像數據的介紹 圖像數據&#xff0c;相較于結構化數據&#xff08;表格數據&#xff09;他的特…

十八、MySQL-DML-數據操作-插入(增加)、更新(修改)、刪除

DML數據操作添加數據更新(修改)數據刪除數據總結代碼&#xff1a; -- DML:數據操作語言-- -- DML:插入數據-insert -- 1.為tb_emp表的username,name&#xff0c;gender 字股插入值insert into tb_emp(username,name,gender,create_time,update_time) values (Toki,小時,2,now()…

Linux 安裝 JDK 8u291 教程(jdk-8u291-linux-x64.tar.gz 解壓配置詳細步驟)?

一、準備工作 ?下載 JDK 安裝包? 去 Oracle 官網或者可信的鏡像站下載&#xff1a; ?jdk-8u291-linux-x64.tar.gz? &#xff08;這是一個壓縮包&#xff0c;不是安裝程序&#xff0c;解壓就能用&#xff09; ?jdk-8u291-linux-x64.tar.gz?下載鏈接&#xff1a;https://pa…

藍橋杯----鎖存器、LED、蜂鳴器、繼電器、Motor

(七)、鎖存器1、原理藍橋杯中數據傳入口都是P0&#xff0c;也就是數碼管段選、位選數據、LED亮滅的數據、蜂鳴器啟動或禁用的數據&#xff0c;外設啟動或者關閉都需要通過P0寫入數據&#xff0c;那么如何這樣共用一個端口會造成沖突嘛&#xff0c;答案是肯定的。所以藍橋杯加入…

AI熱點周報(8.3~8.9):OpenAI重返開源,Anthropic放大招,Claude4.1、GPT5相繼發布

名人說&#xff1a;博觀而約取&#xff0c;厚積而薄發。——蘇軾《稼說送張琥》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 目錄一、OpenAI的"開源回歸"&#xff1a;時隔5年的戰略大轉彎1. GPT-OSS系列&a…

《Kubernetes部署篇:基于x86_64+aarch64架構CPU+containerd一鍵離線部署容器版K8S1.33.3高可用集群》

總結&#xff1a;整理不易&#xff0c;如果對你有幫助&#xff0c;可否點贊關注一下&#xff1f; 更多詳細內容請參考&#xff1a;企業級K8s集群運維實戰 一、部署背景 由于業務系統的特殊性&#xff0c;我們需要針對不同的客戶環境部署基于containerd容器版 K8S 1.33.3集群&a…

Linux抓包命令tcpdump詳解筆記

文章目錄一、tcpdump 是什么&#xff1f;二、基本語法三、常用參數說明四、抓包示例&#xff08;通俗易懂&#xff09;1. 抓所有數據包&#xff08;默認 eth0&#xff09;2. 指定接口抓包3. 抓取端口 80 的數據包&#xff08;即 HTTP 請求&#xff09;4. 抓取訪問某個 IP 的數據…

抖音、快手、視頻號等多平臺視頻解析下載 + 磁力嗅探下載、視頻加工(提取音頻 / 壓縮等)

跟你們說個安卓上的下載工具&#xff0c;還挺厲害的。它能支持好多種下載方式&#xff0c;具體多少種我沒細數&#xff0c;反正挺全乎的。? 平時用得最多的就是視頻解析&#xff0c;像抖音、快手、B 站上那些視頻&#xff0c;想存下來直接用它就行&#xff0c;連海外視頻的也能…

【iOS】JSONModel源碼學習

JSONModel源碼學習前言JSONModel的使用最基礎的使用轉換屬性名稱自定義錯誤模型嵌套JSONModel的繼承源碼實現initWithDictionaryinit__doesDictionaryimportDictionary優點前言 之前了解過JSONModel的一些使用方法等&#xff0c;但是對于底層實現并不清楚了解&#xff0c;今天…

SmartMediaKit 模塊化音視頻框架實戰指南:場景鏈路 + 能力矩陣全解析

?? 引言&#xff1a;從“內核能力”到“模塊體系”的演進 自 2015 年起&#xff0c;大牛直播SDK&#xff08;SmartMediaKit&#xff09;便致力于打造一個可深度嵌入、跨平臺兼容、模塊自由組合的實時音視頻基礎能力框架。經過多輪技術迭代與場景打磨&#xff0c;該 SDK 已覆…

【第5話:相機模型1】針孔相機、魚眼相機模型的介紹及其在自動駕駛中的作用及使用方法

相機模型介紹及相機模型在自動駕駛中的作用及使用方法 相機模型是計算機視覺中的核心概念&#xff0c;用于描述真實世界中的點如何投影到圖像平面上。在自動駕駛系統中&#xff0c;相機模型用于環境感知&#xff0c;如物體檢測和場景理解。下面我將詳細介紹針孔相機模型和魚眼相…

推薦一款優質的開源博客與內容管理系統

Halo是一款由Java Spring Boot打造的開源博客與內容管理系統&#xff08;CMS&#xff09;&#xff0c;在 GitHub上擁有超過36K Start的活躍開發者社區。它使用GPL?3.0授權開源&#xff0c;穩定性與可維護性極高。 Halo的設計簡潔、注重性能&#xff0c;同時保持高度靈活性&a…

【GPT入門】第43課 使用LlamaFactory微調Llama3

【GPT入門】第43課 使用LlamaFactory微調Llama31.環境準備2. 下載基座模型3.LLaMA-Factory部署與啟動4. 重新訓練![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/e7aa869f8e2c4951a0983f0918e1b638.png)1.環境準備 采購autodl服務器&#xff0c;24G,GPU,型號3090&am…

計算機網絡:如何理解目的網絡不再是一個完整的分類網絡

這一理解主要源于無分類域間路由&#xff08;CIDR&#xff09;技術的廣泛應用&#xff0c;它打破了傳統的基于類的IP地址分配方式。具體可從以下方面理解&#xff1a; 傳統分類網絡的局限性&#xff1a;在早期互聯網中&#xff0c;IP地址被分為A、B、C等固定類別&#xff0c;每…

小米開源大模型 MiDashengLM-7B:不僅是“聽懂”,更能“理解”聲音

目錄 前言 一、一枚“重磅炸彈”&#xff1a;開源&#xff0c;意味著一扇大門的敞開 二、揭秘MiDashengLM-7B&#xff1a;它究竟“神”在哪里&#xff1f; 2.1 “超級耳朵” 與 “智慧大腦” 的協作 2.2 突破&#xff1a;從 “聽見文字” 到 “理解世界” 2.3 創新訓練&a…

mysql出現大量redolog、undolog排查以及解決方案

排查步驟 監控日志增長情況 -- 查看InnoDB狀態 SHOW ENGINE INNODB STATUS;-- 查看redo log配置和使用情況 SHOW VARIABLES LIKE innodb_log_file%; SHOW VARIABLES LIKE innodb_log_buffer_size;-- 查看undo log信息 SHOW VARIABLES LIKE innodb_undo%;檢查長時間運行的事務 -…

華為網路設備學習-28(BGP協議 三)路由策略

目錄&#xff1a; 一、BGP路由匯總1、注&#xff1a;使用network命令注入的BGP不會被自動匯總2、主類網絡號計算過程如下&#xff1a;3.示例 開啟BGP路由自動匯總bgp100 開啟BGP路由自動匯總import-route 直連路由 11.1.1.0 /24對端 為 10.1.12.2 AS 2004.手動配置BGP路…

微信小程序中實現表單數據實時驗證的方法

一、實時驗證的基本實現思路表單實時時驗證通過監聽表單元素的輸入事件&#xff0c;在用戶輸入過程中即時對數據進行校驗&#xff0c;并并即時反饋驗證結果&#xff0c;主要實現步驟包括&#xff1a;為每個表單字段綁定輸入事件在事件處理函數中獲取當前輸入值應用驗證規則進行…

openpnp - 頂部相機如果超過6.5米影響通訊質量,可以加USB3.0信號放大器延長線

文章目錄openpnp - 頂部相機如果超過6.5米影響通訊質量&#xff0c;可以加USB3.0信號放大器延長線概述備注ENDopenpnp - 頂部相機如果超過6.5米影響通訊質量&#xff0c;可以加USB3.0信號放大器延長線 概述 手頭有1080x720x60FPS的攝像頭模組備件&#xff0c;換上后&#xff…

【驅動】RK3576-Debian系統使用ping報錯:socket operation not permitted

1、問題描述 在RK3576-Debian系統中,連接了Wifi后,測試網絡通斷時,報錯: ping www.csdn.net ping: socktype: SOCK_RAW ping: socket: Operation not permitted ping: => missing cap_net_raw+p capability or setuid?2、原因分析 2.1 分析打印日志 socktype: SOCK…