密码登录其实有很多种方法,但你所说的通过session,我不知道是什么意思,你是想记录登录信息吗?
通过session记录登记信息,一种是记录在磁盘上(cookie),一种是记录在数据库中(如mysql),一些大型的cgi程序一般采用后面的方法。但一般都采用较为复杂的编码处理,视你的安全性要求而定。
通过session记录登记信息,一种是记录在磁盘上(cookie),一种是记录在数据库中(如mysql),一些大型的cgi程序一般采用后面的方法。但一般都采用较为复杂的编码处理,视你的安全性要求而定。
<?php
session_start();
$conn=odbc_connect("test","sa","");
$query="select USERNAME from MEMBERS where USERNAME='$USERNAME' and PASSWORD='$PASSWORD' ";
$result_id = odbc_do($conn, $query);
if($row=odbc_fetch_row($result_id))
{
$reguser=$row[0];
print $reguser;?>
<script>
alert("ok,哥们,欢迎你!");
</script>
<?
}
else
{
$reguser="";
?>
<script>
alert("sorry,你不是注册用户!");
</script>
<?
}
session_register("reguser");
?> 可总告诉我,你不是注册用户!为什么?这究竟是为什么??????????
Header("WWW-Authenticate: Basic realm=\"密码认证\"");
Header("HTTP/1.0 401 Unauthorized");
$login_flag = 0;
require("./include/denied.php");
exit;
} require "./include/db_server.cfg.php";
$db_id = mysql_connect($Server_host, $Server_user, $Server_passwd) or die("无法连接到指定的数据库!");
mysql_select_db($Server_db, $db_id) or die("不能使用指定的数据表!");
$query = "select ID, password, auth_bit from userauth where username='$PHP_AUTH_USER'";
$result = mysql_query($query, $db_id) or die("使用数据表时发生错误!");
mysql_close($db_id);if (mysql_num_rows($result)==0) {
Header("WWW-Authenticate: Basic realm=\"密码认证\"");
Header("HTTP/1.0 401 Unauthorized");
$login_flag = 1;
require("./include/denied.php");
exit;
}$row = mysql_fetch_array($result);
if ($PHP_AUTH_PW!=$row[password]) {
Header("WWW-Authenticate: Basic realm=\"密码认证\"");
Header("HTTP/1.0 401 Unauthorized");
$login_flag = 2;
require("./include/denied.php");
exit;
}if ($row[auth_bit]==0x0) {
$login_flag = 3;
require("./include/denied.php");
exit;
}if (!session_is_registered("auth_bit")) {
$auth_bit=$row[auth_bit];
session_register("auth_bit");
}
?>
就可以了。另外,db_server.cfg.php的内容如下:
<?php
$Server_host = "your_server";
$Server_user = "your_username";
$Server_passwd = "your_password";
$Server_db = "your_database";
?>发现问题请联系[email protected]