php验证登录
A. php 判断用户是否登录
判断用户登慎轿陆主要分几个过程,第一步是用户登陆成功后把数据保存到session中,然后当用户访问需要登陆过的用户权限时就来判宽族肆断session是否为空,如果不是就登录成功。下面来看个实例判断用户登陆主要分几个过程,第一步是用户登陆成功后把数据保存到session中,然后当用户访问需要登陆过的用户权限时就来判断session是否为空,如果不是就登录成功。下面来看个实例穗世<?php教程session_start(); if(getconfig("chatroom_admin")==$_post["username"]&&getconfig("chatroom_adminpassword")==md5($_post["password"])){//登陆成功,注册session session_register("administrator"); if(isset($_session["hack_num"])){session_unregister("hack_num");}$_session["administrator"] = "yes"; header("location:main.php");exit; }else{if($_session["hack_num"]==""){session_register("hack_num"); $_session["hack_num"] = 1;}else{$_session["hack_num"] ++; } header("location:../notice.php?id=".admin_login_lost);exit;}?>看到红色的没,那里就是用户登录成功把数据保存到session['hack_num']面。<?php //这个页面首先判断用户是否正确登录,如未登录,就转到登录页面。
B. thinkphp 怎么做登录验证
登录无非就是验证用户名密码以及验证码是否正确,我们可以新建一个CommonAction的公共类,用来校验权限,其他所有类继承此类。该类内部写一个初始化方法,用于验证,这一讲先不详细讲解。继续说登录,由于登录是公开模块的方法,所以可以新建一个PublicAction类,用于公共的免验证方法,同时在配置文件中添加
'NOT_AUTH_MODULE'=>'Public',//默认不需要认证的模块
'USER_AUTH_GATEWAY'=>'/Public/login',//默认的认证网关
然后开始编写Public类,具体代码如下:
<?php
{
//验证码显示
publicfunction verify(){
import("ORG.Util.Image");
Image::buildImageVerify(4,1,"png",100,28,"verify");
}
//验证是否账号密码
function checklogin(){
//此处多余可自行改为Model自动验证
if(empty($_POST['username'])){
$this->error('帐号错误!');
}elseif (empty($_POST['password'])){
$this->error('密码必须!');
}elseif (empty($_POST['verify'])){
$this->error('验证码必须!');
}
$map=array();
$map['username']=$_POST['username'];
$map['status']=array('gt',0);
if($_SESSION['verify']!= md5($_POST['verify'])){
$this->error('验证码错误!');
}
import('ORG.Util.RBAC');
//C('USER_AUTH_MODEL','User');
//验证账号密码
$authInfo=RBAC::authenticate($map);
if(empty($authInfo)){
$this->error('账号不存在或者被禁用!');
}else{
if($authInfo['password']!=md5($_POST['password'])){
$this->error('账号密码错误!');
}else{
$_SESSION[C('USER_AUTH_KEY')]=$authInfo['id'];//记录认证标记,必须有。其他信息根据情况取用。
$_SESSION['email']=$authInfo['email'];
$_SESSION['nickname']=$authInfo['nickname'];
$_SESSION['user']=$authInfo['username'];
$_SESSION['last_login_date']=$authInfo['last_login_date'];
$_SESSION['last_login_ip']=$authInfo['last_login_ip'];
//判断是否为超级管理员
if($authInfo['username']=='admin'){
$_SESSION[C('ADMIN_AUTH_KEY')]=true;
}
//以下操作为记录本次登录信息
$user=M('User');
$lastdate=date('Y-m-d H:i:s');
$data=array();
$data['id']=$authInfo['id'];
$data['last_login_date']=$lastdate;
$data['last_login_ip']=$_SERVER["REMOTE_ADDR"];
$user->save($data);
RBAC::saveAccessList();//用于检测用户权限的方法,并保存到Session中
$this->assign('jumpUrl',.'/Index/index');
$this->success('登录成功!');
}
}
}
//退出登录操作
function logout(){
if(!empty($_SESSION[C('USER_AUTH_KEY')])){
unset($_SESSION[C('USER_AUTH_KEY')]);
$_SESSION=array();
session_destroy();
$this->assign('jumpUrl',/Code.'/login');
$this->success('登出成功');
}else{
$this->error('已经登出了');
}
}
}
以上代码仅实现功能,没有做优化,有些验证的操作可以放到model,session也不用一 一赋值,用数组即可,我想已经入门的应该可以自己改的更好。
C. 用php制作用户登录认证网页
将用户名和密码提交到指定的页面,如checkform.php,然后在该页面中以传来的用户名和密码为条件,在数据库中查找,如果有记录的话,成功登陆,如果没有,就说明没有该用户,活着用户名错误
D. 怎么使用PHP PDO 写一个登录验证代码
<span style="font-size:18px;"><span style="font-size:18px;"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8" />
</head>
<?php
session_start(); //初始化session变量
$username = $_POST['name']; //接收表单提交的用户名
$password=md5($_POST['pwd']); //接收表单提交的密码
class chkinput //定义类
{
var $name;
var $pwd;
function chkinput($x,$y) //定义一个方法
{
$this->name=$x; //将管理员名称传给类对象$this->name
$this->pwd=$y; //将管理员密码传给类对象$this->pwd
}
function checkinput()
{
include("conn.php"); //连接数据库文件
$sql=mysql_query("select username,password from admin where username='".$this->name."' and password='".$this->pwd."'",$conn);
$info=mysql_fetch_array($sql); //检索管理员名称和密码是否正确
if($info==false) //如果管理员名称或密码不正确,则弹出相关提示信息
{
echo "<script language='javascript'>alert('您输入的管理员名称或密码错误,请重新输入!');history.back();</script>";
exit;
}
else //如果管理员名称或密码正确,则直接跳转到登陆成功后界面
{
echo "<script>window.location='home.php';</script>";
$_SESSION['admin_name']=$info['username']; //将管理员名称存到$_SESSION[admin_name]变量中
$_SESSION['pwd']=$info['password']; ////将管理员名称存到$_SESSION[pwd]变量中
}
}
}
$obj=new chkinput(trim($username),trim($password)); //创建对象
$obj->checkinput(); //调用类
?>
</html></span></span>
E. php 用户登录:如何判断用户是否登录
login.php
<?php
session_start();
if(isset($_POST['user'])){
$user=$_POST['user'];
$password=$_POST['password'];
if($user=='admin'&&$password=='Password'){//验证正确
$_SESSION['user']=$user;
//跳转到首页
header('location:index.php');
}else{
echo"<script>alert('登录失败,用户名或密码不正确');</script>";
exit();
}
}
?>
<formmethod="POST">
用户名:<inputtype="text"name="user"><br/>
密码:<inputtype="text"name="password"><br/>
<inputtype="submit"value="提交">
</form>
index.php
<?php
session_start();
if(isset($_SESSION['user'])&&!empty($_SESSION['user'])){
echo"登录成功:".$_SESSION['user'];
}else{
echo"你还没有登录,<ahref='login.php'>请登录</a>";
}
?>
望采纳 Thx
F. php验证登陆成功以后 如何实现弹框效果
这个简单点可以用js效果来实现
<scripttype="text/javascript">
alert('登录颤岁成功');
</script>
高级的都是写一茄历睁个弹出层div样式,然后判断你烂胡登录成功之后在显示出来,一般网站都是这样做的,通过设置弹出层样式来达到实现弹出框的效果,正常状态下是隐藏的,需要时才会显示出来。
G. php登录系统身份验证
login.html
<form
id="form1"
name="form1"
method="post"
action="checklogin.php">
<table
width="400">
<tr>
<th
width="27%"
scope="row">用户名</th>
<td
width="73%"><input
name="user_name"
type="text"
id="user_name"
/></td>
</tr>
<tr>
<th
scope="row">密码</th>
<td><input
name="user_pwd"
type="password"
id="user_pwd"
/></td>
</tr>
<tr>
<th
scope="row">请填写答案
</th>
<td><input
name="yzm"
type="text"
id="yzm"
size="5"
/>
123</td>
</tr>
<tr>
<td
colspan="2"
scope="row"><div
align="center">
<input
type="submit"
name="Submit"
value="
登录
"
/>
</div></td>
</tr>
</table>
</form>
checklogin.php
<?php
session_start();
require_once("../include/class/Mysql.class.php");
require_once("../include/class/FuncAdmin.class.php");
require_once("../include/class/Users.class.php");
$db
=
new
Mysql();
$db->getConnection(1);
$db->select_db();
$db->query("set
names
gb2312");
$f
=
new
FuncAdmin();
if(!empty($_POST['Submit'])){
//判断登录
$user_name
=
$_POST['user_name'];
$user_pwd
=
$_POST['user_pwd'];
$yzm
=
$_POST['yzm'];
//加强验证
//此处很重要但没写出呢cxmcook
if(empty($user_name)
||
empty($user_pwd)){
$f->alert_back("用户名与密码不能为空!");
}
$user
=
new
Users();
$sql
=
$user->get_select_sql("
where
user_name='".$user_name."'
and
user_pwd='".$user_pwd."'
");
$rs
=
$db->query($sql);
$row
=
$db->fetch_array($rs);
//var_mp($row);
//die("<hr>");
$rownum
=
$db->num_rows($rs);
//die('=========='.$rownum);
if(
$rownum
>0
){
//$row
=
$db->fetch_array($rs);
$_SESSION['admin']
=
'admin';
$_SESSION['user_id']
=
$row['user_id'];
$_SESSION['user_name']
=
$row['user_name'];
$_SESSION['user_realname']
=
$row['user_realname'];
$_SESSION['user_last_logintime']
=
$row['user_last_logintime'];
$_SESSION['user_last_loginIp']
=
$row['user_last_loginIp'];
$_SESSION['user_loginnum']
=
$row['user_loginnum'];
//header("Location:index.php");
echo
"<script>
alert('登录成功!".$_SESSION['user_realname']."');
location='index.php';
</script>";
}else{
$f->admin_tip("用户名或密码错误!");
}
}
?>
H. php登录验证第一次没反应,第二次可以登录成功
你登陆成功不要用这种js跳转,用php的header('Location: /index.php');
之所以你这种第一次不成功是由于cookie和session引起的,你填写完账号密码登陆,这是第一次请求session_start时候会对于这个sessionID生成一个cookie保存在你的客户端,然而cookie要起作用必需又是,下次请求的时候客户端带着cookie来服务器找回对应的session,因为你提交账号密码时候你本地还没有对应的cookie,所以必须是上一句说的(下次),衡袭橡你上面代码中的back是浏览器历史纪录的回退,并没有新建一个请求,所以没有跳转到index.php,如果你刷新了他找到了对应得session就自然会跳转
栗子:
你去面包店买蛋糕,你第一次去老板肯定不会给你蛋糕,你没给钱他也没把凭据给你,
然后你下了订单,老板写了一张单给你,自己留了一份底单,下次你带着底单过来的时候,他就会把你下单时候买的蛋糕给你(单据就类似于session 你的底单就相当于cookie)
怎么禅散改上面的代码就不说了,好咐旁好吃透cookie和session之间的原理你就会解决了
I. PHP里面的登录验证问题
这个登录判断有问题,很不安全,。第一,密码不区分大小写,也就是大写和小写都会进去,所以要先根据用户名来做,先看用户名在不在,如果存在,就查询出密码,然后将查询的密码和你接过来的密码判断,。第二,session登录的话,要开启session,还要注册,然后给session变量赋值,第三,登录的时候看前面一个地址是不是你的登陆地址,防止别人暴力破解。。兄弟,祝你好运,。我说的地方你注意下就可以了。、
J. php简单的登陆验证用户名和密码怎么写
给你个实例参考一下php编写登陆验证用户名和密码吧。
登录页面
login.html 负责收集用户填写的登录信息
在CODE上查看代码片派生到我的代码片
<html>
<head>用户登录</head>
<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>
</html>
登录处理
login.PHP 负责处理用户登录与退出动作。
在CODE上查看代码片派生到我的代码片
<?php
//登录
if(!isset($_POST['submit'])){
exit('非法访问!');
}
$username = htmlspecialchars($_POST['username']);
$password = MD5($_POST['password']);
//包含数据库连接文件
include('conn.php');
//检测用户名及密码是否正确
$check_query = mysql_query("select userid from user_list where username='$username' and password='$password' limit 1");
if($result = mysql_fetch_array($check_query)){
//登录成功
session_start();
$_SESSION['username'] = $username;
$_SESSION['userid'] = $result['userid'];
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> 重试');
}
//注销登录
if($_GET['action'] == "logout"){
unset($_SESSION['userid']);
unset($_SESSION['username']);
echo '注销登录成功!点击此处 <a href="login.html">登录</a>';
exit;
}
?>
用户中心
my.php 是用户中心,作为用户登录检测。
在CODE上查看代码片派生到我的代码片
<?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_list where userid = '$userid' limit 1");
$row = mysql_fetch_array($user_query);
echo '用户信息:<br />';
echo '用户ID:',$userid,'<br />';
echo '用户名:',$username,'<br />';
echo '<a href="login.php?action=logout">注销</a> 登录<br />';
?>
conn.php,用于连接数据库
在CODE上查看代码片派生到我的代码片
<?php
$conn = mysql_connect("127.0.0.1","root","") or die("数据库链接错误".mysql_error());
mysql_select_db("info_db",$conn) or die("数据库访问错误".mysql_error());
mysql_query("set names gb2312");
?>