在cookie设仪一变量,每次加1。

解决方案 »

  1.   

    cookie,或者在数据库里加个字段也行,这样不会因为用户清空cookie
      

  2.   

    TO:gooddot(飞影) 
      
       我觉得不应该记录IP,因为每次登陆的时候访问者可能使用不用地址的计算机,所以我个人认为不必要。
      

  3.   

    IP只是方便以后的统计分析,比如:
    某个用户用哪些IP登陆过;
    某个IP地址有那些用户登陆过;(可查那些人申请了多个用户名)等等;
    以后网站出了问题比较好追查源头;其实简单点的话,确实可以不记录IP
      

  4.   

    我想应该用数据库——>表来实现
    这就简单了每次用户登陆的时候$Now_Time=date("Y-m-d  H:i:s");然后把$Now_Time  update到数据库表的LastVisit字段中...下次再来先取出LastVisit的值,就是上次登陆时间
    然后再Updateunderstand?
      

  5.   

    访问次数也是同理每次LogCount++;然后Update到库表中,即可
      

  6.   

    用cookie的话也可以....但用户换机器登陆就不能记载了
      

  7.   

    是这样的,我的数据库是Oracle8.1.7版本的,前台用PHP。
    我现在有一个登陆表,里面有以下字段:username   password   total    lastvist
    其中用户名和密码是登陆时需要的,是固定的不需改动,所以每次登陆时只需要将访问次数(total)自动加上1,本次访问时间(lastvist)自动更新为现在的登陆时间。请问怎么写这个代码?
      

  8.   

    $Now_Time=date("Y-m-d  H:i:s");$Sql_Upt="update 登陆表 set total=total+1,lastvist=to_Date($Now_Time,"YYYY-MM-DD HH:mm:SS")具体的你要查一下to_date()的函数说明然后把$Sql_Upt提交就可以了
      

  9.   

    我是这样写的,但是不行,请指出其中的错误。 $sql="insert into sell_login_2(total,lastvisit) values(total.NEXTVAL,SYSDATE) where name='$Name'";//让total自动加1,让时间等于系统时间。
       
        if(!ora_parse($cursor,$sql))
        ora_rollback($handle);
        if(!ora_exec($cursor))
        {
         ora_rollback($handle);
        }
        else
        {
        print"你成功的提交数据!";
    ora_logoff($handle);
        exit;
        }
      

  10.   

    还是用数据库吧,我是经常删除临时文件和cookie的,用数据库只要两个字段就可以了,查询有方便,代码也简单,还不会失效
      

  11.   

    我是这样写的,但是不行,请指出其中的错误。 $sql="insert into sell_login_2(total,lastvisit) values(total.NEXTVAL,SYSDATE) where name='$Name'";//让total自动加1,让时间等于系统时间。
       
        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 这个关键字啊!
      

  12.   

    想了一下,觉得应该用 update 这个操作语句。
    但是接下来的问题是:update 语句操作的时候,如果没有 where 这个限定,怎么知道去更改具体的登陆的这个人的资料。
    还有我对PHP操作MYSQL数据库比较熟,但是我才接触到 Oracle,不知道怎么去写操作Oracle数据库的操作语句。
      

  13.   

    "update sell_login_2 set total=total+1,lastvisit=SYSDATE where name='$Name'"这样....total.NEXTVAL还要定义序列,直接在SQL里面写+1就简单了
      

  14.   

    TO:bluemeteor(挂月||╭∩╮(︶_︶)╭∩╮)其实我用你所说的方法均不能实现在表中操作数据。
    我总觉得在PHP中的这句SQL语句有问题,尤其是对Oracle的操作。谢谢你的支持,共同努力。
      

  15.   

    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)&"次访问本站!&nbsp;&nbsp; 你上次访问本站的时间是"&Rs(LastTime)%>
      

  16.   

    在USER表里面加两个字段不就完了么……
      

  17.   

    To: dgm8(dgm8)谢谢你的指导,但是我是用 PHP 操作 Oracle 数据库,所以和你写的 ASP 程序有一些不同,尤其在操作数据库语言有所不同。
      

  18.   

    这个问题应该不是很难吧,怎么CSDN就没有人能给出很好的建议?郁闷中……
      

  19.   

    我对Oracle不熟悉,它难道不支持标准T_SQL语句吗?如果支持,用UPDATE 表 SET a=a+1,b=GETDATE() where n = '$n'就应该可以实现啊
    你可以把SQL语句打印出来放到查询分析器里运行一下,看看有没有错误。
      

  20.   

    <?php 
    /********************************************
    * 文件名: 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>&nbsp;欢迎您:<font color=green><b>".$_SESSION['logininfo']['loginid']."</b></font><br><center><a href='?destroy=OK'><font color=red >[注销]</font></a></center>";
    $login .= "<hr>&nbsp;登录次数:<font color=green>{$_SESSION['logininfo']['times']}</font><br>";
    $login .= "&nbsp;上次访问:<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\">密&nbsp;&nbsp;码:</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>&nbsp;&nbsp;&nbsp;&nbsp;<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`)
    )
      

  21.   

    mysql和OCI的函数基本上的对应的.
      

  22.   

    TO; netvt(唯她)  没有你写的这么复杂吧,其实只是针对一句对数据库的操作语言,只要能满足功能要求,我现在对所以回帖的内容都做了测试,均不能运行。
      

  23.   

    你的数据库字段 total 和 lastvisit 分别是什么类型的?
      

  24.   

    TO; netvt(唯她):total  数据类型为 number(5)lastvisit  数据类型为 date我不知道“中国同学录”(www.5460.net)里面的登陆系统是怎么实现的?我认为我的思路应该没有错啊。
      

  25.   

    date类型不能保存时间.
    将lastvisit 的类型改为 number(10);
    用以下语句更新
    sql = "update sell_login_2 set total=total+1 ,lastvisit=".time()." where name='$Name'"显示时用date("Y-m-d H:i",数据库中的lastvisit值).