2013年7月4日 星期四

《最新 PHP + MySQL + Ajax 網頁程式設計》筆記

一、PHP 基本語法

1.基本語法:

自行參閱:PHP 教學專欄




二、活用 PHP 函式

1.自訂函式:

function 函式名稱($x , $y, ...){ ... }


2.引用檔案:

include( 檔案名稱 )

require( 檔案名稱 )

*若引用檔非常重要,引用不成功會導致後面的程式錯誤,則應使用 require()。


3.限制只引用一次檔案:

include_once( 檔案名稱 )

require_once( 檔案名稱 )


4.分割字串:

explode( 分割字元, 被分割的字串 )


5.比對字串:

ereg( 用來比對的規則運算式, 要比對的字串 )


6.取代字串的內容:

str_replace( 被取代字串的部分字串, 要用來取代的字串, 被取代的字串 )

ereg_replace( 要用來比對的規則運算式, 要用來取代的字串, 被取代的字串 )

*str_replace() 常用於將字串中的特殊字元代換為 HTML 符號;ereg_replace() 常用於進行複雜的字串取代。


7.傳回格式化字串:

sprintf( 包含參數的字串, 各參數的值 )


8.寄送信件:

mail( 收件者, 標題, 內文 )


9.停止程式執行:

die( 要顯示的錯誤訊息字串 )

exit( 要顯示的錯誤訊息字串 )




三、網頁狀態管理 - Cookie 與 Session

1.Cookie 運作原理:

使用者連線網頁 -> 程式請求使用者儲存 Cookie -> 瀏覽器將 Cookie 儲存於使用者的電腦 ->  使用者對伺服器的連線帶有 Cookie -> 程式讀取 Cookie -> 使用者對伺服器的後續連線皆帶有 Cookie。


2.建立 Cookie:

setcookie( 變數名稱, 變數的值, 到期時間,以時間戳記指定 )

*setcookie() 函式執行之前,不可有 echo() 或 HTML 標籤等輸出。


3.讀取 Cookie:

$_COOKIE['Cookie變數名稱']


4.刪除 Cookie:

setcookie( 變數名稱, "", 到期時間,以時間戳記指定 )

*setcookie() 函式執行之前,不可有 echo() 或 HTML 標籤等輸出。


5.Cookie 陣列:

setcookie( "陣列名稱[ˊ陣列內各元素的索引]", 變數的值, 到期時間,以時間戳記指定 )


6.Session 運作原理:

使用者連線網站 -> 伺服器針對此次連線分配一個 SessionID -> 網頁程式使用 SessionID 存取資料。

*從連線網站直到關閉瀏覽器期間,對於該網站而言都只算是一個 Session,無論新增多少個網頁。


7.開啟 Session 功能:

session_start();

*session_start() 函式執行之前,不可有 echo() 或 HTML 標籤等輸出。


8.建立 Session:

$_SESSION[變數名稱] = 變數的值;


9.刪除 Session:

unset($_SESSION['變數名稱']);

session_unset();

*前者指定刪除該 Session 的變數;後者為刪除所有 Session 的變數。




四、伺服器端的檔案處理

1.檔案上傳:

自行參閱:PHP檔案上傳




五、SQL 基本語法

1.SQL 基本語法:

自行參閱:SQL語法教學




六、PHP 存取 MySQL 資料庫

1.連線伺服器:

mysql_connect( 伺服器位址, 帳號名稱, 密碼 )


2.設定連接資料庫的編碼:

mysql_query( "SET NAMES utf8" );


3.選擇資料庫:

mysql_select_db( 資料庫名稱 )


4.執行 SQL 敘述句:

mysql_query( SQL敘述句 );


5.以陣列方式讀取查詢結果:

mysql_fetch_array( 變數 );

mysql_fetch_row( 變數 );

*mysql_fetch_row() 回傳的陣列只會用依序排列的數字編號做為索引,而非如 mysql_fetch_array() 以欄位名稱做為索引。


6.取得查詢結果的筆數:

mysql_num_rows( 變數 );


7.避免 SQL Injection:

mysql_real_escape_string( 要過濾的字串 )

*需先確認 php.ini 是否已開啟 magic_quotes_gpc。

沒有留言:

張貼留言