PHP-WEB交互「程式設計師培養之路第四十天」

2020-12-26 申霖

第一節 PHP與Web頁面交互

PHP與Web頁面交互是實現PHP網站與用戶交互的重要手段。

在PHP中提供了兩種與Web頁面交互的方法,一種是通過Web表單提交數據,另一種是直接通過URL參數傳遞數據。

Web表單提交數據有兩種方式:GET方法和POST方法

POST方法不依賴於URL,不會將傳遞的參數值顯示在地址欄中,而是將參數值放置在是HTTP包的包體中,這樣可以傳輸更多的內容,傳輸方法也更加安全,所以POST方法通常用於上傳信息。

PHP

GET方法完全依賴於URL,參數值會附在URL之後,以?分割URL和傳輸數據,多個參數用&連接,這樣傳輸安全性很低,而且受到URL長度的限制,傳輸內容很小,所以GET方法通常用於獲取信息。

Web表單用get方法提交數據,最終效果如同直接通過URL參數傳遞數據。

PHP針對這兩種請求方法,提供了兩個全局變量 _GET[ ],分別用來獲取POST請求和GET請求的參數值。

$_GET[ ]

建立一個get請求的表單頁面名叫form_get.html:

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>GET方式的表單</title> </head> <body> <form action="form_get.php" method="get"> 帳戶:<input name="username" type="text" /><br /> 密碼:<input name="password" type="password" /><br /> 郵箱:<input name="email" type="email" /><br /> <input type="submit" /> </form> </body></html>

<?phpecho "<pre>"; var_dump ( $_GET ); $username = $_GET ["username"]; $password = $_GET ["password"]; $email = $_GET ["email"]; echo "<br />接收到的帳戶:" . $username; echo "<br />接收到的密碼:" . $password; echo "<br />接收到的郵箱:" . $email;?>

$_POST[ ]

同formget.html,我們建立一個名叫formpost.html,內容僅僅把<form>元素的action和method修改一下:

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>POST方式的表單</title> </head> <body> <form action="form_post.php" method="post"> 帳戶:<input name="username" type="text" /><br /> 密碼:<input name="password" type="password" /><br /> 郵箱:<input name="email" type="email" /><br /> <input type="submit" /> </form> </body></html>

運行界面除了地址欄和標題欄,其他內容完全和formget.html一致。這時候點擊跳轉到同目錄下的formpost.php文件,文件內容為:

<?phpecho "<pre>";var_dump ( $_POST );$username = $_POST ["username"];$password = $_POST ["password"];$email = $_POST ["email"];echo "<br />接收到的帳戶:" . $username;echo "<br />接收到的密碼:" . $password;echo "<br />接收到的郵箱:" . $email;?>

第二節 會話控制

會話控制是一種跟蹤用戶的通信方式

例如:當一個用戶在請求一個頁面後,再次請求這個頁面,網站是無法知道這個用戶剛才是否曾經來訪問過。由此我們就會覺得奇怪,平時我們在電商網站購物時,只要我們在這個站點內,不論我們怎麼跳轉頁面,網站總會記得我是誰,這是怎麼做到的呢?這就是運用了HTTP會話控制。在網站中跟蹤一個變量,通過對變量的跟蹤,使多個請求事物之間建立聯繫,根據授權和用戶身份顯示不同的內容、不同頁面。

cookie

cookie是在伺服器端創建,並寫回到客戶端瀏覽器

瀏覽器接到指令則在本地臨時文件夾中創建了一個cookie文件,其中保存了你的cookie內容

客戶端瀏覽器每次訪問網站時,都會檢測是否有該網站的cookie信息,如果有的話,也會同時發送過去。

注意:

cookie內容的存儲是鍵/值對的方式,鍵和值都只能是字符串。

定義cookie

setcookie(鍵, 值, 有效期(秒))setcookie("name","zhangsan",time()+1000); //如果不設置有效期,關閉瀏覽器就會消失setcookie("pwd","123",time()+1000);

刪除cookie(設定過期時間,使失效)

setcookie("name","",time()-1);setcookie('age',null,time()-1);setcookie('sex',"",time()-1);

session

session與cookie相似,只是原來將信息存在客戶端,現在保存到服務端

