PHP+MYSQL會員系統的開發執行個體教程_php技巧

來源:互聯網
上載者:User

本文通過一個簡單的執行個體完成了完整的PHP+MySQL會員系統功能。是非常實用的一個應用。具體實現步驟如下:

一、會員系統的原理:
 
  登陸-->判斷-->保持狀態(Cookie或Session)-->驗證狀態及其許可權

二、會員系統的安全:

1、學會使用常量提高md5安全性
2、Cookie/ Session 少用明文資訊
3、Session安全性要大於Cookie
4、使用Cookie/ Session讀取資訊 盡量增加判斷資訊
5、Cookie/ Session內容要精簡
6、對於錯誤資訊及時銷毀Cookie/ Session

三、資料庫test,表user_list,及其欄位

  uid     m_id     username     password
  1       1        admin        291760f98414679e3fd3f9051b19b6f7
  2       2        admin2       895785cfa5d8157f4d33c58ae0f55123

password:分別為md5(admintest100)、md5(admin2test100)即密碼是與常量test100綁定後,再經過加密儲存到資料庫中的,這一步可以在註冊時設定。

四、配置頁面m_config.php:

<?php session_start(); //資料庫連接 $conn=mysql_connect('localhost','root',''); mysql_select_db('test',$conn); //定義常量 define(ALL_ps,"test100"); //查看登入狀態與許可權 function user_shell($uid,$shell,$m_id){   $sql="select * from user_list where `uid`='$uid'";    $query=mysql_query($sql);   $us=is_array($row=mysql_fetch_array($query));   $shell=$us ? $shell==md5($row[username].$row[password].ALL_PS):FALSE;   if($shell){     if($row[m_id]<=$m_id){//$row[m_id]越小許可權越高,為1時許可權最高       return $row;     }else{       echo "你的許可權不足,不能查看該頁面";       exit();      }   }else{     echo "登入後才能查看該頁";     exit();    }  } //設定登入逾時 function user_mktime($onlinetime){    $new_time=mktime();    echo $new_time-$onlinetime."秒未操作該頁面"."<br>";    if($new_time-$onlinetime>'10'){//設定逾時時間為10秒,測試用      echo "登入逾時,請重新登入";      exit();      session_destroy();    }else{      $_SESSION[times]=mktime();    } }?> 

五、登入頁面m_user.php:

<?php include("m_config.php"); //echo md5("admin2".ALL_PS); if($_POST[submit]){  $username=str_replace(" ","","$_POST[username]");  $sql="select * from user_list where `username`='$username'";   $query=mysql_query($sql);  $us=is_array($row=mysql_fetch_array($query));  $ps=$us ? md5($_POST[password].ALL_PS)==$row[password] : FALSE;  if($ps){    $_SESSION[uid]=$row[uid];    $_SESSION[user_shell]=md5($row[username].$row[password].ALL_PS);    $_SESSION[times]=mktime();//取得登入時忘該的時間    echo "登入成功";  }else{    echo "使用者名稱或密碼錯誤";    session_destroy();//密碼錯誤時消除所有的session  } }?><form action="" method="post"> 使用者名稱:<input name="username" type="text" /><br /> 使用者名稱:<input name="password" type="password" /><br /> 驗證碼:<input name="code" type="code" />5213<br /><br /> <input name="submit" type="submit" value="登入" /></form>

六、設定了許可權及逾時的頁面m_zhuangtai.php:

<?php include("m_config.php");  $arr=user_shell($_SESSION[uid],$_SESSION[user_shell],1);//設定該頁面只有許可權為1時即最高許可權的才能訪問  user_mktime($_SESSION[times]);//判斷是否逾時10秒  //echo $_SESSION[times]."<br>";//登入時該的時間 //echo mktime()."<br>";//當前日期 //echo $arr[username]."<br>"; //echo $arr[uid]."<br>"; ?>

有許可權方能查看的內容

七、測試結果:
 
1、用sss,sssssss登入,提示:使用者名稱或密碼錯誤。查看m_zhuangtai.php,提示:登入後才能查看該頁。
2、用admin admin登入後,因為許可權為1,所以可以查看m_zhuangtai.php頁面的內容。
3、用admin admin登入後,因為許可權為1,所以可以查看m_zhuangtai.php頁面的內容,但10秒後再重新整理,提示:X秒未操作該頁面 登入逾時,請重新登入。
4、用admin2 admin2登入後,因為許可權為2,所以無法查看m_zhuangtai.php頁面的內容,提示:你的許可權不足,不能查看該頁面。

希望本文所述執行個體對大家PHP程式開發有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.