php如何验证过滤用户是否登录
在java中有过滤器这么一说,当访问一个目录的时候首先判断session中是否有该用户的登录信息,如果有则放行,如果没有则返回到登录页面在php中是怎么做到一个目录下所有...
在java中有过滤器这么一说,当访问一个目录的时候首先判断session中是否有该用户的登录信息,如果有则放行,如果没有则返回到登录页面
在php中是怎么做到一个目录下所有的资源都是否有权限访问呢
首先感谢各位,我可能表达的有点偏离本意,我是希望了解,如果我没有登陆访问一个目录下的某一个页面,php是怎样把我退回到登陆页面去,是不是每一个页面都加判断,还有有像过滤器那样的,可以过滤个别请求,还请各位补充一下,之后再送50分 展开
在php中是怎么做到一个目录下所有的资源都是否有权限访问呢
首先感谢各位,我可能表达的有点偏离本意,我是希望了解,如果我没有登陆访问一个目录下的某一个页面,php是怎样把我退回到登陆页面去,是不是每一个页面都加判断,还有有像过滤器那样的,可以过滤个别请求,还请各位补充一下,之后再送50分 展开
展开全部
一、php可以通过Session,实现用户登录验证。
session习惯上被译为会话,它的设计是为了在一个访问期间在不同的页面间传输数据,以解决http协议无状态的问题。
session_register()函数的作用是注册新的变量,它会在全局变量中增加1个变量到目前的session之中,以后其他页面可以通过session_is_registered()函数检测该session变量是否已经注册。
二、通过session来检测用户登录信息,由两个文件组成,login.php为用户登录页面,checklogin.php用于检测账号、密码和是否登录成功。
具体参考代码如下:
login.php的代码如下:
<?php
session_start();//初始化session
if (isset($_SESSION['shili']))
{
header("Location:shili.php"); //重新定向到其他页面
exit();
}
?>
<script language="javascript">
function checklogin(){
if((login.username.value!="")&&(login.password.value!=""))
{
return true;//判断用户名和密码不为空,返回TRUE
}
else
{
alert ("昵称或密码不能为空!")
}
}
</script>
<style type="text/css">
.style1 { font-size: 13px; font-family: "黑体"; font-weight: normal; color: #0099FF; }
</style>
<div align="center">
<form name="login" method="post" action="checklogin.php" onSubmit="return checklogin()">
<table width="260" border="1" bgcolor="#D8EFFA">
<tr align="center">
<td height="30" colspan="2"><span class="style1">管理系统登录</span></td>
</tr>
<tr>
<td width="90" align="center" class="style1">管理员: </td>
<td width="170" height="20" align="left" valign="middle"><input name="username" type="text" id="username" size="20"></td>
</tr>
<tr>
<td align="center" class="style1">密码: </td>
<td height="20" align="left" valign="middle"><input name="password" type="password" id="password" size="20"></td>
</tr>
<tr>
<td align="center" class="style1"></td>
<td height="20" align="center"><input type="submit" name="Submit" value="登 录"></td>
</tr>
</table>
</form>
</div>
checklogin.php的代码如下:
<?php
session_start () ; //初始session
if (isset ($_SESSION['shili']))
{
header ("Location:shili.php") ; //重新定向到其他页面
exit ;
} //登录过的话立即结束
$shili_name=$_POST['username'] ; //获取参数
$password=$_POST['password'] ;
//验证管理员名称和密码是否正确,这里采用直接验证,没有连接数据库
if ($shili_name=="mr" and $password=="mrsoft")
{
session_register ("shili") ; //注册新的变量,保存当前会话的昵称
$shili = $shili_name ;
echo "<font color=red>登录成功!</font>" ;
header ("Location:shili.php") ; //登录成功重定向到管理页面
}
else
{
echo "<table width='100%' align=center><tr><td align=center>" ;
echo "账号或密码错误,或者不是管理员账号<br>" ;
echo "<font color=red>登录失败!</font><br><a href='login.php'>请重新输入</a>";
echo "</td></tr></table>" ;
}
?>
shili.php的代码如下:(实验简单验证)
<?php
echo "Welcome to My World!";
?>
//如果想要对某个页面限制浏览的用户,可以使用同样的方式,只要把如下的代码放在该页面的开头即可:
<?php
session_start () ;
if (!isset ($_SESSION['shili'])){
echo "<p align=center>" ;
echo "<font color=#ff0000 size=5><strong><big>" ;
echo "你没有登录,请<a href='denglu.php'>登录</a>!" ;
echo "</big></strong></font></p>" ;
exit () ;
}
?>
展开全部
一样的使用session,例如下面的例子程序:
例 1. A session example: page1.php
<?php
// page1.php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';
// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
After viewing page1.php, the second page page2.php will magically contain the session data. Read the session reference for information on propagating session ids as it, for example, explains what the constant SID is all about.
例 2. A session example: page2.php
<?php
// page2.php
session_start();
echo 'Welcome to page #2<br />';
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal']; // cat
echo date('Y m d H:i:s', $_SESSION['time']);
// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>
例 1. A session example: page1.php
<?php
// page1.php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';
// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
After viewing page1.php, the second page page2.php will magically contain the session data. Read the session reference for information on propagating session ids as it, for example, explains what the constant SID is all about.
例 2. A session example: page2.php
<?php
// page2.php
session_start();
echo 'Welcome to page #2<br />';
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal']; // cat
echo date('Y m d H:i:s', $_SESSION['time']);
// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
session
cookie
双管齐下
利用session_id()作为cookie的其中一些值,使关掉浏览器后就会失效,过了时间也会失效
例如
setcookie("username","abcd",time()+86400*30);
setcookie("md5_username",md5(session_id()."abcd"),time()+86400*30);
要判断登陆,必须同时有$_COOKIE['username']和$_COOKIE['md5_username']
而且$_COOKIE['md5_username']要等于md5(session_id()."abcd");
当浏览器关闭后再打开,session_id就会不同,所以就会失效了.
cookie
双管齐下
利用session_id()作为cookie的其中一些值,使关掉浏览器后就会失效,过了时间也会失效
例如
setcookie("username","abcd",time()+86400*30);
setcookie("md5_username",md5(session_id()."abcd"),time()+86400*30);
要判断登陆,必须同时有$_COOKIE['username']和$_COOKIE['md5_username']
而且$_COOKIE['md5_username']要等于md5(session_id()."abcd");
当浏览器关闭后再打开,session_id就会不同,所以就会失效了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
PHP同样也是可以用SESSION或者COOKIE来判断的,不过不能一下子判断所有的页面,你只能手动的在每个页面上都做判断。或者是单独写一个判断的页面然后用require()或者include()引入到其他页面。
补充一下
每个页都要加判断
例
session_start();
if($_SESSION["abc"]==""){
echo "<script>alert('请先登录');window.location.replace('登陆页面')</script>";
}
补充一下
每个页都要加判断
例
session_start();
if($_SESSION["abc"]==""){
echo "<script>alert('请先登录');window.location.replace('登陆页面')</script>";
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
php也是判断session。每个页面都要判断。用一个include(),不麻烦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询