客戶端第一次訪問時將信息保存到伺服器,同時分配給用戶一個固定長度的字符串(sessionID),並以cookie方式保存在客戶端

在php.ini配置文件中,可以指定這個sessionID的名稱:

session.name = PHPSESSID

開啟session 要保證在它之前,沒有向瀏覽器輸出過任何內容,通常放在代碼第一行

session_start();

往session中存儲信息

$_SESSION['name'] = '張三';$_SESSION['sex'] = '男';$_SESSION['age'] = 18;

獲取session信息

$name=$_SESSION['name'];

銷毀session中的信息

unset($_SESSION);

銷毀session文件

session_destroy();

銷毀客戶端cookie信息

setcookie('PHPSESSID','',time()-1);

cookie與session的區別

建議將登陸信息等重要信息存放為session,其他信息如果需要保留,可以放在cookie中

PHP-GD庫「程式設計師培養之路第三十九天」

PHP-文件上傳和下載「程式設計師培養之路第三十八天」

PHP-文件處理系統「程式設計師培養之路第三十七天」

相關焦點

  • PHP-文件上傳和下載「程式設計師培養之路第三十八天」
    第一節 上傳設置客戶端設置form:method=post、enctype="multipart/form-data" input:type=file<form action="upload.php
  • PHP操作MySQL-訪問資料庫「程式設計師培養之路第四十八天」
    php$server = "localhost"; $username = "root"; $password = "123456"; $dbname = "php_db"; // 快速寫法 $mysqli = new mysqli ( $server, $username, $password, $dbname ); // 兼容寫法 $mysqli = new
  • PHP-語言基礎「程式設計師培養之路第三十一天」
    php.......?>注意:純php腳本文件要求:1. 開始標籤要在第一行頂頭寫;2. 刪除結束標籤。php echo false; //輸出:""?PHP-網站介紹「程式設計師培養之路第三十天」MySQL-函數「程式設計師培養之路第二十九天」
  • PHP操作MySQL-SQL注入及附錄「程式設計師培養之路第五十二天」
    PHP附錄:PHP的報錯級別$_SERVER參數PHP操作MySQL-解析結果集「程式設計師培養之路第五十一天」PHP操作MySQL-預處理語句「程式設計師培養之路第五十天」PHP操作MySQL-其他「程式設計師培養之路第四十九天」
  • jQuery-DOM操作和篩選「程式設計師培養之路第二十天」
    web第三節 包裹 wrap() 把所有匹配的元素用其他元素的結構化標記包裹起來 unwrap() 這個方法將移出元素的父元素。web第四節 替換 replaceWith() 將所有匹配的元素替換成指定的HTML或DOM元素 replaceAll() 用匹配的元素替換掉所有 selector匹配到的元素第五節
  • JavaScript字符串「程式設計師培養之路第十一天」
    web開發第二節 字符串的方法slice()slice(start[,end]),start--開始索引 end--結束索引var str = "中華人民共和國";var str1 = str.slice
  • jQuery-效果「程式設計師培養之路第二十二天」
    其一屬性名是比如操 作的是 title 屬性,那屬性名就寫 title,其二值,如果是設置屬性的值,就將值寫 在第二個參數的位置,如果是獲取屬性的值,就不用加第二個參數webjQuery-事件「程式設計師培養之路第二十一天」
  • Laravel-響應信息「程式設計師培養之路第五十八天」
    將指定目錄下的指定文件信息進行下載return response()->download($pathToFile, $name);第四節 文件響應若你想要將文件直接輸出至網頁,而不是下載【例如圖像或是PDF】,你可以使用如下方法return response()->file($pathToFile);Laravel-獲取請求「程式設計師培養之路第五十七天
  • JavaScript面向對象「程式設計師培養之路第十四天」
    web第二節、定義對象字面量創建假如我們把貓看成是一類,都有名字和顏色的屬性,那麼,每一隻貓就是這個類的實例,我們可以使用字面量方式定義對象:var cat1 = {name:"web第三節、原型和原型鏈每類對象的實例對象,都有可能會有一些相同的屬性,或者相同的功能,如果都寫在構造函數上,會造成重複的內容,佔用更多的內存。
  • JavaScript運算「程式設計師培養之路第八天」
    num1 : num2;console.log(max);第七節 隱式轉換+號在不同情況下的區別console.log(3 + 5 + "hello"); //8 helloconsole.log("hello" + 3 + 5); // hello 35JavaScript 語法基礎「程式設計師培養之路第七天」CSS樣式「程式設計師培養之路第六天
  • JavaScript正則表達式「程式設計師培養之路第十二天」
    JavaScript字符串「程式設計師培養之路第十一天」JavaScript數組「程式設計師培養之路第十天」JavaScript分支循環「程式設計師培養之路第九天」
  • PHP-函數「程式設計師培養之路第三十三天」
    第一節 函數的分類系統函數php提供了豐富的系統函數,可直接使用。這些函數涵蓋了軟體開發的大部分功能,具體的使用方法,請查看php開發手冊。1; //靜態變量 $a++; echo $a;}test(); //2test(); //3test(); //4echo $a; 報錯 靜態變量只作用於函數內部,外部無法讀取第五節 超全局變量超全局變量在全部作用域中始終可用的內置變量獲取 application/json的post數據php
  • CSS樣式「程式設計師培養之路第六天」
    web第七節、浮動float1、浮動原理浮動使元素脫離文檔普通流,漂浮在普通流之上的。position:fixedCSS 選擇器「程式設計師培養之路第五天」CSS 概述「程式設計師培養之路第四天」頁面結構與模塊劃分「程式設計師培養之路第三天」
  • PHP操作MySQL-其他「程式設計師培養之路第四十九天」
    配置PDOWindows下啟動PDO需要在「php.ini」文件中進行配置,添加擴展:extension=php_pdo.dll在最新版PHP中,PDO已經默認開啟,只需要啟動其他資料庫擴展即可。配置好這些後重啟Apache服務。執行phpinfo()函數,看到PDO配置項,說明開啟成功。
  • JavaScript教程-事件「程式設計師培養之路第十六天」
    第一節 事件用戶在瀏覽網頁時,會產生各種各樣的交互事件,比如滑鼠點擊事件、敲擊鍵盤事件等。這樣的事件行為都是通過操作DOM上的一類特殊屬性來實現的---DOM事件,不同的DOM事件會有不同的觸發條件和交互效果。有些DOM事件是所有DOM對象都有的,而有些DOM事件,是部分DOM對象獨有的。
  • java和php在web開發方面對比分析
    比較php和jsp這兩個web開發技術,在目前的情況是其實是比較php和java的web開發。語法和c語言比較象,所以學過c語言的程式設計師可以很快的熟悉php的開發。而java需要先學好java的語法和熟悉一些核心的類庫,懂得面向對象的程序設計方法。所以java不如php好學。java首先要編譯成字節碼.class文件,然後在java虛擬機上解釋執行。
  • 文本標籤「程式設計師培養之路第二天」
    <dt>學習WEB前段需要掌握哪三種語言</dt> <dd>需要掌握HTML,搭建網頁結構</dd> <dd>需要掌握CSS,用於修改網頁結構的樣式</dd> <dd>需要掌握JavaScript,用於用戶和計算機交互
  • PHP丨PHP基礎知識之條件語IF判斷「理論篇」
    if語句是指程式語言(包括c語言、C#、VB、java、php、彙編語言等)中用來判定所給定的條件是否滿足,根據判定的結果(真或假)決定執行給出的兩種操作之一。if語句概述if語句是指程式語言(包括c語言、C++、C#、java、php、VB、彙編語言等)中用來判定所給定的條件是否滿足,根據判定的結果(真或假)決定執行給出的兩種操作之一。if的返回值為真或假,可以用bool型變量進行存儲,佔用一字節。
  • CSS 概述「程式設計師培養之路第四天」
    web第三節、CSS的繼承 CSS的某些樣式是具有繼承性的,那麼什麼是繼承呢?
  • 「推薦」收藏過千,給新手的7個入門php實戰項目
     對代碼、編程感興趣的可以關注「老K玩代碼」公眾號和我交流!它為我們解釋了最基本的web伺服器工作流。經過學習,可以熟悉了socket建立等操作流程。深入講解接口協議,讓同學了解web伺服器如何解析動態語言。