> 백엔드 개발 > PHP 튜토리얼 > PHP 로그인 기능을 작성하는 방법

PHP 로그인 기능을 작성하는 방법

墨辰丷
풀어 주다: 2023-03-29 21:38:02
원래의
1456명이 탐색했습니다.

이 글은 주로 PHP 로그인 기능을 작성하는 방법을 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.

구체적인 코드는 다음과 같습니다.

1 login.php
로그인 인터페이스에서 javascript 스크립트는 ajax를 사용하여 dologin.php를 비동기적으로 요청하며, dologin.php는 사용자 정보 확인(인증 코드, PHP 포함)을 담당합니다. 인증코드 생성 및 자체 검색 가능) 로그인 인터페이스 코드는 다음과 같습니다.

<?php session_start();?>
<!DOCTYPE html>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 <title>login</title>
 <link rel="stylesheet" type="text/css" href="CSS/login.css" />
 <script src="JS/ajaxhelper.js" type="text/javascript"></script>
 <script src="JS/jquery-1.3.2.min.js" type="text/javascript"></script>
 <script type="text/javascript">
  function chkForm() {
   if (m$(&#39;username&#39;).value == "") {

    alert(&#39;用户名不能为空.&#39;);
    m$(&#39;username&#39;).focus();
    return false;

   }
   if (m$(&#39;password&#39;).value == "") {

    alert(&#39;密码不能为空.&#39;);
    m$(&#39;password&#39;).focus();
    return false;

   }
   if (m$(&#39;password&#39;).value != "" && m$(&#39;username&#39;).value != "") {

    var xmlhttp = createRequest();
    if (xmlhttp) {
     m$(&#39;loading&#39;).innerHTML = "<font color=&#39;red&#39;>loading...</font>";
     var username = m$(&#39;username&#39;).value;
     var pwd = m$(&#39;password&#39;).value;
     var code = m$(&#39;txtCode&#39;).value;
     var url = "dologin.php";
     xmlhttp.open("POST", url, true);
     xmlhttp.onreadystatechange = ValidateResult;
     xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
     xmlhttp.send("username=" + escape(username) + "&password=" + escape(pwd) + "&code=" + escape(code));

    } else {
     alert(&#39;xmlHttp创建失败.&#39;);

    }

    function ValidateResult() {
     if (xmlhttp.readyState == 4) {
      if (xmlhttp.status == 200) {
       if (xmlhttp.responseText != "") {

        //window.alert(xmlhttp.responseText);
        var obj = eval("(" + xmlhttp.responseText + ")");
        if (obj.result == true) {
         alert("提示:" + obj.info);
         window.location = &#39;index.php&#39;;

        } else {
         alert("错误:" + obj.info);

        }
       } else {
        window.alert("从服务器获取失败");

        window.location.reload();
       }
       m$(&#39;loading&#39;).innerHTML = "";
      }
     }

    }


   }

  }

  function m$(id) {
   return document.getElementById(id);
  }

  function changeCode() {
   var xmlhttp = createRequest();
   if (xmlhttp) {
    m$(&#39;loading&#39;).innerHTML = "<font color=&#39;red&#39;>loading...</font>";
    var dt = new Date().getTime();
    // alert(dt);
    var url = "function/imagecode.php?dummay" + escape(dt);
    xmlhttp.open("GET", url, true);
    xmlhttp.onreadystatechange = ValidateResult;
    xmlhttp.send(null);

   } else {
    alert(&#39;xmlHttp创建失败.&#39;);

   }

   function ValidateResult() {
    if (xmlhttp.readyState == 4) {
     if (xmlhttp.status == 200) {
      var dt = new Date().getTime();
      var url = "function/imagecode.php?dummay" + escape(dt);
      m$(&#39;imgCode&#39;).src = "function/imagecode.php?dummay" + escape(dt);
      m$(&#39;loading&#39;).innerHTML = "";
     }
    }

   }
  }

  function showTool() {
   $(&#39;#pToolTip&#39;).css("display", "block");
  }

  function hideTool() {
   $(&#39;#pToolTip&#39;).css("display", "none");
  }
  window.onload = initPage;

  function initPage() {
   $(&#39;#pToolTip&#39;).css("display", "none");
  }
 </script>
 </head>
 <body>
 <p style="background-color:#2A3F55; height:80px;">
  
 </p>
 <p style="min-height:500px;">
  
  <p class="left">
  
  <p style="margin:120px auto auto auto; height:300px; text-align:left">
   <p style="font-size:26px;color:#2A3F55; text-align:center;">Ajax PHP Demo System
   <img src="Images/appstorm-icon.png" alt="appcation storm image" style="position:relative;top:-18px; left:-12px;         vertical-align:middle; text-align:center;font-size:10px; width:65px; height:46px;"/>
   </p>
   <br/>
   <hr style="border:dashed thin #2A3F55;width:70%; text-align:center;"/>
   <p style="font-size:13px;color:#999999; margin:20px auto 0 auto; padding-left:200px;">
   Author:<a href="#" onmousemove="showTool();" onmouseout="hideTool();">wangming</a>
   </p>
   <p style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">DateTime:2009-9-1</p>
   <p style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">Version:1.0.0</p>
   <p style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">Email:wangmingemail@163.com     </p>
   <p id="pToolTip">
   <img src="Images/ming.jpg" height="86px;"/>
   <span class="authordes">
    <br/>
    姓名:wangming<br/>
    电商06-2<br/>
   </span>
   
   </p>
   
  </p>
  
  </p>
  
  <p class="right">
  
  <form>
   <br/>
   <table class="flogin">
   <tr>
    <td>用户名:</td>
    <td><input type="text" name="username" id="username"/></td>
    <td></td>
   </tr>
   <tr>
    <td>密   码:</td>
    <td><input type="password" name="password" id="password" /></td>
    <td></td>
   </tr>
   <tr>
    <td>验证码:</td>
    <td>
    <input type="text" name="txtCode" id="txtCode" size="12" /> 
    <img src="function/imagecode.php" id="imgCode" alt="image code" height="22px;" style=" vertical-align:bottom;"/>
    </td>
    <td><input type="button" class="btnrefresh" onclick="changeCode();" /></td>
   </tr>
   <tr>
    <td></td>
    <td><input type="button" class="btnlogin" onclick="chkForm();" /></td>
    <td></td>
   </tr>
   <tr>
    <td></td>
    <td><span id="loading"></span></td>
    <td><span id="code"></span></td>
   </tr>
   
   </table>
  </form>
  </p>
  
 </p>
 <p style="background-color:#2A3F55; height:60px; margin:auto 0 0 0; clear:both; text-align:center; line-height:60px; color:#FFFFFF;font-size:12px;">
  ©Copyright 2015.
 </p>
 </body>
</html>
로그인 후 복사

2 ajaxhelper.js

function createRequest() {
 try {
  request = new XMLHttpRequest();
 } catch (tryMS) {
  try {
   request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (otherMS) {
   try {
    request = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (failed) {
    request = null;
   }
  }
 }
 return request;
}

function getActivatedObject(e) {
 var obj;
 if (!e) {
  // early version of IE
  obj = window.event.srcElement;
 } else if (e.srcElement) {
  // IE 7 or later
  obj = e.srcElement;
 } else {
  // DOM Level 2 browser
  obj = e.target;
 }
 return obj;
}

function addEventHandler(obj, eventName, handler) {
 if (document.attachEvent) {
  obj.attachEvent("on" + eventName, handler);
 } else if (document.addEventListener) {
  obj.addEventListener(eventName, handler, false);
 }
}
로그인 후 복사

3 dologin.php

<?php
 session_start();
 header("Content-type:text/html;charset=gb2312");//防止返回的中文乱码
 $name=$_POST[&#39;username&#39;];
 $pwd=$_POST[&#39;password&#39;];
 $imagecode=$_POST[&#39;code&#39;];
 if(strtoupper($imagecode)==$_SESSION["code"])
 {
  include("conn/conn.php");
  $sql="select studentName,studentPwd from tbstudent where studentId=&#39;".$name."&#39;";
  $result=mysql_query($sql,$conn);
  if($row=mysql_fetch_assoc($result))
  {
   if($pwd==$row[&#39;studentPwd&#39;])
   {
   $_SESSION[&#39;username&#39;]=$row[&#39;studentName&#39;];
   //echo "{&#39;result&#39;:true,&#39;info&#39;:&#39;登陆成功!&#39;,&#39;code&#39;:&#39;".$_SESSION["code"]."&#39;}";
   echo "{&#39;result&#39;:true,&#39;info&#39;:&#39;登陆成功!&#39;}";
   
   }
   else
   {
   echo "{&#39;result&#39;:false,&#39;info&#39;:&#39;密码错误!&#39;}";
   }
  }
  else
  {
   echo "{&#39;result&#39;:false,&#39;info&#39;:&#39;该用户不存在!&#39;}";
  }
 }
 else
 {
  echo "{&#39;result&#39;:false,&#39;info&#39;:&#39;验证码错误!&#39;}";
 }
?>
로그인 후 복사

4 conn.php

<?php
 $conn=$mysql_connect("localhost","root", "");
 mysql_select_db("bbs",$conn);
 mysql_query("SET NAMES GB2312");
 ?>
 5
 <?php
class Users {
 function Users() {
 }
 function checkLogin($username, $userpwd) {
  try {
   mysql_connect("localhost", "root", "123");
   mysql_select_db("studentdb");
   mysql_query("SET NAMES GB2312");
   $sql = "select userid from tbuser where username=&#39;$username&#39; and userpwd=&#39;" . md5(trim($userpwd)) . "&#39;";
   $result = mysql_query($sql);
   if ($result) {
    $arr = mysql_fetch_row($result);
    $uid = $arr[0];
    if ($uid != "") {
     return "true|$uid login ok.$sql";
     mysql_close();
    } else {
     return "false|login failed!$sql";
     mysql_close();
    }
   } else {
    return "false|$result link db failed!";
    mysql_close();
   }
  }
  catch(Exception $ex) {
   return "false|$ex";
   mysql_close();
  }
 }
 function AddUser($name, $pwd) {
  try {
   mysql_connect("localhost", "root", "123");
   mysql_select_db("studentdb");
   mysql_query("set names gb2312");
   $sql0 = mysql_query("select userid from tbuser where username=&#39;$name&#39;");
   $info0 = mysql_fetch_array($sql0);
   $userid = $info0[0];
   if ($info0 != false) {
    return "false | $name is exisis.(id:$userid)";
   }
   $pwd = md5(trim($pwd));
   $query = mysql_query("insert into tbuser(username,userpwd)values(&#39;$name&#39;,&#39;$pwd&#39;)");
   $error = mysql_errno();
   if ($query) {
    return "true | add ok";
   } else {
    return "false | $error";
   }
  }
  catch(Exception $ex) {
   return "false | $ex";
  }
 }
 function DeleteUser($name) {
  mysql_connect("localhost", "root", "123");
  mysql_select_db("studentdb");
  mysql_query("set names gb2312");
  $name = trim($name);
  $sql0 = mysql_query("select userid from tbuser where username=&#39;$name&#39;");
  $info0 = mysql_fetch_array($sql0);
  if ($info0 != false) {
   if (mysql_query("delete from tbuser where username=&#39;$name&#39;")) {
    return "true | delete ok.(id:" . $info0[0] . ")";
   } else {
    return "false | 删除失败";
   }
  } else {
   return "false | 删除失败 $name 不存在";
  }
 }
 function UpdateUser($id, $name, $pwd) {
  if (is_numeric(intval(trim($id)))) {
   if ($id && $name && $pwd) {
    mysql_connect("localhost", "root", "123");
    mysql_select_db("studentdb");
    mysql_query("set names gb2312");
    $pwd = md5(trim($pwd));
    $isexists = mysql_query("select * from tbuser where userid=&#39;$id&#39;");
    if (mysql_fetch_array($isexists)) {
     $sql0 = mysql_query("update tbuser set username=&#39;$name&#39;,userpwd=&#39;$pwd&#39; where userid= $id");
     if ($sql0) {
      return "ture | update ok";
     } else {
      return "false | 更新失败";
     }
    } else {
     return "false | usrid=$id not exists.";
    }
   } else {
    return "false |id=$id name=$name and pwd=$pwd .At least one of them is null.";
   }
  } else {
   return "false | $id is not type of int.";
  }
 }
}
?>
로그인 후 복사

요약 : 위 내용은 이 글의 전체 내용입니다. 도움이 되었으면 좋겠습니다. 모든 분들의 공부에 도움이 될 것입니다.

관련 권장 사항:

php 무한 분류 트리 데이터 형식 지정 코드 예제에 대한 자세한 설명

2차원 배열에서 N 계층 분류 트리를 얻는 PHP 구현 방법

php 두 부분을 읽는 fseek 구현 함수 대용량 파일 방법

위 내용은 PHP 로그인 기능을 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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