這篇文章又針對表單進行了一些進階的寫法
比如加入程式碼計算使用者年紀
或是加入審核機制防呆等
算出使用者年紀
用到date、strtotime
1 2
| $now=date("Y"); $birth_year=date("Y",strtotime($birth));
|
1 2 3 4 5 6 7 8 9
| $birth=$_POST["birth"]; $now=date("Y"); $birth_year=date("Y",strtotime($birth)); echo "<h1>Hello world! Welcome ".$username."!</h1><br>". "你的密碼是:".$_POST["password"]."<br>". "你的性別是:".$sex."<br>". "你的生日是:".$_POST["birth"]."<br>". "你今年".($now-$birth_year)."歲<br>";
|
加入表單驗證範例
最簡單版本,用html的方法寫:在input裡加上required
1
| <input type="text" name="username" placeholder="輸入姓名" required>
|
用empty檢查(兩個php版)
1 2 3 4 5 6 7 8 9 10
| <?php if(empty($_POST["username"])){ echo "請輸入姓名!"; } if(empty($_POST["password"])){ echo "請輸入密碼!"; } else{ $username=$_POST["username"]; ...
|
把所有東西都寫在一頁中
只需要一頁index.php
一樣有輸入的表單、處理輸入後端、顯示的前端
Part a. 輸入表單
重點在於action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"
還有最後submit給一個name,等一下後端處理會用到
1 2 3 4 5 6 7 8 9
| <h1>Welcome <?php echo $username ?></h1> <form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" > 姓名:<input type="text" name="username" placeholder="輸入姓名">   <?php echo $usernameErr?><br><br> 密碼:<input type="password" name="password" placeholder="輸入密碼">   <?php echo $passwordErr?><br><br> 性別:<input type="radio" name="sex" value=0>男 <input type="radio" name="sex" value=1>女    <?php echo $sexErr?><br><br> 生日:<input type="date" name="birth">  <?php echo $birthErr?><br><br>
<input type="submit" name="submit" value="送出"> </form>
|
Part b. 後端處理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| <?php $username=$password=$sex=$birth=""; $usernameErr=$passwordErr=$sexErr=$birthErr=""; if($_SERVER["REQUEST_METHOD"] = "POST"){ if (isset($_POST["submit"])){ if(empty($_POST["username"])){ $usernameErr="請輸入名字"; } else{ $username=$_POST["username"]; } if(empty($_POST["password"])){ $passwordErr="請輸入密碼"; } else{ $password=$_POST["password"]; } if(empty($_POST["sex"])){ $sexErr="請選擇性別"; } else{ if($_POST["sex"]==1){ $sex="女性"; }else{ $sex="男性"; } } if(empty($_POST["birth"])){ $birthErr="請選擇出生年月日"; $age=0; } else{ $birth=$_POST["birth"]; $age=date("Y")-date("Y",strtotime($birth)); } } } ?>
|
Part c. 前端顯示
1 2 3 4 5 6 7 8 9
| <?php if (isset($_POST["submit"]) && !empty($username)&& !empty($password)&& !empty($sex)&& !empty($birth)){ echo "<h2>Hello ".$username."!</h2><br>"; echo "你的密碼是:".$password."<br>"; echo "你的性別是:".$sex."<br>"; echo "你的生日是:".$birth."<br>"; echo "你今年".$age."歲<br>"; } ?>
|
成功後會顯示下面畫面:
相關補充
修改Port號
(1) AppServ:
(2) Xampp:
開啟檔案後搜尋”listen”,改成8080
原本只需輸入localhost/
就可以顯示
現在必須輸入localhost:8080/
把PHP的錯誤訊息打開(Error 500)
(1) AppServ:AppServ/PHP Edit php.ini (或是C:\AppServ\php7
)
(2) Xampp:Config/php.ini
在裡面找到display_startup_errors
,把OFF改成ON
之後重啟Apche即可