>백엔드 개발 >PHP 튜토리얼 >ThinkPHP5 개발 (1) 로그인 기능에 대한 자세한 설명(그림)

ThinkPHP5 개발 (1) 로그인 기능에 대한 자세한 설명(그림)

黄舟
黄舟원래의
2018-05-11 14:04:217598검색

주로 다음 세 가지 측면에서 시작합니다.

데이터베이스

PHP 코드

HTML 코드 및 ThinkPHP 뷰 템플릿 코드

데이터베이스는 다음을 사용합니다. mysql5 .7. 그리고 최신 버전의 PHP PHP7, apache2.4, Ubuntu16.04

준비:

  • thinkphp5 코드를 다운로드하여 apache 디렉토리에 넣고 권한을 부여합니다. 권한 777개

chmod 777 -R tp5/
  • Atom, Sublime 또는 PhpStorm을 사용하여 프로젝트를 열고 코딩 준비


  1. 데이터베이스 구축 thinkphp5

-- phpMyAdmin SQL Dump
-- version 4.4.15.5
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: 2016-07-06 20:42:33
-- 服务器版本: 5.7.12-log
-- PHP Version: 7.0.7

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `thinkphp5`
--

-- --------------------------------------------------------

--
-- 表的结构 `think_user`
--

CREATE TABLE IF NOT EXISTS `think_user` (
  `user_id` int(11) NOT NULL,
  `user_name` varchar(255) NOT NULL,
  `UserSex` int(11) DEFAULT NULL,
  `UserTel` varchar(255) DEFAULT NULL,
  `UserEmail` varchar(255) DEFAULT NULL,
  `UserAddress` varchar(255) DEFAULT NULL,
  `UserBirth` varchar(255) DEFAULT NULL,
  `UserJoinTime` varchar(255) DEFAULT NULL,
  `UserPasswd` varchar(255) DEFAULT NULL,
  `UserSignature` varchar(255) DEFAULT NULL,
  `UserHobby` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- 转存表中的数据 `think_user`
--

INSERT INTO `think_user` (`user_id`, `
user_name`, `
UserSex`, 
`UserTel`, `
UserEmail`, `
UserAddress`, `
UserBirth`, `
UserJoinTime`, `
UserPasswd`, `
UserSignature`, `
UserHobby`) VALUES
(0, 'thinkphp', 1, '15700000000', 'emial@email.com', '山东省济南市****路', '1111111', '111111', 'qqq', NULL, NULL);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `think_user`
--
ALTER TABLE `think_user`
  ADD PRIMARY KEY (`user_id`);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

먼저 프레임워크를 설정하고 실행한 다음 강화하세요.
2. "Kanyun"의 thinkphp5 매뉴얼에 따라 PHP 코드를 작성합니다.
여기에서 직접 코드를 생성할 수 있는 ThinkPHP5에서 제공하는 스크립트를 직접 사용할 수도 있고,
애플리케이션디렉터리 구조
ThinkPHP5 개발 (1) 로그인 기능에 대한 자세한 설명(그림)
Login.php

<?php
namespace app\index\controller;
use think\View;
use think\Controller;
use app\index\model\User;
/**
 *
 */
class login extends Controller{
  public function index(){
    $view = new View();
    return $view->fetch(&#39;index&#39;);
  }
  public function login($user_name=&#39;&#39;,$user_passwd=&#39;&#39;){
    $user = User::get([
        &#39;user_name&#39; => $user_name,
        &#39;UserPasswd&#39; => $user_passwd
        ]);
    if($user){
        echo &#39;登录成功&#39;.$user_name.md5($user_passwd);
    }else{
        return $this->error(&#39;登录失败&#39;);
    }
  }
}

User.php

<?php
namespace app\index\model;
use think\Model;
class User extends Model{
    protected $pk = &#39;user_id&#39;;//设置主键}

3. 코드 보기 HTML
기본 HTML 사용, CSS는 사용하지 않음 프론트 엔드 프레임워크 사용
렌더링:
ThinkPHP5 개발 (1) 로그인 기능에 대한 자세한 설명(그림)
login/index.html

<!DOCTYPE>
<html>
<head>
    <title>登录</title>
</head>
<style>
    dl{
        text-align:center;
        border:2px solid #00CC99;
        margin-top:100px;
margin-bottom:100px;
margin-right:400px;
margin-left:400px;
    }
</style>
<body>
    <p id="login_form">
<form action="login" method="post">
    <dl>

    <dt>
        <p>用户名:<input type="text" name="user_name"></p>
    </dt>


    <dt>
        <p>密码:<input type="password" name="user_passwd"></p>
    </dt>

    <dt>
<p>{:captcha_img()}</p>
    </dt>

    <dt>
        <p><input type="submit" value="登录"></p>
    </dt>
    </dl>
</form>
</p>
</body>
</html>
  • ThinkPHP5 매뉴얼을 읽어도 해결되지 않았습니다. 그런데 인증코드문제.

  • ThinkPHP의 디버깅 도구에서는 POST 제출 양식을 사용하더라도 데이터베이스 비밀번호와 사용자가 제출한 비밀번호를 직접 볼 수 있습니다.

  • 로그인 후 세션, 로그인 로그 작성, 로그인 시간, IP 및 기타 정보 기록

  • 기타 보안 문제…

위 내용은 ThinkPHP5 개발 (1) 로그인 기능에 대한 자세한 설명(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.