2017年8月13日 星期日

PHP與MySQL登入範例

此範例是以HTML的網頁做為登入頁面,並透過PHP程式連接MySQL資料庫,然後再以PHP網頁做為輸出頁面
範例的網址:http://tomchen263.000webhostapp.com/LoginExample_Web/login.html




資料庫格式與資料表:

2張資料表,books與employee
 books內容
 employee內容






conn_mysql.php:

<?php
	$db_link=@mysqli_connect("資料庫位置","資料庫帳號","資料庫密碼");
	if(!$db_link){
		die("資料庫連線失敗<br>");
	}else{
		echo"資料庫連線成功<br>";
	}
	mysqli_query($db_link,"SET NAMES 'utf-8'");  //設定字元集與編碼為utf-8
	$seldb=@mysqli_select_db($db_link,"資料庫名稱");
	if(!$seldb){
		die("資料庫選擇失敗<br>");
	}else{
		echo"資料庫選擇成功<br>";
	}
?>

login.html:

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

	</head>
	<body>
		<form method="POST" action="login_php.php">
			請輸入帳號:<input type="text" name="username"/><br>
			請輸入密碼:<input type="Password" name="password"/><br>
			<input type="submit" value="登入"/>
		</form>
	</body>
</html>

login_php.php:

<?php
	header('Content-Type: text/html; charset=utf-8');
	$username=$_POST['username'];
	$password=$_POST['password'];
	
	require("conn_mysql.php");
	$sql_query_login="SELECT * FROM employee where username='$username' AND password='$password'";
	$result1=mysqli_query($db_link,$sql_query_login) or die("查詢失敗");
	if(mysqli_num_rows($result1)){
		$sql_query="SELECT * FROM books";
		$result=mysqli_query($db_link,$sql_query);
		echo "<table border=1 width=400 cellpadding=5>";
		echo "<tr>
			<td>書籍編號</td>
			<td>書籍名稱</td>
			<td>負責員工編號</td>
			<td>價錢</td>
		      </tr>";
		while($row=mysqli_fetch_array($result)){
			
			echo "<tr>
				<td>$row[0]</td> 
				<td>$row[1]</td>
				<td>$row[2]</td>
				<td>$row[3]</td>
			      </tr>";
		
			
		}
		echo"</table>";
	}else{
		echo"登入失敗";
	}
	
	
?>

9 則留言:

  1. 謝謝你,這個可以成功登入。

    回覆刪除
  2. 你好,我遇到個問題,查詢出來的畫面,是亂碼。
    請問該怎麼修正呢?
    我的資料庫連線、查詢一切都正常。就只有查詢結果顯現亂碼,也就是無法顯示中文。

    回覆刪除
  3. 哈羅您好 非常實用教學 此文章很有幫助
    但有一個地方 有點問題 導致中文會亂碼
    mysqli_query($db_link,"SET NAMES 'utf-8'"); //設定字元集與編碼為utf-8
    中間的 utf-8 要把 中間的 - 拿掉 顯示就會正常了
    我後來 查了一下 語法跟程式 測試了一下 確實是那個 - 的問題
    但還是非常感謝您寫這篇 教學文章

    回覆刪除
    回覆
    1. 也謝謝你提供這個資訊!我已經把問題解決了

      刪除
  4. 不好意思 為什麼我按下登入鍵,卻是出現login_php的程式碼

    回覆刪除
  5. 資料庫的部分希望可以詳細一點

    回覆刪除
  6. php直接打開會顯示原始碼 如果適用xampp要把檔案放在htdocs裡用瀏覽器 輸入localhost/login.html的方式開啟

    回覆刪除
  7. 想請問一下
    conn_mysql.php:
    $db_link=@mysqli_connect("資料庫位置","資料庫帳號","資料庫密碼");
    if(!$db_link){ die("資料庫連線失敗
    "); }
    這邊有點不太了解
    導致資料庫連線都失敗
    該如何處理這個問題呢?

    回覆刪除