주로 다음 세 가지 측면에서 시작합니다.
데이터베이스
PHP 코드
HTML 코드 및 ThinkPHP 뷰 템플릿 코드
데이터베이스는 다음을 사용합니다. mysql5 .7. 그리고 최신 버전의 PHP PHP7, apache2.4, Ubuntu16.04
준비:
thinkphp5 코드를 다운로드하여 apache 디렉토리에 넣고 권한을 부여합니다. 권한 777개
chmod 777 -R tp5/
Atom, Sublime 또는 PhpStorm을 사용하여 프로젝트를 열고 코딩 준비
데이터베이스 구축 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에서 제공하는 스크립트를 직접 사용할 수도 있고,
애플리케이션디렉터리 구조
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('index'); } public function login($user_name='',$user_passwd=''){ $user = User::get([ 'user_name' => $user_name, 'UserPasswd' => $user_passwd ]); if($user){ echo '登录成功'.$user_name.md5($user_passwd); }else{ return $this->error('登录失败'); } } }
User.php
<?php namespace app\index\model; use think\Model; class User extends Model{ protected $pk = 'user_id';//设置主键}
3. 코드 보기 HTML
기본 HTML 사용, CSS는 사용하지 않음 프론트 엔드 프레임워크 사용
렌더링:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!