이전 강좌에서는 로그인 기능 만들기, 템플릿 가져오기, 데이터베이스 만들기 전의 모든 준비 사항을 소개했습니다. 이전 강좌에서는 이러한 준비가 완료되지 않았으므로 다음 단계에서는 로그인 기능 만들기를 시작합니다!
먼저 login.php 파일을 만들어야 합니다. 이 파일은 로그인 페이지의 판단 및 확인을 작성하는 데 사용할 수 있습니다. 로그인의 html 부분과 로그인 확인 판단의 php 파일을 함께 작성할 수도 있습니다. 우리 모두는 PHP 파일 안에 무엇이 있는지 알고 있기 때문에 HTML 코드를 작성할 수 있습니다! 그러나 여전히 별도로 작성하는 것이 좋습니다!
login.php 파일을 생성한 후 가장 먼저 해야 할 일은 데이터베이스에 연결하는 것입니다. 후속 검증은 데이터와 비교해야 하기 때문입니다!
로그인 페이지에 인증 코드가 있는 경우 각 페이지 시작 부분에서 session_start()를 활성화해야 합니다. 그렇지 않으면 인증 코드를 확인할 수 없습니다. session_start()를 켰습니다.
코드는 다음과 같습니다.
<?php session_start(); // 连接mysql数据库 $link = mysqli_connect('localhost', 'root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 选中数据库 news为数据库的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 设置mysql字符集 为 utf8 $link->query("set names utf8");
다음 단계는 양식에 전달된 데이터를 가져오는 것입니다. 왜냐하면 사용자가 양식에 입력한 사용자 이름과 비밀번호를 가져와야 하기 때문입니다. 양식을 작성한 다음 데이터베이스와 비교하여 정확히 동일한지 확인하세요!
<?php $username = $_POST['username'];//获取用户名 $password = $_POST['password'];//获取密码 $code = $_POST['code'];
post를 통해 데이터를 전송할지 아니면 get을 통해 데이터를 전송할지는 양식의 메소드 속성에 따라 다릅니다. 여기에 게시물이 있습니다!
데이터가 확보되면 사용자가 입력한 데이터가 데이터베이스의 데이터와 완전히 일치하는지 확인해야 합니다. 이 방법으로만 사용자가 로그인하고 사용할 수 있는지 여부를 판단할 수 있습니다. 쿼리할 SQL 문은 다음과 같습니다.
<?php if(!empty($_POST)){ // 查询数据库中是否存在用户信息 $sql = "select * from user where username = '{$username}' and password = '{$password}'"; $result = mysqli_query($link,$sql); $user = mysqli_fetch_array($result,MYSQL_ASSOC);}
Query 데이터를 가져온 후 두 데이터 세트를 비교합니다.
if($user){ header("Location: index.php"); }else{ echo "<script>alert('账户或者密码错误!重新填写')</script>"; }
지금까지 사용자 이름과 비밀번호를 확인했으므로 확인 코드가 있습니다. 인증 코드도 확인해야 합니다. 여기서는 인증 코드 카테고리를 사용했습니다.
도 여기 있는 모든 사람과 공유됩니다!
그런 다음 인증 코드를 확인해야 합니다.
if(($_SESSION['authcode']) !== ($code)){ //验证码作对比,验证码页面跟输入的验证码对比 echo "<script>alert('验证码错误!重新填写')</script>";
설명: $_SESSION['authcode'] 여기에 사용자 입력을 확인해야 하는 코드가 있습니다. 결과는 만장일치로 통과되었습니다!
이제 로그인 기능이 완료되었습니다!
다음 섹션