0

私は提出物を検証するためのこのコードの平和を持っています:

 // Check to see if the URL is banned.
         $array=parse_url($contenturl2);
          $domaincheck = $array['host'];
          $domaincheck1 = str_replace("www.", "", $domaincheck);
          $domaincheck2 = "http://".trim($domaincheck1);
          $domaincheck3 = "http://www.".$domaincheck2;


          $query = "select id from banned where (url = '$contenturl' || url = '$contenturl2' || url = '$domaincheck' || url = '$domaincheck1' || url = '$domaincheck2' || url = '$domaincheck3') && url != ''";
          $result = mysql_query($query);
            if (mysql_num_rows($result)>0)
            {
            $_SESSION['submitstatus'] = "<div class=success><b>Sorry! This domain is banned from our network</div>";
            header('Location: '.$frompage.'');
            exit;
            }

ある時点で機能しますが、想定どおりではありません。禁止リストに「domain.com/content.html」を追加すると、ドメイン「domain. com」を禁止リストに追加して、このコードでこのドメインのすべての URL を禁止したいと考えています。

ファイルが非常に大きいため、ここにファイル全体を投稿することはできませんが、リクエストがあれば投稿できます。

私が投稿した抜粋で参照されている変数 $contenturl2 には、次の変数が関連しています。

$contenturl = clean_string($_POST['contenturl']);

$contenturl2 = strtolower($contenturl);

$contenturl は、SQL から禁止されているドメインを取得します。

誰かがこれを達成する方法についての手がかりを教えてくれることを本当に願っています。

敬具ダニ

4

2 に答える 2

0

次のようなものが機能するはずです。

// Check to see if the URL is banned.
$array=parse_url($contenturl2);
$domaincheck = $array['host'];

$query = "select id from banned where url LIKE '%" . $domaincheck . "%'";
$result = mysql_query($query);
if (mysql_num_rows($result)>0)
{
    $_SESSION['submitstatus'] = "<div class=success><b>Sorry! This domain is banned from our network</div>";
    header('Location: '.$frompage.'');
    exit;
}

これは、ドメイン名のすべてのバリエーションに一致する必要があります。注: 一致させたい文字をパーセント記号で囲む必要があります。

于 2012-04-09T16:33:16.720 に答える
0

受信した URL を分割して DB にあるものと比較するためのスキームには、かなりの誤りがあります。

私はparse_urlを使用します。これにより、受け取った URL から必要な部分だけを取り出すことができます。必要に応じて再構築し、DB をチェックします。

現在のスキームには欠けている重要なロジックがたくさんあります。たとえば、特定のドメインがブロックされている場合、すべてのサブドメインをブロックする必要がありますか? すなわち。mydomain.com がブロックされている場合、www.mydomain.com をブロックする必要がありますか?

于 2012-04-09T16:45:37.680 に答える