您的位置:澳门新葡萄京娱乐网站 > 编程知识 > PHP达成用session来完结记录客户登录新闻_php实例

PHP达成用session来完结记录客户登录新闻_php实例

2019-12-22 01:30
query; return $data;}

前言

网址客商注册与登入是很常用的一个功效,本节教材就以此来演示一下 PHP 中怎样支付客户注册与登入模块。

本节内需运用的首要 PHP 根基知识:

  • PHP 中约定义 $_POST 和 $_GET 全局变量来选拔客商表单和 UENCOREL 参数新闻,关于 PHP 表单更加多音讯参见《PHP 表单》。
  • PHP 正则表明式用于决断客户的输入是不是相符必要,关于 正则表明式 越多信息参见《PHP 正则表明式》。
  • 客商登入检验通过后以 session 来维系客户的报到音讯,关于 session 越多消息参见《PHP Session》或者《PHP Cookie》。

咱俩得以在认证页面定义和采用session,然后在首页再一次定义和使用,以达到款待莫某的效果。上面再自己商议里的代码已经有了,上面是首页里的代码:

对此初入门的PHP新手来讲,大概有明显的难度。那么在事情未发生前的稿子【PHP中session怎样存款和储蓄及删除变量的】中,也为我们介绍了PHP中session的底蕴意义,须要的情侣能够选取参考。

客户注册

顾客注册首要职能有:

  1. 登记音信表单填写界面 javascript 脚本初始检查评定客户输入的注册音讯。
  2. 登记管理模块检查测量试验注册新闻是还是不是相符供给。
  3. 检验客商名是还是不是已存在。
  4. 将注册音信写入数据表,注册成功。

最后说说session验证。session函数是php自带的函数,用于记录顾客的登陆音信,雷同于cookie,但又有所区别。

1.粗略的登陆分界面代码示例:

报四处理

login.php 肩负管理客商登入与退出动作。

//登录
if(!isset($_POST['submit'])){
    exit('非法访问!');
}
$username = htmlspecialchars($_POST['username']);
$password = MD5($_POST['password']);

//包含数据库连接文件
include('conn.php');
//检测用户名及密码是否正确
$check_query = mysql_query("select uid from user where username='$username' and password='$password' limit 1");
if($result = mysql_fetch_array($check_query)){
    //登录成功
    $_SESSION['username'] = $username;
    $_SESSION['userid'] = $result['uid'];
    echo $username,' 欢迎你!进入 <a href="my.php">用户中心</a><br />';
    echo '点击此处 <a href="login.php?action=logout">注销</a> 登录!<br />';
    exit;
} else {
    exit('登录失败!点击此处 <a href="javascript:history.back(-1);">返回</a> 重试');
}

该段代码首先断定假诺是客商登陆的话,必得是 POST 动作提交。然后依照客商输入的新闻去数据库核对是不是正确,如若不易,注册 session 消息,不然提醒登入失利,客商能够重试。

