首頁 後端開發 php教程 PHP 和 MySQL 基礎教學(三)

PHP 和 MySQL 基礎教學(三)

Dec 19, 2016 am 09:59 AM

這篇文章帶給大家的內容是關於PHP 和 MySQL 基礎教學(三),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

用 cookies 來追蹤識別使用者 

讓我們來看看在瀏覽器中保存的內容。如果你用的是IE5 ,在windows 目錄下有一個cookies 的目錄,裡面有很多文字文件,文件名稱都是類似於wudong@15seconds[1].txt 這樣的,這就是瀏覽器用來保存值的cookies 了。在先前的 IE 版本中, cookies 的內容是可以察看的,但現在內容已經被編碼了。在瀏覽器得到一個Web 頁面之前,它會先看這個頁面的域名,是否在cookie 中存在,如果有相比配的,瀏覽器會先把匹配的cookie 傳送到伺服器,然後才接受處理伺服器傳送過來的頁面。 

先舉個 cookies 應用的例子:當我連接到 Amazon.com 時,瀏覽器在接受第一個頁面之前會把它以前設定的 cookies 的內容傳送給 Amazon 。然後 Amazon.com 對傳送過來的內容加以檢查,看看在資料庫中有沒有相關資料,在匹配之後,在為我建立一個定制的頁面傳送到過來。 

為 cookies 賦值 

必須在伺服器傳送任何內容給客戶瀏覽器之前為 Cookies 賦值。要做到這一點, cookies 的設置就必須放在 標籤內: 

< ?php 
setcookie("CookieID", $USERID); 
?> 
< HTML> 
< BODY> 
< /BODY> 
< /HTML>
登入後複製

setcookie 函數一共有六個參數,用逗號來分隔: 

cookie 的名稱,是一個字符串,例如: "CookieID" 。其間不允許有冒號,逗號和空格。這個參數是必須的,而其它的所有參數都是可選的。如果只有這一個參數被給出,那麼這個 cookie 將會被刪除。 
cookie 的值,通常是一個字串變量,例如: $USERID 。也可以為它賦一個 ?? 來略過值的設定。 
cookie 失效的時間。如果省略(或被賦值為零), cookie 將在這個對話期( session )結束後失效。這個參數可以是絕對的時間,用 DD-Mon-YY HH:MM:SS 來表示,例如: "24-Nov-99 08:26:00" 。而更常用的是設定一個相對時間。這是透過 time() 函數或 mktime 函數來實現的。例如 time()+3600 將使得 cookie 在一個小時後失效。 
一個路徑,用來符合 cookie 的。當一個伺服器上有多個同名的 cookie 的設置,為避免混淆,就要用到這個參數了。使用 "/" 路徑的和省略這個參數的效果是一樣的。要注意的是 Netscape 的 cookie 定義是把網域放在路徑的前面的,而 PHP 則與之相反。 
伺服器的域名,也是用來匹配 cookie 的。要注意的是:在伺服器的網域前必須放上一個點( . )。例如: ".friendshipcenter.com" 。因為除非有兩個以上的點存在,否者這個參數是不能被接受的。 
cookie 的安全等級,是一個整數。 1 表示這個 cookie 只能透過「安全」的網路來傳送。 0 或省略則表示任何類型的網路都可以。 

Cookies 和變數 

當 PHP 腳本從客戶瀏覽器提取了一個 cookie 後,它將自動的把它轉換成一個變數。例如:一個名為CookieID 的cookie 將變成變數$CookieID. 

Cookies 的內容被報告存在HTTP_COOKIE_VARS 陣列中,你也可以透過這個陣列和cookie 的名稱來存取指定的cookie 值: 

reee記住每個使用者 


回過頭在來看看上面的submitform.php3 文件,它的作用是把客戶的姓名加入資料庫中,現在我想為它增加一些東西。我想為每個使用者都分配一個唯一的使用者標誌,然後把這個標誌放在Cookies 中,這樣每當使用者造訪我的網站的時候,透過cookie 和其中的使用者標誌,我就能夠知道他是誰了。 

