到目前為止,你已經了解了足夠多的PHP了。該寫個小程序練手了。
用戶注冊系統
寫一個index.php頁面,有用戶名和密碼表單,post提交到check.php,輸出用戶名和"用戶名+密碼"的md5值
本地建立一個mysql數據庫,名叫segmentfault,建立一個表user,字段username password將上題check.php接收到的內容存入
我們先完成HTML部分:
<!DOCTYPE HTML> <html> <head> <title>注冊</title> </head> <body> <h1>注冊</h1> <form action="check.php" enctype="application/x-www-form+xml" method="post"> <p> <label for="name">郵箱</label> <input name="name" required type="email" placeholder="請填寫有效郵箱"></input> </p> <p> <label for="passphrase">密碼</label> <input name="passphrase" required type="passphrase"></input> </p> <p> <input type="submit" value="提交"></input> </form> </body> </html>
注意,HTML5對表單的支持比以往版本的HTML好很多,可以直接指明各種type。比如制定了type="email",會檢驗用戶提交的郵件地址是否合法。
然後是check.php。
<!DOCTYPE> <html> <head> <title> 注冊成功!</title> </head> <body> <h1> 哇咔咔,你已經注冊成功啦!</h1> <p>呃……不過注冊成功了好像也沒什麼用,因為本網站除了注冊以外好像沒有其他功能。</p> <p>那麼,作為補償,我會告訴你,你的“郵箱+密碼”的md5值。</p> <p>你的郵箱是:
下面是PHP部分,直接嵌入HTML,這是PHP的優勢:
<?php $username = htmlspecialchars($_POST["name"]); echo $username; ?> </p> <p>你的“郵箱+密碼”的md5值是: <?php $passphrase = htmlspecialchars($_POST["passphrase"]); $md5sum = md5($username . $passphrase); echo $md5sum;
注意我們用了htmlspecialchars,避免用戶填入奇怪的東西。
然後是數據庫操作,我們使用mysqli,(mysql已經廢棄了,現在推薦用 mysqli,當然你也可以用 PDO。)
首先我們指明數據庫的一些信息:
$db_server = "localhost"; $db_user = "db_user"; $db_pass = "password"; $db_name = "segmentfault";
連接到數據庫,並且確保連接正常:
$conn = new mysqli($db_server, $db_user, $db_pass, $db_name); if (mysqli_connect_errno()) { trigger_error("Database connection failed: " . mysqli_connect_error(), E_USER_ERROR); }
使用SQL語句創建表
復制代碼 代碼如下:$sql = "CREATE TABLE user(username CHAR(140), password CHAR(140))";
添加記錄
復制代碼 代碼如下:mysqli_query($conn, "INSERT INTO user (username, password) VALUES ($username, $md5sum)");
手寫SQL不太爽,實際應用中,框架會為你提供各種方便。
關閉數據庫:
mysqli_close($conn); ?> </p> </body> </html>
好了,我們已經成功地寫好了一個小應用,也順帶學習了如何訪問 MySQL 數據庫。今天就到這裡了。