该段代码必要在页面起头启用 session_start(卡塔尔(قطر‎ 函数,参见上边 退出管理代码部分。

越多关于PHP相关内容感兴趣的读者可查看本站专项论题:《php mysql数据库操作入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法计算》、《php面向对象程序设计入门教程》、《PHP网络编制程序才具总括》、《PHP数组操作技术大全》、《php字符串用法总计》及《php不足为奇数据库操作手艺汇总》

那边大家要拉开session,并用include引进数据库,然后用if语句判别查询提交过来的数额并将顾客名提交给session来记录,即决断客户名密码是还是不是留存及是还是不是等于。

报到页面

login.html 担负募集客户填写的报到音讯。

<fieldset>
<legend>用户登录</legend>
<form name="LoginForm" method="post" action="login.php" onSubmit="return InputCheck(this)">
<p>
<label for="username" class="label">用户名:</label>
<input id="username" name="username" type="text" class="input" />
<p/>
<p>
<label for="password" class="label">密 码:</label>
<input id="password" name="password" type="password" class="input" />
<p/>
<p>
<input type="submit" name="submit" value="  确 定  " class="left" />
</p>
</form>
</fieldset>

javascript 检查实验及 CSS 样式可参考reg.html,本有的略去,可直接查看最终附录的完整代码。

正文实例叙述了php完成登录模块功效的艺术。分享给大家供大家参考,具体如下:

那么上述代码login.html,db.php,check.php和

数据库人机联作

//包含数据库连接文件
include('conn.php');
//检测用户名是否已经存在
$check_query = mysql_query("select uid from user where username='$username' limit 1");
if(mysql_fetch_array($check_query)){
    echo '错误:用户名 ',$username,' 已存在。<a href="javascript:history.back(-1);">返回</a>';
    exit;
}
//写入数据
$password = MD5($password);
$regdate = time();
$sql = "INSERT INTO user(username,password,email,regdate)VALUES('$username','$password','$email',
$regdate)";
if(mysql_query($sql,$conn)){
    exit('用户注册成功!点击此处 <a href="login.html">登录</a>');
} else {
    echo '抱歉!添加数据失败:',mysql_error(),'<br />';
    echo '点击此处 <a href="javascript:history.back(-1);">返回</a> 重试';
}

该段代码首先检查评定客户名是不是曾经存在,假诺存在则输出提示新闻并马上结束程序试行。假诺顾客名不设有则把注册消息写入数据库,并出口对应提示音信。

 


近年来在念书php。学了少数关于登入的事物,写下去备忘。

3.验证顾客登入新闻的代码示例:

客商退出

顾客退出根本成效有:

  1. 义务诊疗注销 session 。
function jc(){ var userName=document.getElementById; var userPwd=document.getElementById; if { alert; userName.focus(); return false; } if { alert; userPwd.focus(); return false; }}

下边我们就通超过实际际的代码示例,为大家详细的牵线PHP中session完毕记录客商登入消息的具体方法。

注册检查评定

if(!isset($_POST['submit'])){
    exit('非法访问!');
}
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
//注册信息判断
if(!preg_match('/^[wx80-xff]{3,15}$/', $username)){
    exit('错误:用户名不符合规定。<a href="javascript:history.back(-1);">返回</a>');
}
if(strlen($password) < 6){
    exit('错误:密码长度不符合规定。<a href="javascript:history.back(-1);">返回</a>');
}
if(!preg_match('/^w ([- .]w )*@w ([-.]w )*.w ([-.]w )*$/', $email)){
    exit('错误:电子邮箱格式错误。<a href="javascript:history.back(-1);">返回</a>');
}

本段代码首先检验是或不是 POST 提交访谈该页,接下去依照登记必要(客商名 3-15 字符长度,补助汉字、字母、数字及_;密码不得少于 6 位)对客商提交的挂号新闻实行检查测验。在检查评定客户名和电子邮箱时接受了正则检验,关姜伟则表明式更所音信请参见《PHP 正则表达式》。

新建多少个页面,分别命名字为:login.phpcheck.phpindex.phperror.php

4.登入中标后跳转的页面代码示例:

客户基本

my.php 是顾客大旨,列在课程里作为客户登入检验参照他事他说加以考察。

<?php
session_start();

//检测是否登录,若没登录则转向登录界面
if(!isset($_SESSION['userid'])){
    header("Location:login.html");
    exit();
}
//包含数据库连接文件
include('conn.php');
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
$user_query = mysql_query("select * from user where uid=$userid limit 1");
$row = mysql_fetch_array($user_query);
echo '用户信息:<br />';
echo '用户ID:',$userid,'<br />';
echo '用户名:',$username,'<br />';
echo '邮箱:',$row<'email'>,'<br />';
echo '注册日期:',date("Y-m-d", $row['regdate']),'<br />';
echo '<a href="login.php?action=logout">注销</a> 登录<br />';
?>
window.location='index.php';"; } else { echo"window.location='error.php';"; }?>

此处大家定义了三个sql方法用来查询数据库表中字段,并再次回到数据。

提示

  1. 顾客注册登陆涉及到客户音信与数据库的相互影响,因而要特别注意客户提交的新闻不能够为违规消息,本例中登记部分已经运用正则说明式做了约束,对登入部分只轻易利用了 htmlspecialchars(卡塔尔 管理,实际应用时可更严格一些。
  2. 本学科只是轻巧演示顾客注册与登入的进度,其代码仅供就学参照他事他说加以考查,不可直接用于项目临蓐。
  3. 本学科中对于顾客登入成功后接受 session 来管理,也得以运用 cookie 来治本,尤其对于有的时候间限定供给的意况。
  4. 为了加强客商体验,顾客注册部分能够整合 AJAX 来检查评定顾客输入的音信而不须要等点击提交后再质量评定。

login页面用表单创立三个登录页面,少之甚少说了。在代码里用js脚本推断客商名和密码无法为空,为空则重新设置主旨。代码如下:

点击login登录,跳转到check.php。

登记管理

reg.php 负担管理客商注册消息。

说贝因美下,登录页面输入客商名和密码,若是不易,会跳到首页,呈现招待某某某,倘诺不当会跳到错误页面,呈现错误。

那正是说只要有新手不清楚PHP连接数据库的方法,可以参照学习那篇文章。

页面布局

各页面效果如下:

  • reg.html:客户注册消息填写表单页面
  • conn.php:数据库连接富含文件
  • reg.php:顾客注册管理程序
  • login.html:顾客登入表单页面
  • login.php:顾客登入表单页面
  • my.php:客户中央

希望本文所述对我们PHP程序设计具备利于。

这里是主页";session_start();$name = $_SESSION['username'];if  { echo " alert;";}else{ echo " alert"; echo "如果跳转失败请点击跳转~~"; header("Refresh:1;url=login.html");}

数据库连接

<?php
$conn = @mysql_connect("localhost","root","root123");
if (!$conn){
    die("连接数据库失败:" . mysql_error());
}
mysql_select_db("test", $conn);
//字符转换,读库
mysql_query("set character set 'gbk'");
//写库
mysql_query("set names 'gbk'");
?>

check是反省页面,假诺密码和客户名科学生守则重定向到index.php,不然定向到不当页面。代码如下:

 alert"; echo "如果跳转失败请点击跳转~~"; header("Refresh:1;url=https://www.jb51.net/article/index.php");}

挂号表单

<fieldset>
<legend>用户注册</legend>
<form name="RegForm" method="post" action="reg.php" onSubmit="return InputCheck(this)">
<p>
<label for="username" class="label">用户名:</label>
<input id="username" name="username" type="text" class="input" />
(必填,3-15字符长度,支持汉字、字母、数字及_)
<p/>
<p>
<label for="password" class="label">密 码:</label>
<input id="password" name="password" type="password" class="input" />
(必填,不得少于6位)
<p/>
<p>
<label for="repass" class="label">重复密码:</label>
<input id="repass" name="repass" type="password" class="input" />
<p/>
<p>
<label for="email" class="label">电子邮箱:</label>
<input id="email" name="email" type="text" class="input" />
(必填)
<p/>
<p>
<input type="submit" name="submit" value="  提交注册  " class="left" />
</p>
</form>
</fieldset>
无标题文档欢迎来到这里

本篇文章正是关于PHP中session来落到实处记录客户登入音讯的具体方法介绍,具备自然的参谋价值,希望对急需的情侣有所援救!

javascript 检查评定代码

<script language=JavaScript>
<!--

function InputCheck(RegForm)
{
  if (RegForm.username.value == "")
  {
    alert("用户名不可为空!");
    RegForm.username.focus();
    return (false);
  }
  if (RegForm.password.value == "")
  {
    alert("必须设定登录密码!");
    RegForm.password.focus();
    return (false);
  }
  if (RegForm.repass.value != RegForm.password.value)
  {
    alert("两次密码不一致!");
    RegForm.repass.focus();
    return (false);
  }
  if (RegForm.email.value == "")
  {
    alert("电子邮箱不可为空!");
    RegForm.email.focus();
    return (false);
  }
}

//-->
</script>

大家能够通过浏览器访问举行测量检验,首先大家得以在login登入分界面,输入客户名密码,效果如下图:

抽离管理

拍卖客户退出的代码跟管理登入的代码都在 login.php 里。

session_start();

//注销登录
if($_GET['action'] == "logout"){
    unset($_SESSION['userid']);
    unset($_SESSION['username']);
    echo '注销登录成功!点击此处 <a href="login.html">登录</a>';
    exit;
}

该段代码在管理客户登陆的代码以前,只允许以 login.php?action=logout 的艺术访问,其余方式皆以为是检查实验顾客登入。具体逻辑参看附录完整代码。

 登录  body { background: url; } .clear { clear: both; } .login { width: 370px; margin: 100px auto 0px; text-align: center; } input[type="text"] { width: 360px; height: 50px; border: none; background: #fff; border-radius: 10px; margin: 5px auto; padding-left: 10px; color: #745A74; font-size: 15px; } input[type="checkbox"] { float: left; margin: 5px 0px 0px; } span { float: left; } .botton { width: 130px; height: 40px; background: #745A74; border-radius: 10px; text-align: center; color: #fff; margin-top: 30px; line-height: 40px; }   

数据表设计

基于效果与利益要求深入分析,用于记客商新闻的 user 表供给的字段如下:

字段名 数据类型 说明
uid mediumint(8) 主键,自动增长
username char(15) 注册用户名
password char(32) MD5 加密后的密码
email varchar(40) 用户 Email
regdate int(10) 用户注册时间戳

建表 SQL 仿效如下:

CREATE TABLE `user` (
  `uid` mediumint(8) unsigned NOT NULL auto_increment,
  `username` char(15) NOT NULL default '',
  `password` char(32) NOT NULL default '',
  `email` varchar(40) NOT NULL default '',
  `regdate` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

2.轻松的用于连接数据库的PHP文件代码示例:

注册页面

reg.html 担负搜罗客户填写的注册消息。教程里只列出关键的代码片段,完整的代码附在本节最终。

假诺跳转退步就点击上航海用体育场合中链接,假若跳转成功,则直接跳转到

要求解析

重在职能分为 顾客注册、顾客登陆、客商退出、客商宗旨 四个部分。

PHP中session完毕记录客商登陆消息的难题,也是PHP面试题中相比遍布的考试的地点之大器晚成,是PHP学习者必需通晓的八个知识点。

PHP 顾客登陆与脱离

客商基本

客户退出根本职能有:

  1. 决断顾客是还是不是登陆,若无登陆,则转向到登入分界面。
  2. 大器晚成经登陆是登入意况,则读出顾客相关音讯。

顾客登入

顾客登入首要功用有:

  1. 登入表单分界面 javascript 脚本最早检验顾客输入的报到音讯。
  2. 登陆模块将客户输入音讯与数据库数据开展审查批准。
  3. 签到音信精确,则提示登陆成功,将顾客设置为记名状态(session)。
  4. 报到新闻不科学,则提示登陆退步,客商能够再度尝试登陆。

CSS 样式

<style type="text/css">
    html{font-size:12px;}
    fieldset{width:520px; margin: 0 auto;}
    legend{font-weight:bold; font-size:14px;}
    label{float:left; width:70px; margin-left:10px;}
    .left{margin-left:80px;}
    .input{width:150px;}
    span{color: #666666;}
</style>

挂号表单效果图:

澳门新葡萄京娱乐网站 1

本文由澳门新葡萄京娱乐网站发布于编程知识,转载请注明出处:PHP达成用session来完结记录客户登录新闻_php实例

关键词: