php常用的授權(quán)方法有:1、在線校驗(yàn)域名授權(quán)的方法,代碼如“file_get_contents('http://…copyright.php?domain='.$servername);”;2、獨(dú)立校驗(yàn)域名授權(quán)的方法。
本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版,DELL G3電腦
PHP實(shí)現(xiàn)域名授權(quán)的兩種方法
01. 在線校驗(yàn)域名授權(quán)的方法:
客戶端代碼:
PHP
<?php //獲取不帶端口號(hào)的域名前綴 $servername = trim($_SERVER['SERVER_NAME']); //獲取服務(wù)端授權(quán)文件校驗(yàn) $verifyurl = file_get_contents('http://www.toyean.com/zb_users/upload/copyright.php?domain='.$servername); if(!empty($verifyurl)){ echo "已授權(quán)!"; //授權(quán)成功 }else{ die("未授權(quán)!"); //授權(quán)失敗 } ?>
服務(wù)端代碼:
PHP
<?php //獲取域名 $domain = $_GET['domain']; //授權(quán)域名列表 $Array = array('127.0.0.1','localhost'); //校驗(yàn)結(jié)果 echo in_array($domain, $Array) ? 'yes' : ''; ?>
域名授權(quán)代碼可封裝進(jìn)函數(shù),或者進(jìn)行加密,對(duì)于常用的PHP加密形式,都有其破解的方法,比如ZendGuard、ionCube等,如果授權(quán)的域名較多,可以在項(xiàng)目中增加域名字段,將域名寫入數(shù)據(jù)庫(kù)再進(jìn)行讀取和校驗(yàn),此方法我們已發(fā)布成獨(dú)立的插件,詳見:ZBlogPHP域名授權(quán)插件-AllowURL, 通過插件可以將域名等信息添加到數(shù)據(jù)庫(kù)中進(jìn)行校驗(yàn)。
02. 獨(dú)立校驗(yàn)域名授權(quán)的方法:
PHP
<?php function allow_domain(){ $is_allow=false; //獲取不帶端口號(hào)的域名前綴 $servername=trim($_SERVER['SERVER_NAME']); //授權(quán)域名列表 $Array=array("localhost","127.0.0.1"); //遍歷數(shù)組 foreach($Array as $value){ $value=trim($value); $domain=explode($value,$servername); if(count($domain)>1){ $is_allow=true; break; } } if(!$is_allow){ die("域名未授權(quán)!"); //授權(quán)失敗 }else{ echo "域名已授權(quán)!"; //授權(quán)成功 } } allow_domain(); ?>
域名授權(quán)的目的在于保護(hù)知識(shí)產(chǎn)權(quán),鼓勵(lì)開發(fā)者能夠發(fā)布