احراز هویت

site verification by meta

احراز یا همان تایید هویت مدیر با کد متا (site verification by meta)

همان طور که قول داده شده بود تا این روش نیز آموزش داده شود در این پست به ادامه احراز هویت مدیر یک سایت می پردازیم.

در پست site verification نحوه آموزش تایید هویت مدیر با آپلود فایل گفته شد.

برای شروع باید با تابع get_meta_tags آشنا شوید این تابع هر متایی که در یک سایت وجود داشته باشد با استفاده از نام متا مقدار آن را می توان گرفت و استفاده کرد.

مثلا

<?php
// Assuming the above tags are at www.example.com
$tags = get_meta_tags('http://www.example.com/');
 
// Notice how the keys are all lowercase now, and
// how . was replaced by _ in the key.
echo $tags['author'];       // name
echo $tags['keywords'];     // php documentation
echo $tags['description'];  // a php manual
echo $tags['geo_position']; // 49.33;-86.59
?>

شروع آموزش

در ابتدا مثل گذشته باید یک حلقه برای تولید کد بنویسیم.

$text='QWERTYUIOPASD123FGHJKLZXCVBNM4789abcdefghijklmnopqrs56tuvwxyz';$code='';
for($i=1;$i<=12;$i++){
$start=mt_rand(20,strlen($text)-1);
$code.=substr($text,$start,1);}

بعد باید کد متا بسازیم و از کاربر بخواهیم که در سایت خودش بین <head> و </head> قرار دهد.

<p style="direction:ltr;">&lt;meta name="site-verification" content="<?=$code?>" /&gt;</p>

مثل گذشته یک فرم می سازیم تا کاربر آدرس سایت وارد کند. برای کم شدن مقدار آموزش و خسته کننده نشدن شما کل اسکریپت در زیر قرار داده شده اگر سوالی داشتید از قسمت نظرات استفاده کنید.

<?php
 
/**
 * @author mgroup
 * @copyright 2014
 */
 
$mas = '';
if(empty($_POST['code'])){
   $text='QWERTYUIOPASD123FGHJKLZXCVBNM4789abcdefghijklmnopqrs56tuvwxyz';$code='';
   for($i=1;$i<=12;$i++){
   $start=mt_rand(20,strlen($text)-1);
   $code.=substr($text,$start,1);}
  }elseif(isset($_POST['url'])){
    if(!preg_match('/^(http|https):\/\/[a-z0-9_]+([\-\.]{1}[a-z_0-9]+)*\.[_a-z]{2,5}'.'((:[0-9]{1,5})?\/.*)?$/i', $_POST['url'])){
        $tags = get_meta_tags($_POST['url']);
        $code = $tags['site-verification'];
        if($code == $_POST['code']){
            $mas = 'تایید شد';
        }else{
            $mas = 'تایید نشد <a href="">تلاش مجدد</a>';;
        }
    }
}
?>
<!DOCTYPE HTML>
<html>
<head>
	<meta http-equiv="content-type" content="text/html" />
    <meta charset="UTF-8" />
	<meta name="author" content="mgroup" />
	<title>تایید مدیر سایت</title>
<style>
body{direction:rtl;font:sans-serif;color:#FFF;}
#boxa{background:#248A9F;float:top;border-radius:5px 5px 5px 5px;width:500px;height:500px;text-align:right;}
input{width:250px;height:50px;border-radius:5px 5px 5px 5px;margin: 10px;}form{text-align: center;}
p{margin:6px 6px 6px 6px;}.info{background:#31AEF2;width:500px;height:30px;text-align:center;}h1{margin:15px;}
</style>
</head>
<body><center>
<div id="boxa"><h1>طراحی MGroup.ir</h1>
<p>کد زیر را در بین &lt;head&gt; و &lt;/head&gt; قرار دهید. </p>
<p style="direction:ltr;">&lt;meta name="site-verification" content="<?=$code?>" /&gt;</p>
  <form method="POST">
   <input type="url" name="url" placeholder="آدرس سایت شما" />
   <input type="hidden" name="code" value="<?=$code?>" />
   <input type="submit" value="ارسال" />
  </form>
 <div class="info"><?=$mas?></div>
</body>
</html>

لینک منبع در php.net  و Mgroup