PHP 登录与验证示例

最近学习了PHP,想做一个C/S架构的系统,Android作为客户端,PHP来写服务端。以下是一个简单的PHP登录示例,参考自《PHP 从入门到精通》,加上了自己的一些改编, 希望能帮助到更多学习PHP的朋友。

说明:我是采用PDT+XAMPP的方式进行开发的,数据库用的是MySQL。

示例中用到的MySQL数据库名为mytest,数据库中user表的结构如下图所示:

PHP 登录与验证示例_第1张图片

编码格式统一为为gb2312

里面只有两个记录,如下:

PHP 登录与验证示例_第2张图片

好了,接下来上源码:

login.php











系统登录




登录页面

用户名:
密码:

check.php

";
echo "";

session_start();
//获取post方法传来的参数
$username = $_POST["username"];
$password = $_POST["password"];

//创建一个数据库操作实例
$db_operater = new DB_Operater("mytest","root","");
//调用其db_query方法获取user_password的查询结果,条件为post方法获得的username
//如果username在数据库中不存在,则受影响的行为0
$result = $db_operater->db_exec("select user_password from user where user_name='".$username."'");
//如果查询不出错则获得收影响的行和列  ps:查询不出错指的是SQL语句语法没有错或是数据库无异常
if($result){
	$rows = mysql_num_rows($result);
	$column = mysql_num_fields($result);
}
//定义一个用于保存真正密码的变量
$rule_password = null;
for($i = 0;$i < $rows;$i++){
	for($j = 0;$j < $column;$j++){
		 $rule_password = mysql_result($result, $i, $j)."";
	}
}
//关闭数据库连接
$db_operater->db_close();

//如果rule_password不为空,且post方法传来的值与真正的值一样,设置登录状态和用户名,并跳转至欢迎界面
if($rule_password){
	if($rule_password == $password){
		$_SESSION["logined"] = true;
		$_SESSION["username"] = $username;
		header("location:welcome.php");
	}
	//密码错误
	else{
		echo "密码错误,请重新登录";
	}
}
//如果rule_password为空,说明用户名错误
else{
	echo "用户名错误,请重新登录";
}

welcome.php

欢迎页面

"; echo ""; //如果已登录,输出欢迎信息 if(isset($_SESSION["logined"])&& $_SESSION["logined"]){ echo $_SESSION["username"].",您好,欢迎光临!
注销"; } //未登录提示 else{ echo "未登录!请登录"; }

logout.php

注销页面

"; echo ""; echo "注销成功!重新登录";

dboperater.php




你可能感兴趣的:(PHP应用与实践)