뉴스 사이트용 백엔드 로그인 기능의 PHP 기본 개발
이전 강좌에서는 로그인 기능 만들기, 템플릿 가져오기, 데이터베이스 만들기 전의 모든 준비 사항을 소개했습니다. 이전 강좌에서는 이러한 준비가 완료되지 않았으므로 다음 단계에서는 로그인 기능 만들기를 시작합니다!
먼저 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'] 여기에 사용자 입력을 확인해야 하는 코드가 있습니다. 결과는 만장일치로 통과되었습니다!
이제 로그인 기능이 완료되었습니다!