您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > php

PHP登录功能如何编写

时间:2019-11-04 11:50:24  来源:  作者:

本篇文章主要介绍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$('username').value == "") {

alert('用户名不能为空.');

m$('username').focus();

return false;

}

if (m$('password').value == "") {

alert('密码不能为空.');

m$('password').focus();

return false;

}

if (m$('password').value != "" && m$('username').value != "") {

var xmlhttp = createRequest();

if (xmlhttp) {

m$('loading').innerHTML = "<font color='red'>loading...</font>";

var username = m$('username').value;

var pwd = m$('password').value;

var code = m$('txtCode').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('xmlHttp创建失败.');

}

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 = 'index.php';

} else {

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

}

} else {

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

window.location.reload();

}

m$('loading').innerHTML = "";

}

}

}

}

}

function m$(id) {

return document.getElementById(id);

}

function changeCode() {

var xmlhttp = createRequest();

if (xmlhttp) {

m$('loading').innerHTML = "<font color='red'>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('xmlHttp创建失败.');

}

function ValidateResult() {

if (xmlhttp.readyState == 4) {

if (xmlhttp.status == 200) {

var dt = new Date().getTime();

var url = "function/imagecode.php?dummay" + escape(dt);

m$('imgCode').src = "function/imagecode.php?dummay" + escape(dt);

m$('loading').innerHTML = "";

}

}

}

}

function showTool() {

$('#pToolTip').css("display", "block");

}

function hideTool() {

$('#pToolTip').css("display", "none");

}

window.onload = initPage;

