php+MySql实现登录系统与输出浏览者信息功能


Posted in PHP onJuly 01, 2016

本系统,与之前在《ASP 连接Access数据库的登陆系统》(点击打开链接)一文中的asp登录系统的思想完全一样,只是编程语言从asp变成了php,数据库从Access变成了mysql。

一、基本目标

首先在mysql存在着如下的用户信息表:

php+MySql实现登录系统与输出浏览者信息功能

在页面中有一个登录表单,上面需要用户填写用户名与密码等信息

如果用户输入的用户名在用户信息表里面根本就没有,那么则弹出“查无此人”的对话框,并返回本页

php+MySql实现登录系统与输出浏览者信息功能

如果用户输入的密码错误,那么则弹出“密码错误”的对话框,并返回本页

php+MySql实现登录系统与输出浏览者信息功能

如果用户输入的登录信息正确,那么则跳到“登录成功”的页面,并输出用户当前的IP、使用的系统的语言环境、与浏览器信息

php+MySql实现登录系统与输出浏览者信息功能

“登录成功”的页面是被保护的,浏览器并不可以通过在浏览器中输入地址的方式,绕开输入密码的页面,直接访问“登录成功”页面

php+MySql实现登录系统与输出浏览者信息功能

二、基本思想

php+MySql实现登录系统与输出浏览者信息功能

用户输入用户名与密码的那一页用静态页面,只要其表单指向登录判断页login.php就可以了。

welcome.php是用户成功登录的页面,

exit.php用来销毁session。

session就是用来存放用户名与密码的浏览器全局变量。

三、制作过程
 (1)login.html 
没什么好说的,就一个登录表单,见如下代码: 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登录页面</title>
</head>

<body>
<form action="login.php" method="post">
用户名:<input type="text" name="username" /><br />
密码:<input type="password" name="password" /><br />
<input type="submit" value="登录" />
</form>
</body>
</html>

 (2)exit.php

销毁session页面,并且在销毁session之后,把页面打回login.html
值得注意的是,在php一旦需要使用session,就应该在所有代码的第一行使用session_start();系统函数,否则可能会出错

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登出页面</title>
</head>

<body>
<?php
session_start();
session_destroy();
?>
<script>
window.location.href="login.html";
</script>
</body>
</html>

 (3)login.php

登录判断页面,还是经典的登录三段论,首先接收login.html传递过来的username与password,查询用户信息表中是否有这个username,如果没有,再登录失败,如果有,再同时判断传过来的、用户输入的password是否等于这个username在数据库中对应的dbpassword,如果是,登录成功,并把username存入session,传递给登录成功页面,否则登录失败。
本页面还用到了系统内置函数is_null判断查询结果是否为空,如果数据库查询结果为空,根本就不会有值赋予给新定义的dbusername,这个dbusername依旧为空。
同时,如果登录成功之后,还要使用mt_rand(0,100000);在0~100000中产生一个保护登录成功页面的随机数code。
并且做完一切判断之后,记得在最后加入一条关闭数据库的语句,人走带门。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登陆中……</title>
</head>

<body>
<?php
session_start();
$username=$_REQUEST["username"];
$password=$_REQUEST["password"];
$con=mysql_connect("localhost","root","root");
if(!$con){
 die("数据库连接失败!");
 }
mysql_select_db("test",$con);
$dbusername=null;
$dbpassword=null;
$result=mysql_query("select * from user where username='".$username."';");
while($row=mysql_fetch_array($result)){
 $dbusername=$row["username"];
 $dbpassword=$row["password"];
}
if(is_null($dbusername)){
?>
<script>
alert("查无此人!");
window.location.href="login.html";
</script>
<?php 
 }
else{
 if($dbpassword!=$password){
?>
<script>
alert("密码错误!");
window.location.href="login.html";
</script>    
<?php
 }
 else{
 $_SESSION["username"]=$username;
 $_SESSION["code"]=mt_rand(0,100000);
?>
<script>
window.location.href="welcome.php";
</script> 
<?php
 }
 }
mysql_close($con);
?>

</body>
</html>

 (4)welcome.php

在welcome.php成功登录页面中,先要用isset来判断是否有login.php传递过来的code,这里的isset与上面is_null的区别,isset是判断有没有这个变量,is_null是在有这个变量的前提下,判断这个变量是否为null,如果没有code这个session则说明用户非正常途径登录的,马上扔到exit.php再见走人
如果是正常登录,则通过server对象里面的各个小对象输出用户信息。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>欢迎登录</title>
</head>

<body>
<?php
session_start();
if(isset($_SESSION["code"])){
?>
欢迎登录!<?php
echo "${_SESSION["username"]}";
?><br />
你的IP:<?php
echo "${_SERVER['REMOTE_ADDR']}";
?>
<br />
你的系统语言:<?php
echo "${_SERVER['HTTP_ACCEPT_LANGUAGE']}";
?>
<br />
你的浏览器为:<?php
echo "${_SERVER['HTTP_USER_AGENT']}";
?>
<br />
<a href="exit.php">退出登录</a>
<?php
}
else{
?>
<script>
alert("请正常登录!");
window.location.href="exit.php";
</script>
<?php
}
?>
</body>
</html>

 至此,整个登录系统开发完成。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php实现的MySQL通用查询程序
Mar 11 PHP
php的access操作类
Apr 09 PHP
php中通过curl模拟登陆discuz论坛的实现代码
Feb 16 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
PHP添加图片水印、压缩、剪切的封装类
Aug 17 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
PHPstorm启用自动换行的方法详解(IDE)
Sep 17 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 #PHP
Apache无法自动跳转却显示目录的解决方法
Nov 30 #PHP
Windows2003下php5.4安装配置教程(IIS)
Jun 30 #PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 #PHP
PHP环境搭建的详细步骤
Jun 30 #PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 #PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
Jun 30 #PHP
You might like
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
PHP中phar包的使用教程
2017/06/14 PHP
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
js禁止表单重复提交
2017/08/29 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
JS中的函数与对象的创建方式
2019/05/12 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
关于Python作用域自学总结
2019/06/10 Python
python实现邮件自动发送
2019/08/10 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
python爬虫基础知识点整理
2020/06/02 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
高中地理教学反思
2014/01/29 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS
SQL SERVER触发器详解
2022/02/24 SQL Server