+ -
当前位置:首页 → 问答吧 → [原创]网址导航收录网站网址验证提交者是站主之原理

[原创]网址导航收录网站网址验证提交者是站主之原理

时间:2011-10-07

来源:互联网

标题写着原创,其实是表明这是自己研究出来的,但是应该不是最早原创,虽然没仔细研究过其他类似网站是如何验证的,不过我想它们做的方式应该跟我自己想出来的方式是一样的吧?
       我做了一个汉服网址导航http://daohang.han-dress.com
       如果有自己网站空间的汉服网站站长想提交自己的网站,需要验证提交者是被提交网站的站主,系统如何自动完成这个过程呢?
       我是这样设计的。


       为了提高查询速度,网站导航页面所列出的网站列表数据都是存储在一张表里(表A)的,而网站提交者提交的数据存储在另一张表里(表B)。而并不是用一张表加一个字段来判断是否这行数据是经过验证的。

       网站提交者在填写表单后,数据先暂存在待验证表B中。
       表单项包含填写验证邮箱项,这个邮箱并不存储在数据表里。
       而是网站提交者填写完表单后,系统将用户提交的除邮箱外的其他项插入数据表B中,并返回获得的ID,同时系统自动随机生成一串字符串保存在网站空间的一个html文件里(存储位置:在网站根目录下的tmp文件夹内创建以刚才插表返回的获得数据ID命名的文件夹,下面创建一个index.html的文件,字符串保存在这个文件里,比如ID为1,保存路径就是tmp/1/index.html),向用户发送邮件,如见附件就为这个html文件,不过要改名为hanfu.html(其他名字亦可)。

       发送的邮件正文为一个验证url ,比如说为

              http://daohang.han-dress.com/confirm.php?id=1

     其中confirm.php为我们编写的用来做验证用的php文件,id=1表示网站提交者所提交数据在表B中的行ID为1

     邮件正文里写明,要求将附件上传到网站提交者自己所提交网站的根目录下。然后点击验证url

     比如说网站提交者提交的网站域名为http://www.abc.com,他将收到附件hanfu.html上传到网站根目录下,然后点击验证url

    http://daohang.han-dress.com/confirm.php?id=1

    这时候confirm.php文件就会被调动了,里面的php程序用file_get_contents函数将从http://www.abc.com/hanfu.html获得里面存储的字符串(效果等同于$a=file_get_contents('http://www.abc.com/hanfu.html'),在根据$_GET['id']值(比如说$_GET['id']值为1)比如说从网站空间的tmp/1/index.html里取出保存在本站网站空间里的值(效果等同于$b=file_get_contents('http://daohang.han-dress.com/tmp/1/index.html'),比较$a==$b,可以证明网站提交者至少拥有被提交网站http://www.abc.com的网站空间的ftp权限,一般情况应该为该站站主。所以验证通过,根据$_GET['id']值,从表B中调出数据插入A表,同时删除B表中原来的值,完成后网页提示,验证成功。

     验证通过后,执行网站相应页面生成html静态页,完成一次网站更新,这时候网站提交者就可以在本导航站上找到自己提交的网站了。

作者: 星汉   发布时间: 2011-10-07

不错这个跟google分析的验证实现方式基本上一样

作者: tqjs   发布时间: 2011-10-08

谢谢楼上,我没研究google是怎么验证的,不过也猜测应该是差不多吧?

作者: 星汉   发布时间: 2011-10-08