MySQL 能夠被設定為每一個新的紀錄自動的分配一個數字,這個數字從 1 開始,以後每次自動加 1 。用一行 SQL 語句,你就可以輕鬆的為資料表添加這樣的一個字段,我把它叫做 USERID: 

PRint $HTTP_COOKIE_VARS[CookieID];
登入後複製

對這個字段我們作了一些特別的設定。首先,透過「 INT(11) 」定義它的類型為11 位元的整數;然後用「 NOT NULL 」關鍵字讓這個字段的值不能為NULL ;再用「 PRIMARY KEY 」把它設為索引字段,這樣搜尋起來就會更快;最後,「 AUTO_INCREMENT 」定義它為自動增一的欄位。 

當把使用者的姓名插入資料庫後,就應該在他們的瀏覽器上設定 cookie 了。這時利用的就是剛才我們談到的 USERID 欄位的值 : 

< ?php 
mysql_connect (localhost, username, passWord); 
mysql_select_db (dbname); 
mysql_query ("INSERT INTO tablename (first_name, last_name) 
VALUES (&#39;$first_name&#39;, &#39;$last_name&#39;) 
"); 
setcookie("CookieID", 
mysql_insert_id(), 
time()+94608000, 
"/"); /* 三年后 cookie 才会失效 */ 
?>
登入後複製

PHP 函数 mysql_insert_id() 返回在最后一次执行了 INSERT 查询后,由 AUTO_INCREMENT 定义的字段的值。这样,只要你不清除掉浏览器的 Cookies ,网站就会永远“记住”你了

读取 cookie

我们来写一个像 Amazon.com 所作的那样的脚本。首先, PHP 脚本会先检查客户浏览器是否发送了 cookie 过来,如果是那样的话,用户的姓名就会被显示出来。如果没找到 cookie 的话,就显示一个表单,让客户登记他们的姓名,然后把他添加到数据库中,并在客户浏览其中设置好 cookie 。

首先,先来显示 cookie 的内容:

< ?php 
print $CookieID; 
?>
登入後複製

然后,就可以把名字显示出来了:

< ?php 
mysql_connect (localhost, username, password); 
mysql_select_db (dbname); 
$selectresult = mysql_query ("SELECT * FROM tablename 
WHERE USERID = &#39;$CookieID&#39; 
"); 
$row = mysql_fetch_array($selectresult); 
echo " 欢迎你的光临 ", $row[first_name], "!"; 
?>
登入後複製

就是这样的了。我在其中没有作判断,交给你自己来完成好了 

以上就是PHP 和 MySQL 基础教程(三)的内容,更多相关内容请关注PHP中文网(www.php.cn)! 

相关推荐: 

 关于mysql 基础知识的总结 

 PHP 和 MySQL 基础教程(一) 

 PHP 和 MySQL 基础教程(二) 

 PHP 和 MySQL 基础教程(三) 

 PHP 和 MySQL 基础教程(四)

mysql手册教程:http://www.php.cn/course/37.html

mysql视频教程:http://www.php.cn/course/list/51.html

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP的目的:構建動態網站 PHP的目的:構建動態網站 Apr 15, 2025 am 12:18 AM

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP:處理數據庫和服務器端邏輯 PHP:處理數據庫和服務器端邏輯 Apr 15, 2025 am 12:15 AM

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

為什麼要使用PHP?解釋的優點和好處 為什麼要使用PHP?解釋的優點和好處 Apr 16, 2025 am 12:16 AM

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

MySQL的角色:Web應用程序中的數據庫 MySQL的角色:Web應用程序中的數據庫 Apr 17, 2025 am 12:23 AM

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

docker怎麼啟動mysql docker怎麼啟動mysql Apr 15, 2025 pm 12:09 PM

在 Docker 中啟動 MySQL 的過程包含以下步驟:拉取 MySQL 鏡像創建並啟動容器,設置根用戶密碼並映射端口驗證連接創建數據庫和用戶授予對數據庫的所有權限

See all articles