在shen.php页加入一个hidden字段,放加密过的附加密码,举个简单的例子:附加密码为1234,则此字段为4321等,这样传到name.php的时候将4321还原为1234,再与附加密码比较。

解决方案 »

  1.   

    我要的算法,怎么算啊!!shen.php生成的附加密码随机的,
    phpteam(好无聊)谢谢,你的编程思想很好!!还没有没更好的!!
    更好的的算法,
    我还有个问题,一部影片,有上下集,或是连续剧,在显影片时,
    点击播放:第一集,第二集,第三集.......等三十集,数据库改怎样设计
    不会要设第一集,第二集,第三集.......三十个字段,分别从数据库中
    读出第一集,第二集,第三集,那数据库有多长啊?如有500集或更长呢?
    天啊!!有没更好办法解决,请写出思想,感谢感谢!!!!
    这是个例子:http://movies.mnzx.com/intr.asp?fmid=111174(和它的样子
    一样)
      

  2.   

    我只能给你思路,不写代码了。
    1、附加密码:
    $pass = substr(md5(uniqid(rand(), 1)), 0, 4); 
    // 取4位,显示的时候可用0-9图片代替
    2、加密过的附加密码:
    $str = strrev($pass);
    // 其实这只是简单的反转一下,你可以写成移位之类的。至于怎么个复杂程度,就依你自己的想法去写。3、关于数据库,你的影片是怎么存放的。
      

  3.   

    "付加密码"的目的是为了防止在退出登陆后,别人按几下‘后退’再点击‘刷新’…我认为用随机产生不好,因为在登陆时随机产生了它,当你退出登陆后,
    再点‘后退’到登陆页面的下一个页面时,验证码还是随机产生的;失去意义了…举个例子:
    在A页面输入用户名、密码和验证码,登陆到B页面,
    B页面是根据什么来判断所输入的验证码是否正确?其实还是通过A页面来产生的;
    ----------------------------------------------------------------
    如果要是A页面和B页面都产生一个验证码,然后在对比其是否一致:我的想法是:
    根据登陆的处理时间(也就是从A页面登陆到B页面的最长时间),假定为120秒;$theDateTime = date("Y-m-d H:i:s");
    $hour = intval(substr($theDateTime,11,2));
    $minute = intval(substr($theDateTime,14,2));
    $second = intval(substr($theDateTime,17,2));
    $month = intval(substr($theDateTime,5,2));
    $day = intval(substr($theDateTime,8,2));
    $year = intval(substr($theDateTime,0,4));
    $logtime = mktime($hour, $minute, $second, $month, $day, $year);
    $auth = logtime/120;我认为附加验证码根据 $auth 来产生比较好。
      

  4.   

    或者如果你认为处理时间可能不会很长(你的站点足够快,访问它的人都是宽带)
    $auth = logtime/20;  
    //设所有人在20秒内,都能打开登陆页面并输入用户名、密码和验证码
    //(好象不大可能)$auth = intval($auth);
    $auth = strval($auth);
    $auth = intval(substr($auth,-4));   
    //取其后四位为验证码我是根据登陆时间做验证码的。
      

  5.   

    谢谢phpteam(好无聊) ,Mistruster(弱智d)
    Mistruster(弱智d)的思想好新颖,你一定很聪明,这个思想你做过吗??太有个性了,感这个思想很有人情味,你一定很细心,为用户着想!!
    代码这此劳动的活就让我干吧!!!你思想很好!!我已经写了一万分之秒
    的随机数,把已算好的值转成ASCII,显示有大小写字母和数字混和,在做个播放器地址.
    播放器传值是这样的,pay.php?id="随机数"&id2="要验证随机数";
    怎样使用户在源文件中看不到要验证随机数。
    我用了hidden字段无法把值传过去,还有什么更好的思想可使用户在源文件中看不到要验证随机数,如看不到源文件中看不到要验证随机数,传验证随机数用户就不知道,的我就可以在pay.php中知道用户是在本站播放影片,离开就不能放出。怎样传值才使用户在源文件中看不到要验证随机数,播放不能用<FORM name="form1" method="post" action=""></FORM>提交的方式传值,只能用pay.php?id="值"&id2="值2"传值,有办法解决吗?????数据库mysql,影片是把全部的播放地址放到一个数据库的字段中,比如第一集的地址http://61.129.81.110:4567/vod002/lunli/陈宝莲的一生01.rm放在字段一
    第二集的地址http://61.129.81.110:4567/vod002/lunli/陈宝莲的一生02.rm放在字段二中
    这放,字段会需要很长,如有五十集,就要五十个字段,我想影这的数据放在一个数据表中,
    便于管理,如果影片超过数据表假十二个字段,我要在数据表中在加字段,以前的关联的数据表的程序
    都要改,要多烦啊!!也很累啊!!有没有好的数据库设计思想!!!两种放播放格式!!!
      

  6.   

    关于多集问题有两种方法可以解决:
    一、做一个主从表:
    影片表:movie (id int,name varchar,...);
    影片多集表:movieSect (id int,Mid int,name varchar,link varchar...);
    movieSect表中的Mid为movie中的id.movie表和movieSect表为一对多关系
    二、一个表,通过一个字段记录上下级关系
    影片表:movie (id int,Pid int,name varchar,link varchar...);
    所有记录成为一个上下级关系,影片名记录的Pid为0,该影片的集记录的Pid为影片的id值
      

  7.   

    还有那个传值问题可以用form中的隐藏变量来解决,
    <input type="hidden" name="id" value='<?echo $id?>'>
      

  8.   

    用hidden的确不好,最好使用Session,这样的话别人就不能在源文件里看到密码了。然后在相关的页面上写类似:
    <?
    session_start();
    if(!session_is_registered("accountID"))
    {
    session_destroy();
    print "<script>top.location.href='index.php';</script>";
    }
    //...
    ?>
      

  9.   

    谢谢以上几位大虾的帮助,下午就结帐!!!!
    下面的网址:为了感谢  phpteam(好无聊) ,Mistruster(弱智d), 
    tntxhy(落日使者) , webljf(峰),祝你们新年快乐!!!
    http://www.51delphi.com/flash/christmas.swf
      

  10.   

    Pinging www.51delphi.com [202.117.210.31] with 32 bytes of data:Request timed out.
    Request timed out.
    Reply from 202.117.210.31: bytes=32 time=3839ms TTL=116
    Request timed out.Ping statistics for 202.117.210.31:
        Packets: Sent = 4, Received = 1, Lost = 3 (75% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 3839ms, Maximum =  3839ms, Average =  959ms