function initPage() {

$('#pToolTip').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['username'];

$pwd=$_POST['password'];

$imagecode=$_POST['code'];

if(strtoupper($imagecode)==$_SESSION["code"])

{

include("conn/conn.php");

$sql="select studentName,studentPwd from tbstudent where studentId='".$name."'";

$result=MySQL_query($sql,$conn);

if($row=mysql_fetch_assoc($result))

{

if($pwd==$row['studentPwd'])

{

$_SESSION['username']=$row['studentName'];

//echo "{'result':true,'info':'登陆成功!','code':'".$_SESSION["code"]."'}";

echo "{'result':true,'info':'登陆成功!'}";

}

else

{

echo "{'result':false,'info':'密码错误!'}";

}

}

else

{

echo "{'result':false,'info':'该用户不存在!'}";

}

}

else

{

echo "{'result':false,'info':'验证码错误!'}";

}

?>

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='$username' and userpwd='" . md5(trim($userpwd)) . "'";

$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='$name'");

$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('$name','$pwd')");

$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='$name'");

$info0 = mysql_fetch_array($sql0);

if ($info0 != false) {

if (mysql_query("delete from tbuser where username='$name'")) {

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='$id'");

if (mysql_fetch_array($isexists)) {

$sql0 = mysql_query("update tbuser set username='$name',userpwd='$pwd' 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 无限分类 树形数据格式化代码实例详解

PHP从二维数组得到N层分类树的实现方法

php fseek实现函数读取大文件的两种方法

以上就是PHP登录功能如何编写的详细内容,更多请关注其它相关文章!



Tags:PHP   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除,谢谢。
▌相关推荐
在本地搭建服务器,httpd-vhosts.conf 中设置本地绑定的域名: 其中,zzzphp为下载的zzzphp cms的内容。然后,本机上的zzzphp cms的目录结构为如下: 在按照要求安装好cms后,本地cms的...【详细内容】
2021-07-16  Tags: PHP  点击:(1)  评论:(0)  加入收藏
一、开启IIS全部功能。二、部署PHP1.官网下载并解压PHP: https://windows.php.net/downloads/releases/2.将php.ini-development文件改为php.ini3.修改php.ini(1)去掉注释,并修...【详细内容】
2021-07-15  Tags: PHP  点击:(3)  评论:(0)  加入收藏
作为程序员吃饭的工具,编程语言之间也形成了某种鄙视链,各大论坛里弥漫着剑拔弩张的气氛,众口难调。也难怪有很多初学者会有疑惑,为什么会有这么多编程语言,我到底应该学什么语言...【详细内容】
2021-06-29  Tags: PHP  点击:(13)  评论:(0)  加入收藏
前言在 4 月 27 日举办的 Gopher China 2019 中,来自花椒直播的周洋进行了题为《花椒直播关于创业公司中台的技术思考与实践》的演讲,以下为演讲实录。No.0背景介绍 周洋:2009...【详细内容】
2021-06-29  Tags: PHP  点击:(10)  评论:(0)  加入收藏
一、环境说明本文中使用本地VM虚机部署测试。OS:CentOS Linux release 7.8.2003 (Core)虚机配置:2核CPU、4G内存①系统为CentOS 7.8 x64最小化安装,部署前已完成系统初始化、...【详细内容】
2021-06-25  Tags: PHP  点击:(23)  评论:(0)  加入收藏
环境Ubuntu-18.0.4php7.4.20序言php的安装应该是php程序开发者必备的技能,建议读者一步步跟着教程做,对每条命令自行测试; 到PHP官网下载tar.gz格式的源码包,我下载的版本是7.4....【详细内容】
2021-06-17  Tags: PHP  点击:(47)  评论:(0)  加入收藏
对于一门古老的语言来说,支撑未来技术的东西不是与时俱进吗? 差不多一年前,我发布了一篇题为“PHP可能在未来十年消失”的文章。我发布的这篇文章的总结就像一首《圣诞颂歌》,但...【详细内容】
2021-04-12  Tags: PHP  点击:(103)  评论:(0)  加入收藏
Php7.1wget http://mirrors.sohu.com/php/php-7.1.3.tar.gztar zxvf php-7.1.3.tar.gz./configure \ --prefix=/usr/local/php \ --with-apxs2=/usr/local/apache2/bin/apxs...【详细内容】
2021-03-25  Tags: PHP  点击:(125)  评论:(0)  加入收藏
目录 介绍 变量 使用见字知意的变量名 同一个实体要用相同的变量名 使用便于搜索的名称 (part 1) 使用便于搜索的名称 (part 2) 使用自解释型变量 避免深层嵌套,尽早返回 (pa...【详细内容】
2021-03-25  Tags: PHP  点击:(145)  评论:(0)  加入收藏
今天这篇文章的内容其实也是非常基础的内容,不过在现代化的开发中,大家都使用框架,已经很少人会去自己封装或者经常写底层的数据库操作代码了。所以这回我们就来复习一下数据库...【详细内容】
2021-03-04  Tags: PHP  点击:(106)  评论:(0)  加入收藏
▌简易百科推荐
一、开启IIS全部功能。二、部署PHP1.官网下载并解压PHP: https://windows.php.net/downloads/releases/2.将php.ini-development文件改为php.ini3.修改php.ini(1)去掉注释,并修...【详细内容】
2021-07-15  炘蓝火诗  今日头条  Tags:PHP环境   点击:(3)  评论:(0)  加入收藏
一、环境说明本文中使用本地VM虚机部署测试。OS:CentOS Linux release 7.8.2003 (Core)虚机配置:2核CPU、4G内存①系统为CentOS 7.8 x64最小化安装,部署前已完成系统初始化、...【详细内容】
2021-06-25  IT运维笔记  今日头条  Tags:PHP8.0.7   点击:(23)  评论:(0)  加入收藏
环境Ubuntu-18.0.4php7.4.20序言php的安装应该是php程序开发者必备的技能,建议读者一步步跟着教程做,对每条命令自行测试; 到PHP官网下载tar.gz格式的源码包,我下载的版本是7.4....【详细内容】
2021-06-17  散淡杂记    Tags:php   点击:(47)  评论:(0)  加入收藏
对于一门古老的语言来说,支撑未来技术的东西不是与时俱进吗? 差不多一年前,我发布了一篇题为“PHP可能在未来十年消失”的文章。我发布的这篇文章的总结就像一首《圣诞颂歌》,但...【详细内容】
2021-04-12  InfoQ  今日头条  Tags:PHP   点击:(103)  评论:(0)  加入收藏
Php7.1wget http://mirrors.sohu.com/php/php-7.1.3.tar.gztar zxvf php-7.1.3.tar.gz./configure \ --prefix=/usr/local/php \ --with-apxs2=/usr/local/apache2/bin/apxs...【详细内容】
2021-03-25      Tags:安装php   点击:(125)  评论:(0)  加入收藏
目录 介绍 变量 使用见字知意的变量名 同一个实体要用相同的变量名 使用便于搜索的名称 (part 1) 使用便于搜索的名称 (part 2) 使用自解释型变量 避免深层嵌套,尽早返回 (pa...【详细内容】
2021-03-25      Tags:PHP 代码   点击:(145)  评论:(0)  加入收藏
步骤1、安装php的运行环境2、cmd 查看php -v成功 失败的操作 3从 https://getcomposer.org/download/ 中 composer.cmd的内容@powershell php "%~dp0composer.ph...【详细内容】
2021-03-11      Tags:composer   点击:(108)  评论:(0)  加入收藏
今天这篇文章的内容其实也是非常基础的内容,不过在现代化的开发中,大家都使用框架,已经很少人会去自己封装或者经常写底层的数据库操作代码了。所以这回我们就来复习一下数据库...【详细内容】
2021-03-04  硬核项目经理  今日头条  Tags:PHP   点击:(106)  评论:(0)  加入收藏
1、明确需求实战工作中经常会请求各种各样的接口,例如&bull;微信网页授权接口 &bull; 高德周边检索接口 &bull;发现:下图是根据接口文档开发后的代码,发现代码可读性差(ps. 参数...【详细内容】
2020-12-30      Tags:PHP   点击:(78)  评论:(0)  加入收藏
介绍一个简洁、高性能、跨平台的 PHP7 代码加密扩展特点简单快速,经实测,几乎不影响性能兼容 OPcache、Xdebug 等其他扩展支持 Linux、macOS、Windows 等系统兼容 Apache、Ngi...【详细内容】
2020-12-15      Tags:PHP代码   点击:(32)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条