1#楼 |
|
|
回复人:lather |
注册时间:2005-04-21 |
主题/回复:37/63 |
积分:1079 |
等级:★★★☆(七级) |
称号:论坛贤士 |
|
|
|
1#楼 发表于2005-05-08 09:36:28
评分:1
|
|
你用了session_start();么?
把你的代码写上来。 |
|
2#楼 |
|
|
回复人:caonibb |
注册时间:2004-07-17 |
主题/回复:25/29 |
积分:554 |
等级:★★★(六级) |
称号:声名鹊起 |
|
|
|
2#楼 发表于2005-05-08 22:04:41
评分:×
|
|
我在php.ini文件中把session.auto.start=1 所以没有用session_start(); 以下是代码:(两个文件的 一个index.php一个login.htm)
————index.php------------------------------------------
<?php
include "../inc/mysql.inc";
// include "inc/myfunc.inc";
$username=$_POST[username];
$password=$_POST[password];
//echo $username;
// echo $_SESSION[name];
if (($username==$_SESSION[name]) and ($username!=""))
{echo "<br><center><span class=f14>您已经登陆,请不要重复登陆</span></center>";
exit;}
if ($username==""&&$password==""){
header("location:login.htm");
}else{
$pw=md5($password);
if ($username=="admin"){
$aa=new mysql;
$aa->link("qlgww");
$query="select * from user where username='admin'";
$result=$aa->excu($query);
$mm=mysql_fetch_array($result,MYSQL_ASSOC);
if ($pw==$mm["user_pw"]){
$_SESSION[name]=$username;
header("location:manger/index.php");
// include "manger/index.php";
//header("location:manage_super/admin.php");
}else{
header("location:login.htm");
// include "login.htm";
}
}else{
//用户名不为root时
$aa=new mysql;
$aa->link("qlgww");
$query="select * from user where username='$username'";
$result=$aa->excu($query);
if (mysql_num_rows($result)==0){
header("location:login.htm");
}else{
$mm=mysql_fetch_array($result,MYSQL_ASSOC);
if ($pw==$mm["user_pw"]){
$_SESSION[name]=$username;
// $query="select * from user where user_name=$username";
// $rst=$aa->excu($query);
// $kk=mysql_fetch_array($rst,MYSQL_ASSOC);
// $_SESSION[userdw]=$kk["user_dw"];
//include "manage_super/admin.php";
header("location:manger/index.php");
}else{
header("location:login.htm");
}
}
}
}//判断同时为空
?>
-----------login.htm-------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<style type="text/css">
<!--
.style1 {font-size: 14px}
-->
</style>
</head>
<body>
<div align="center">
<br>
<br>
<br>
<br>
<br>
<br>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><form action="index.php" method=POST name="tijiao">
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#111111" width="240" height="126" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" style="border-collapse: collapse">
<tr>
<td colspan="2" height="25" bgcolor="#A8A3AD">
<p align="center"><b><font color="#FFFFFF">登陆管理</font></b></td>
</tr>
<tr>
<td width="80" height="26" bgcolor="#E3E1E6">
<p align="center" class="style1">账 号:</td>
<td height="26" bgcolor="#E3E1E6" width="154">
<input type="text" name="username" size="20" style="color: #A8A3AD; border-style: solid; border-width: 1; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1"></td>
</tr>
<tr>
<td width="80" height="26" bgcolor="#E3E1E6">
<p align="center" class="style1">口 令:</td>
<td height="26" bgcolor="#E3E1E6" width="154">
<input type="password" name="password" size="20" style="color: #A8A3AD; border-style: solid; border-width: 1; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1"></td>
</tr>
<tr>
<td height="29" bgcolor="#E3E1E6" colspan="2">
<p align="center">
<input name="sub" type="submit" id="sub" value="登 陆">
<input type="reset" value="取 消" name="cancel">
</td>
</tr>
<tr>
<td colspan="2" height="20" bgcolor="#A8A3AD"> </td>
</tr>
</table>
</form></td>
</tr>
</table>
</div>
</body>
</html>
|
|
3#楼 |
|
|
回复人:lather |
注册时间:2005-04-21 |
主题/回复:37/63 |
积分:1079 |
等级:★★★☆(七级) |
称号:论坛贤士 |
|
|
|
3#楼 发表于2005-05-08 22:28:41
评分:♂
|
|
建议把login.htm换成php文件,比如login.php
然后这样处理:
--------------------
if(!session_is_registered("用户"))
include("login.inc");//login.inc是你上面html语言中form内容
else
echo "此用户的信息"; |
|
4#楼 |
|
|
回复人:caonibb |
注册时间:2004-07-17 |
主题/回复:25/29 |
积分:554 |
等级:★★★(六级) |
称号:声名鹊起 |
|
|
|
4#楼 发表于2005-05-08 23:37:17
评分:×
|
|
|
5#楼 |
|
|
回复人:lather |
注册时间:2005-04-21 |
主题/回复:37/63 |
积分:1079 |
等级:★★★☆(七级) |
称号:论坛贤士 |
|
|
|
5#楼 发表于2005-05-09 00:39:16
评分:♂
|
|
什么结果?总是运行include("login.inc")这句么? |
|
6#楼 |
|
|
回复人:lather |
注册时间:2005-04-21 |
主题/回复:37/63 |
积分:1079 |
等级:★★★☆(七级) |
称号:论坛贤士 |
|
|
|
6#楼 发表于2005-05-09 00:42:49
评分:♂
|
|
if(empty($_SESSION[name]))
include("login.inc");//login.inc是你上面html语言中form内容
else
echo "此用户的信息";
--------------------------------
这样试试 |
|
7#楼 |
|
|
回复人:一起PHP |
注册时间:2004-02-27 |
主题/回复:247/1521 |
积分:4649 |
等级:★★★★★☆(十一级) |
称号:论坛圣人 |
|
|
|
7#楼 发表于2005-05-09 16:20:26
评分:1
|
|
每个新的登陆都会得到一个新的session
如果想避免重复登陆,可以在登陆的时候判断一下,如果此用户已经登陆,则拒绝登陆。
判断这个用户是否已经登陆了,可以采用多种方法:
方法一、每个用户登陆成功时都在数据库中记录一条信息。比如xxx在某时间登陆了。这样,当其他用户登陆时,先查询数据库,看看这个用户是否已经登陆。。这样做的缺点是:如果一个用户在退出的时候没有通过正常途径,比如直接关机,这样的话数据库中登陆信息没有删除,这样的话他就永远无法登陆了,除非手工清除数据库中的记录。
方法二、遍历session.
PHP中提供了遍历session的方法(具体我不记得了,可以查资料),只需要在用户登陆的时候遍历一下session,看看该用户是否已经登陆(如果已经登陆,服务器session中有他的信息)。
第二种方法应该还是较为可行的。 |
|