cookies之PHP,php之cookies和session

afb6bd754a59a4b32c93ce254362e160.gif

login_page.php

实例

$page_title = '用户登陆页';

?>

当前页: 登陆页

邮箱

密码

登陆

运行实例 »

点击 "运行实例" 按钮查看在线实例

login.php

实例

// 判断是否post提交

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

// 加载公共函数库

require 'lib/function.php';

// 连接数据库

require 'lib/connect.php';

// 验证登陆

$email = $_POST['email'];

$pass = $_POST['pass'];

list($check,$data) = check_login($dbc,$email,$pass);

// 验证通过

if ($check) {

setcookie('user_id',$data['user_id']);

setcookie('user_name',$data['user_name']);

redirect_user('../success.php');

} else {

$error = $data;

}

mysqli_close($dbc);

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

\lib\connect.php

实例

$dbc = @mysqli_connect('localhost','root','root');

if (mysqli_connect_errno($dbc)) {

echo '连接失败' . mysqli_connect_error();

} else {

//    echo '成功';

}

mysqli_select_db($dbc,'php');

mysqli_set_charset($dbc,'utf8');

运行实例 »

点击 "运行实例" 按钮查看在线实例

function.php

实例

/医院

*用户自定义跳转

* @param string $page

*/

function redirect_user($page = 'index.php')

{

$url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);

// 去掉右侧的 /,\

$url = rtrim($url, '/\\');

// 生成跳转地址

$url .= '/' . $page;

// 跳转到指定定址

header('Location:' . $url);

exit();

}

function check_login($dbc, $email, $pass)

{

// 创建错误信息数组

$errors = [];

// 验证邮箱

if (empty($email)) {

$errors[] = '邮箱不能为空';

} else {

$e = mysqli_real_escape_string($dbc,trim($email));

}

// 验证密码

if (empty($pass)) {

$errors[] = '密码不能为空';

} else {

$p = mysqli_real_escape_string($dbc,trim($pass));

}

// 验证成功

if (empty($errors)) {

$sql = "select user_id,user_name from user where email = '$e' and  password = sha1('$p') ";

$res = mysqli_query($dbc,$sql);

if (mysqli_num_rows($res) == 1) {

$row = mysqli_fetch_assoc($res);

return [true,$row];

} else {

$errors[] = '邮箱或密码不正确,请重新输入';

}

}

return [false,$errors];

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

\lib\header.php

实例

html>

<?php  echo isset($page_title) ? $page_title : '' ;?>

头部公共页

运行实例 »

点击 "运行实例" 按钮查看在线实例

\lib\footer.php

实例

底部公共页

运行实例 »

点击 "运行实例" 按钮查看在线实例

success.php

实例

html>

Document

// 用户没有登陆跳转到登陆页

if (!isset($_COOKIE['user_id'])) {

require 'lib/function.php';

redirect_user('login_page.php');

}

?>

登陆成功!!! 欢迎 <?php  echo !empty($_COOKIE['user_name']) ? $_COOKIE['user_name'] : '' ?> 的来到!     注销

运行实例 »

点击 "运行实例" 按钮查看在线实例

logout.php

实例

// 用户没有登陆跳转到登陆页

if (!isset($_COOKIE['user_id'])) {

require 'lib/function.php';

redirect_user('login_page.php');

}

setcookie('user_id', '', time() - 3600);

setcookie('user_name', '', time() - 3600);

echo "点击登陆";

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值