-1

着信 URL をチェックするために機能するいくつかの php コードがあり、着信 URL をチェックする必要がある何百もの php ページがあり、すべての php ページで呼び出すことができるプロシージャまたは関数のようなコードを作成したいと考えています。したがって、コード効果をすべてのページに簡単に適用できます。ここに私のphpコードがあります

<?php
ob_start();
$domain = array("http://a.sml.com.pk/default.aspx","http://a.sml.com.pk/");
if(!in_array($_SERVER['HTTP_REFERER'],$domain))
{
$URL1="http://a.sml.com.pk"; 
header ("Location: $URL1");

}
else{

set_time_limit(500);
$url = 'http://appsrv01.shakarganj.com.pk:7778/reports/rwservlet?reptestsfpl&report=sales_milk';
$pdf = 'milksales.pdf';
$pdfbak = 'bak/'.$pdf;

if (filesize($pdf) > 10000)
{
copy($pdf,$pdfbak);
}

if ((int)time() > filemtime($pdf) + 30) 
{
file_put_contents($pdf, file_get_contents($url));
}
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Type: application/pdf');

if (filesize($pdf) > 10000)
{
readfile($pdf);
}
else
{
readfile($pdfbak);
}
}
?>

ここで、すべてのファイルに適用する必要があるこのコードの手順を作成したいと思います

ob_start();
    $domain = array("http://a.sml.com.pk/default.aspx","http://a.sml.com.pk/");
    if(!in_array($_SERVER['HTTP_REFERER'],$domain))
    {
    $URL1="http://a.sml.com.pk"; 
    header ("Location: $URL1");

    }
    else{

私のコードをelse部分の前にプロシージャに変換し、else部分を考慮してすべてのファイルでそのプロシージャを呼び出す方法を教えてください。

4

2 に答える 2

2

以下のコードを domainCheker.php のような 1 つの php ファイルに記述できます。

<?php
    $domain = array("http://a.sml.com.pk/default.aspx","http://a.sml.com.pk/");
    if (!in_array($_SERVER['HTTP_REFERER'], $domain)) 
    {
        header ("Location: http://a.sml.com.pk");
        exit;
    }
?>

ここで、開始時にすべてのページにこのphpファイルを含めます。

<?php
    include 'PATH_CHECK_DOMAIN';//  give the above file path 
?>

コーディングを開始できるようになったら........!

于 2012-04-26T10:38:52.693 に答える
0
function test_referer()
{
    static $domain = array("http://a.sml.com.pk/default.aspx","http://a.sml.com.pk/");
    if (!in_array($_SERVER['HTTP_REFERER'], $domain)) {
        header ("Location: http://a.sml.com.pk");
        exit;
    }
}

コードでは、次のように呼び出します。

test_referer();
// domain verified, continue your code
于 2012-04-26T10:25:01.343 に答える