PHP MYSQL 멤버십 시스템 개발 예시 tutorial_php 기술

WBOY
풀어 주다: 2016-05-16 20:37:00
원래의
1090명이 탐색했습니다.

이 기사는 간단한 예를 통해 완전한 PHP MySQL 멤버십 시스템 기능을 완성합니다. 매우 실용적인 응용 프로그램입니다. 구체적인 구현 단계는 다음과 같습니다.

1. 회원제 원칙:

로그인-->판단-->상태 유지(쿠키 또는 세션)-->상태 및 권한 확인

2. 회원제 보안 :

1. md5 보안을 향상하기 위해 상수를 사용하는 방법을 알아보세요
2. 쿠키/세션은 일반 텍스트 정보를 덜 사용합니다
3. 쿠키보다 세션 보안이 더 강합니다
4. 쿠키/세션을 이용하여 정보를 읽어 판단력을 높여보세요
5. 쿠키/세션 콘텐츠는 간소화되어야 합니다
6. 오류 메시지에 맞춰 쿠키/세션을 삭제합니다

3. 데이터베이스 테스트, 테이블 user_list 및 해당 필드

uid m_id 사용자 이름 비밀번호
1 1 1 관리자 291760f98414679e3fd3f9051b19b6f7
2 2 관리자2 895785cfa5d8157f4d33c58ae0f55123

비밀번호: 각각 md5(admintest100), md5(admin2test100) 즉, 비밀번호는 상수 test100에 바인딩된 다음 암호화되어 데이터베이스에 저장됩니다.

4. 구성 페이지 m_config.php:

<&#63;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 &#63; $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();
    }
 }
&#63;> 
로그인 후 복사

5. 로그인 페이지 m_user.php:

<&#63;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 &#63; 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
  }
 }
&#63;>
<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>

로그인 후 복사

6. 권한 및 시간 제한이 설정된 페이지 m_zhuangtai.php:

<&#63;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>";
 
&#63;>
로그인 후 복사

허락을 받아야만 볼 수 있는 콘텐츠

7. 테스트 결과:

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 페이지 내용을 볼 수 없습니다. Tip: 권한이 부족하여 페이지를 볼 수 없습니다.

이 기사에 설명된 예제가 PHP 프로그램 개발에 종사하는 모든 사람에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