常用的三種動態網頁語言有
- ASP (Active Server Pages) : Microsoft開發的動態網頁語言,只能執行於微軟的伺服器產品
- PHP (PHP原始為Personal Home Page的縮寫,已經正式更名為"PHP: Hypertext Preprocessor")
- JSP (Java Server Pages) : 適合基於 JAVA 技術的 JSP(結合 JavaBean 和 EJB )
XAMPP
XAMPP 是一個把 Apache 網頁伺服器與 PHP、Perl 及 MariaDB 集合在一起的安裝包,允許用戶可以在自己的電腦上輕易的建立網頁伺服器。使用 XAMPP ,PHP 檔案都會放在 htdocs。
htdocs
是 host documents 的縮寫。直接翻譯就是主機文件。Hosts 文件主要作用是定義 IP 地址和主機名的映射關係,是一個映射 IP 地址和主機名的規定。
所以之後可以在 htdocs 資料夾,新增一個資料夾裡面放 PHP 檔案。
要注意的是只有在 xampp 預設是這樣放,但其他語言或 PHP 其他框架可能不是這樣。
用
<?php?>
包起來<?php 把 PHP 包在裡面 ?>
變數宣告,用 $ 字號來表示
javaScript :var a = 1;
php :$a = 1;
字串串接
和其他語言比較不一樣的是用.
接起來<?php $a = "aaaaaaaaa"; $b = "bbbbbbbbb"; echo $a . $b; ?>
迴圈 : 變數要 $ 開頭
<?php for($i=1; $i<=10; $i++) { echo $i; . "<br>"; } ?>
array
<?php $arr = array(1, 2, 3, 4, 5); echo "length:" . sizeof($arr) . "<br>"; echo $arr[sizeof($arr) - 1]; ?>
把 array 輸出要轉成 string
var_dump
: 函式的功能是用來印出變數的相關訊息(變數的型態跟值)
print_r
: 印出陣列(PHP Array)的內容
<?php
$arr = array("gdgsdg", 2, 3, 4, 5);
var_dump($arr);
print_r($arr);
?>
初探 PHP
在開始前一定要做的事:Disable cache
原本有快取是因為想要載入比較快,所以先把資料先暫存住。
XAMPP 有時候也會把一些資源暫存住,例如你改了一些檔案,重新整理發現沒變,可能原因是瀏覽器把暫存了之前那份檔案。
從前端傳資料給後端:GET 與 POST
- QueryString
QueryString 會自動存到 data.php,你可以用$_GET
這個特殊的變數,PHP 幫你準備好的變數
indext.php 檔
<?php
echo "gogogogo";
?>
<form method="GET" action="data.php">
name: <input name="name" />
age: <input name="age" />
<input type="submit" />
</form>
data.php 檔
<?php
if (!isset($_GET['name']) || !isset($_GET['age'])) {
echo '資料有缺,請再次填寫<br>';
exit();
}
echo "Hello" . $_GET['name'] . "<br>";
echo "Your age is" . $_GET['age'] . "<br>";
print_r($_GET);
?>
假設網址是 ?a=&b=,只有傳 key 沒有傳 value,isset 的結果依舊會是 true
必須連 key 都沒有傳,isset 才會是 false
因此針對這種檢查,會推薦使用 empty 來檢測,因為 empty 可以順便檢測空字串的狀況
PHP isset()和empty()的區別
用 empty 檢查表單是否為空,且用 $_POST
存資料
把 indext.php 檔案裡 form 的 method 改成 "POST"
<?php
if(empty($_POST['name']) || empty($_POST['age'])){
echo '資料有缺,請再次填寫<br>';
exit();
};
echo "Hello!!!" . $_POST['name'] . "<br>";
echo "Your age is" . $_POST['age'] . "<br>";
print_r($_POST);
?>
$_GET
和 $_POST
可以混用,但不建議
Cookie 簡介與實作
setcookie
:http://php.net/manual/en/function.setcookie.php
$_COOKIE
:http://php.net/manual/en/reserved.variables.cookies.php)
setcookie 常用到的三個參數 :
舉例 :
setcookie ( $name, $value, $expire)
$name = "username";
$value = $_POST['username'];
$expire = time() + 3600 * 24 * 30;
把設定好的 Cookie 取值出來,使用 $_COOKIE
echo $_COOKIE['username'];
刪除 Cookie
- 將 setcookie() 函式中第二個引數設定為空值
- 第三個引數 cookie 的過期時間設定為小於系統的當前時間,或是直接設為 0 就好
setcookie("username", "", 0);
好文推推 :
- 白話 Session 與 Cookie:從經營雜貨店開始
- 淺談 Session 與 Cookie:一起來讀 RFC
- 深入 Session 與 Cookie:Express、PHP 與 Rails 的實作
Huli 影片補充 :
die 跟 exit 這兩個 function 其實是一樣的
根據 exit 的文件:https://www.php.net/manual/en/function.exit.php
後面放的東西如果是數字的話,會被當作是一個錯誤的狀態碼然後不會被顯示出來(原本我在影片中猜測的是 HTTP status,但不是這樣),所以才會是空的
因此後面加上一個字串變成字串之後就會正常顯示出來了