user表: ID----UserName--pswd--VisitTime--LasrTime<% UserName=Request("UserName") pswd=Request("pswd")sql="Select * From user Where UserName = '"&UserName&"' and pswd = '"&pswd&"'" Rs.Open sql,connIf Rs.EOF Then Response.Redirect "err.asp" Response.End Else conn.Execute "Update user Set VisitTime = VisitTime + 1, LastTime = now Where ID = "&RS("ID")End If Response.Write "你是第"&(Rs(VisitTime)+1)&"次访问本站! 你上次访问本站的时间是"&Rs(LastTime)%>
在USER表里面加两个字段不就完了么……
To: dgm8(dgm8)谢谢你的指导,但是我是用 PHP 操作 Oracle 数据库,所以和你写的 ASP 程序有一些不同,尤其在操作数据库语言有所不同。
这个问题应该不是很难吧,怎么CSDN就没有人能给出很好的建议?郁闷中……
我对Oracle不熟悉,它难道不支持标准T_SQL语句吗?如果支持,用UPDATE 表 SET a=a+1,b=GETDATE() where n = '$n'就应该可以实现啊 你可以把SQL语句打印出来放到查询分析器里运行一下,看看有没有错误。
我觉得不应该记录IP,因为每次登陆的时候访问者可能使用不用地址的计算机,所以我个人认为不必要。
某个用户用哪些IP登陆过;
某个IP地址有那些用户登陆过;(可查那些人申请了多个用户名)等等;
以后网站出了问题比较好追查源头;其实简单点的话,确实可以不记录IP
这就简单了每次用户登陆的时候$Now_Time=date("Y-m-d H:i:s");然后把$Now_Time update到数据库表的LastVisit字段中...下次再来先取出LastVisit的值,就是上次登陆时间
然后再Updateunderstand?
我现在有一个登陆表,里面有以下字段:username password total lastvist
其中用户名和密码是登陆时需要的,是固定的不需改动,所以每次登陆时只需要将访问次数(total)自动加上1,本次访问时间(lastvist)自动更新为现在的登陆时间。请问怎么写这个代码?
if(!ora_parse($cursor,$sql))
ora_rollback($handle);
if(!ora_exec($cursor))
{
ora_rollback($handle);
}
else
{
print"你成功的提交数据!";
ora_logoff($handle);
exit;
}
if(!ora_parse($cursor,$sql))
ora_rollback($handle);
if(!ora_exec($cursor))
{
ora_rollback($handle);
}
else
{
print"你成功的提交数据!";
ora_logoff($handle);
exit;
}
也该用UPDATE吧,用insert怎么可以用户每登陆一次要创建一条数据,那怎么查询比对!
还有你看看insert语法:
INSERT INTO target [(field1[, field2[, ...]])]VALUES (value1[, value2[, ...])
好像没有WHERE 这个关键字啊!
但是接下来的问题是:update 语句操作的时候,如果没有 where 这个限定,怎么知道去更改具体的登陆的这个人的资料。
还有我对PHP操作MYSQL数据库比较熟,但是我才接触到 Oracle,不知道怎么去写操作Oracle数据库的操作语句。
我总觉得在PHP中的这句SQL语句有问题,尤其是对Oracle的操作。谢谢你的支持,共同努力。
ID----UserName--pswd--VisitTime--LasrTime<%
UserName=Request("UserName")
pswd=Request("pswd")sql="Select * From user Where UserName = '"&UserName&"' and pswd = '"&pswd&"'"
Rs.Open sql,connIf Rs.EOF Then
Response.Redirect "err.asp"
Response.End
Else
conn.Execute "Update user Set VisitTime = VisitTime + 1, LastTime = now Where ID = "&RS("ID")End If
Response.Write "你是第"&(Rs(VisitTime)+1)&"次访问本站! 你上次访问本站的时间是"&Rs(LastTime)%>
你可以把SQL语句打印出来放到查询分析器里运行一下,看看有没有错误。
/********************************************
* 文件名: login.inc.php
* 用户登录及验证模块,引用了const.php中定义的变量和 stdlib.php中定义的一些函数,
* 配合文件:authimg.php
* 创建日期:2003-3-9
修改:修改可独立执行.2003-8-9
*********************************************///使用的变量
$db['host'] = "localhost" ; //数据库主机名
$db['user'] = "administrator"; //数据库用户名
$db['password'] ="*****"; //密码
$db['db'] ="netvt"; //数据库名
$db['user_tbl'] ="user"; //用户表.
$sys['root'] ="http://localhost";//网站根目录session_start();//如果引用页面已执行.注释掉这句.
if($_GET['destroy'] == "OK") session_destroy();//登录验证
if($_POST['login']){
//if ($_SESSION['auth'] == $_POST['authinput']) //验证验证码;如果不要验证.可以改变量条件表达式永远为真,如下
if(1==1)
{
//验证码正确
$conn = mysql_pconnect($db['host'],$db['user'],$db['password']);
mysql_select_db($db['db']);
$logon = mysql_query("select * from {$db['user_tbl']} where loginid='".$_POST['login_name']."';") or die ("<script>alert('系统暂时不能登录,请稍后重试!');</script>");
$logininfo = mysql_fetch_array($logon);
if (!$logininfo) {
//写入日志
//access_log("登录失败,用户名不存在");
echo "<script>alert('用户名不存在!请重新登录,如果您还没有注册,请先注册!');</script>"; } else {
if ($logininfo['password'] == md5($_POST['login_pass'])) { //验证用户名/密码
//登录成功.
//销毁验证码
$_SESSION['auth'] = 0; //更新登录次数和上次登录时间.oci中如果没有now()函数可改为整数型.用time()得到当前时间戳保存到数据库
//读出时用date("Y-m-d H:i",保存的时间戳),也可以设计成字符串类型的字段,直接保存字符串.
@mysql_query("update {$db['user_tbl']} set times=times+1,lasttime=now() where loginid='{$_POST['login_name']}';"); //存入SESSION
$_SESSION['logininfo'] = $logininfo;
//记入日志
//access_log("登录!");
//如果是网站管理员,登录管理页面.
/*
if ($_SESSION['logininfo']['type'] == 9) {
echo "<script>window.location = '{$sys['root']}/admin/index.php';</script>";
}
*/ } else {
//登录失败.密码错
//access_log("登录失败",$_POST['login_name']);
echo "<script>alert('用户名/密码错!请重新登录,如果您还没有注册,请先注册!');</script>";
session_destroy();
}
}
} else { //验证码错误
//access_log("登录失败,验证码错误!",$_POST['login_name']);
echo "<script>alert('请输入正确的验证码!');</script>";
}}//登录成功or登录表单模块
if (isset($_SESSION['logininfo']) && $_SESSION['logininfo'] != array() ) {
//登录成功,将用户管理面板写入变量.
$login = "<table width=151 cellspacing=1 border=0 ><tr><td align=\"center\" class=\"header\">用户管理面板</td></tr><tr><td> 欢迎您:<font color=green><b>".$_SESSION['logininfo']['loginid']."</b></font><br><center><a href='?destroy=OK'><font color=red >[注销]</font></a></center>";
$login .= "<hr> 登录次数:<font color=green>{$_SESSION['logininfo']['times']}</font><br>";
$login .= " 上次访问:<marquee direction=left height=14 onmouseout=this.start() onmouseover=this.stop() scrollAmount=2 scrollDelay=80 width=60 ><font color=green>{$_SESSION['logininfo']['lasttime']}</font></marquee><hr>";
} else {
//登录表单.
$login .= "<!--------登录入口--------------------->
<script language=javascript>
function checkLoginForm()
{
if (document.all.loginform.login_name.value == '') {
alert('请输入用户名!');
document.all.loginform.login_name.focus();
return false;
}
if (document.all.loginform.login_pass.value == '') {
alert('请输入密码!');
document.all.loginform.login_pass.focus();
return false;
}
}
</script><table cellspacing=1><tr><td>
<FORM method=\"POST\" onsubmit=\"return checkLoginForm();\" name=loginform>
<table cellspacing=\"0\" width=147>
<TR>
<TD colspan=\"2\" align=\"center\" class=\"header\">::自助管理入口::</TD>
</TR>
<TR>
<TD align=\"right\">用户名:</TD>
<TD><INPUT size=\"10\" type=\"text\" name=\"login_name\"></TD>
</TR>
<TR>
<TD align=\"right\">密 码:</TD>
<TD><INPUT size=\"10\" type=\"password\" name=\"login_pass\"></TD>
</TR>
<TR>
<TD align=\"right\">验证码:</TD>
<TD><INPUT size=\"4\" type=\"text\" name=\"authinput\"><img src=\"{$sys['root']}/lib/authimg.php\" width=\"45\" height=\"16\" border=\"0\" alt=\"验证码\" align=\"absmiddle\"></TD>
</TR>
<TR>
<TD colspan=\"2\" align=\"center\"><INPUT type=\"submit\" name=\"login\" value=\"登录\" class=button> <INPUT type=\"button\" name=\"register\" value=\"注册\" onclick=\"window.open('{$sys['root']}/user/register.php','_blank','strollbar=no,width=300,height=300,left='+(screen.width-300)/2+',top='+(screen.height-400)/2);\" class=button></TD>
</TR>
</table>
</FORM></td></tr></table><script language=\"JavaScript\">
<!--
document.all.loginform.login_name.focus();
//-->
</script>";
} ;echo $login;
?>
==========
user表:
CREATE TABLE `user` (
`id` int(10) unsigned zerofill NOT NULL auto_increment,
`loginid` varchar(20) NOT NULL default '',
`nike_name` varchar(20) NOT NULL default '',
`password` varchar(33) NOT NULL default '',
`type` tinyint(4) NOT NULL default '0',
`freezing` tinyint(1) NOT NULL default '0',
`times` int(11) NOT NULL default '0',
`lasttime` datetime NOT NULL default '0000-00-00 00:00:00',
`question` varchar(50) NOT NULL default '',
`answer` varchar(50) NOT NULL default '',
`mail` varchar(50) NOT NULL default '',
`ip` varchar(16) NOT NULL default '',
`regtime` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
)
将lastvisit 的类型改为 number(10);
用以下语句更新
sql = "update sell_login_2 set total=total+1 ,lastvisit=".time()." where name='$Name'"显示时用date("Y-m-d H:i",数据库中的lastvisit值).