本小結利用最簡單的方式通過PHP驗證表單遞交內容(用戶名)是否存在於數據表中。如果存在了,則顯示已經被注冊,如果不存在則可以正常注冊。
詳細代碼如下:
步驟省略數據庫、數據表的建立。
前端遞交頁面代碼如下:
register.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>用戶名重復驗證</title> </head> <body> <form action="register.php" method="post"> <!-- action指向遞交頁面 method為遞交方法 --> <label>用戶名:<input type="text" name="username"/></label> <br /> <button type="submit">注冊</button> <!-- 這里的注冊按鈕使用<input type="submit">標簽和<button>標簽都可以 --> </form> </body> </html>
完成前端注冊頁之后,現在開始寫PHP接受頁:
register.php
<?php include('conn.php'); //PHP鏈接數據庫代碼,在這里我用創建的單獨連接頁'conn.php',代碼附下文 mysql_query("set character set 'utf8'");//讀庫 mysql_query("set names 'utf8'");//寫庫 //這兩行代碼能夠保證從網頁遞交到數據庫的內容顯示中文格式不亂碼,如果是注冊的話可以只寫'寫庫'一段 //查詢語句,幫助協助查詢當前注冊用戶名是否存在於數據庫當中 $sql = "select * from T_USER where username='$_POST[username]'"; //第一個'username'為數據庫內已存在的username值,將其與第二個'POST'方法傳遞過來的username值做對比 $rs = mysql_query($sql); if(mysql_num_rows($rs)>0)//如果數據庫內存在相同用戶名,則'$rs'接收到的變量為'true'所以大於1為真,則返回'用戶名已存在' { echo "用戶名已存在,請重新注冊!"; echo "<a href=register.php>[注冊]</a>"; } else //否則可以成功注冊遞交 { $sql="INSERT INTO T_HOSPITAL (username) VALUES ('$_POST[username]')"; if (!mysql_query($sql)) { die('Error: ' . mysql_error()); } echo "<span>注冊成功!</span>";//顯示注冊成功信息 header("Refresh:1;url=login.php");//一秒后刷新進入登錄頁 } ?>
PHP鏈接數據庫頁面:
conn.php:
<?php $conn = mysql_connect("127.0.0.1","root","") or die("數據庫鏈接錯誤".mysql_error()); mysql_select_db("DB",$conn) or die("數據庫訪問錯誤".mysql_error()); mysql_query("set names gb2312"); ?>