PHP实现登陆注册功能

PHP实现文件数据登陆注册功能

  1. 保存数据文件user.txt,数据如下所示。
admin1|00000@.com|12345
admin2|a2asd@.com|14534
admin3|12222@.com|12345
admin5|11111@.com|12345
  1. 首页实现代码,包括登录和注册两部分,index.php代码如下:
<?php
//引入函数文件
require_once "./function.php";
$a = @$_GET['a'];//使用$a获取GET['a']判断是注册还是登陆
if($a == 'r'){
	//如果$a的值是r是注册功能
	?>
	<form action="" method="post">
		<p>用户名:<input type="text" name="username"></p>
		<p>&nbsp;箱:<input type="text" name="email"></p>
		<p>&nbsp;码:<input type="password" name="password"></p>
		<p><input type="submit" name="注册"></p>
	</form>
	<?php
	//如果是post请求
	if($_SERVER['REQUEST_METHOD'] == "POST"){
		$username = $_POST['username'];
		$email = $_POST['email'];
		$password = $_POST['password'];
		$res=register($username,$email,$password);//调用注册方法
		if($res>0){
			echo "用户名邮箱或密码为空";
		}else if($res<0){
			echo "用户信息添加失败请联系管理员";
		}else{
			echo "添加成功<script>window.location.href='index.php?r=login';</script>";
		}
	}
}else if($a=='login'){
	//如果$a是lgin则是登陆功能
	if($_SERVER['REQUEST_METHOD']=='POST'){	
		$email = $_POST['email'];
		$password = $_POST['password'];
		$res=checkLogin($email,$password);//调用登录方法
		if($res=='0'){
			echo "登陆成功";
		}else{
			echo "登录失败";
		}
	}else{
		?>
		<form action="" method="post">
			<p>&nbsp;箱:<input type="text" name="email"></p>
			<p>&nbsp;码:<input type="password" name="password"></p>
			<p><input type="submit" name="登录"></p>
		</form>
	<?php
	}
}else{
	echo "没有这种操作";//其他情况没有操作
}
  1. 登陆注册两个主要函数的实现,function.php代码如下所示:
<?php
function register($username,$email,$password){
	if($username==" ")
		return 1;
	if($email==" ")
		return 2;
	if($password==" ")
		return 3;
	$fp = fopen("user.txt","a+");
	if(!$fp){
		return -1;
	}
	if(!fwrite($fp,"\r\n$username|$email|$password")){
		return -2;
	}
	fclose($fp);
	return 0;
}
function checkLogin($email,$password){
	if($email=="")
		return 1;
	if($password=="")
		return 2;
	$fp = fopen("user.txt","a+");
	if(!$fp){
		return -1;
	}
	$isLogin=false;
	while(!feof($fp)){//循环到文件结尾
		$line = fgets($fp);
		$line=substr($line,0,strlen($line)-2);//截取字符串
		$info = explode('|',$line);//分割数组
		if($info[1]==$email && $info[2]==$password){
			$isLogin=true;
			break;
		}
	}
	fclose($fp);
	return $isLogin?0:-2;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值