簡單舉個例子給您參考
login.php
<?php
$isError=false;
if(isset($_POST['tryLogin'])&&$_POST['tryLogin']==='Y'&&isset($_POST['username'])&&isset($_POST['password'])){
if($_POST['username']=='admin'&&$_POST['password']=='admin'){
session_start();
$_SESSION['v'] = 'Y';
$_SESSION['loginUser'] = $_POST['username'];
header('Location:main.php');
}else{
$isError=true;
}
}
?>
<html><head><title>userLogin test</title></head><body>
<h1>userLogin test<h1>
<?php if($isError==true){?><p>帳號或密碼錯誤</p><?php } ?>
<form method="post" name="loginform">
<input type="input" name="username" value="" placeholder="username: admin" />
<input type="input" name="password" value="" placeholder="password: admin"/>
<input type="hidden" name="tryLogin" value="Y" />
<input type="submit" name="loginBtn" value="submit" />
</form>
</body></html>
main.php
<?php
session_start();
if($_SESSION['v'] != 'Y'){
header('Location:login.php');
}
?>
<html><head><title>Concole test</title></head><body>
<h1>Concole test<h1>
<p>看到這個內容表示你是用帳號密碼登入後台的使用者</p>
</body></html>
簡單來說 程式執行時判斷session變數v是否為'Y',是的話就是正常登入的使用者,不是的話就把頁面重導到登入頁,這個是蠻基本的概念,樓主是在校生自學嗎?
$_SESSION
是一個陣列,
裡面包含了所有屬於某個「正在瀏覽網站的使用者」的資料。
在有 session_start()
的頁面,
php 會透過 cookie 讓瀏覽器儲存一筆 key。
並在下次進到有 session_start()
的頁面時,
瀏覽器會把這個 key 一併傳給伺服器,
讓伺服器有辦法辨識使用者,並以此儲存/取得資料。
因為資料是儲存在伺服器上,瀏覽器無法存取 session 的資料
而且不同使用者的資料以 key 區隔,所以使用者間的資料彼此是獨立的
下面的語法可以儲存資料到 session 裡:
<?php
$_SESSION['user_id'] = 12345678;
下面的語法可以從 session 取得資料:
<?php
$id = $_SESSION['user_id']
以及從 session 中刪除資料:
<?php
unset($_SESSION['user_id']);
大大我不懂的是 ['V'] 這個是否代表甚麼意思呢?
感謝您的回文
V跟user_id一樣都是資料的鍵
妳好 但是我在我的程式碼中 沒找到其他 跟 session['v] 有關的
文章裡的 login 頁面有用到啊
感恩大大\
http://php.net/manual/en/function.mysql-query.php
mysql_query 在PHP 5.5已經是廢棄語法了,PHP 7以後已經移除了,你要不要找好一點的學習資源?這樣學出來的 PHP 的安全性恐怕很危險。
幾乎可以說,如果不是用 PDO 來存取資料庫的,你就可以不用看了。
認同wolfwan君說的