> 백엔드 개발 > PHP 튜토리얼 > php之cookie对话控制

php之cookie对话控制

WBOY
풀어 주다: 2016-06-13 12:16:19
원래의
864명이 탐색했습니다.

php之cookie会话控制

通过cookie将用户资料记录在客户端而不需要每次都从服务器调用,这样能提高网页效率,降低服务器的压力

下面的例子模拟一个登录界面的操作,使用cookie的调用

界面显示(未进行美化)



根目录下创建需要的文件


index.php中,首先写出如图的表格形式输出

			<title>用户登录</title>				
로그인 후 복사

用户登录

用户名
密码

因为要连接数据库,并调用数据库的数据,创建数据库并创建一个数据库调用的文件

创建一个users的表,并插入数据,这里数据插入信息包括用户名、密码和权限


在根目录下创建  conn.inc.php  用于存放数据库连接


conn.inc.php

<?php $mysqli=new mysqli("localhost","root","XXXXX","sqldb");
로그인 후 복사

login.php  中包含连接数据库,使用mysqli方法,密码使用  md5()  方法加密

<?php if(isset($_POST["sub"])){    	include "conn.inc.php";    	$sql="select id from users where name=&#39;{$_POST["name"]}&#39; and password=&#39;".md5($_POST["password"])."&#39;";    	$result=$mysqli->query($sql);    	//保存数据    	if($result->num_rows > 0){    		$row=$result->fetch_assoc();    		$time=time()*1800;    		setCookie("username", $_POST["name"],$time);    		setCookie("uid", $row["id"],$time);    		setCookie("isLogin",1);    		header("Location:index.php");  //跳转界面    	}    	echo "用户名密码有误";    }?>
로그인 후 복사

注意cookie保存数据时需要表明数据保存的时长,保存数据中返回  “username”,“uid”,“isLogin"

index.php  中涉及页面跳转,创建一个公共的跳转页面的类  comm.php

comm.php:如果传回的是  “isLogin”  就进行跳转

<?php //判断:如果没登录自动跳转到登录页面    if(!$_COOKIE["isLogin"]){        header("Location:login.php");    }
로그인 후 복사

登录成功后跳转到   index.php  页面下,登录不成功就返回重新登录

index.php  包含  conn.inc.php  和  comm.php

<?php include "comm.php";  //判断是否登录成功    include "conn.inc.php";    echo "用户<b>".$_COOKIE["username"]."你好!这是网站首页";    echo "你的权限如下:<br>";    $sql="select allow_1,allow_2,allow_3,allow_4 from users where id='{$_COOKIE["uid"]}'";    $result=$mysqli->query($sql);    $user=$result->fetch_assoc();    if($user["allow_1"]){        echo "111111111111<br>";    }    if($user["allow_2"]){        echo "222222222222<br>";    }    if($user["allow_3"]){        echo "333333333333<br>";    }    if($user["allow_4"]){        echo "444444444444<br>";    }    ?>    <a href="test.php">第二页</a><br>    <a href="test2.php">第三页</a><br>    <a href="logout.php">退出</a><br>
로그인 후 복사
最后第二页、第三页的写法跟 index.php 一样

登出  logout.php   需要注销用户信息

<?php include "comm.php";  //判断是否登录成功        $username=$_COOKIE["username"];  //取出用户名    //注销    setCookie("username");    setCookie("uid");    setCookie("islogin");    echo $username."再见";?><br><a href="login.php">重新登录</a>
로그인 후 복사




完整代码:

login.php:

<?php if(isset($_POST["sub"])){    	include "conn.inc.php";    	$sql="select id from users where name=&#39;{$_POST["name"]}&#39; and password=&#39;".md5($_POST["password"])."&#39;";    	$result=$mysqli->query($sql);    	//保存数据    	if($result->num_rows > 0){    		$row=$result->fetch_assoc();    		$time=time()*1800;    		setCookie("username", $_POST["name"],$time);    		setCookie("uid", $row["id"],$time);    		setCookie("isLogin",1);    		header("Location:index.php");  //跳转界面    	}    	echo "用户名密码有误";    }?>			<title>用户登录</title>				
로그인 후 복사

用户登录

用户名
密码


















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