2017-11-25 6 views
1

ユーザーが商品情報とデータを投稿するフォームを作成しました。情報には、製品の完全な名前、製造業者名、連絡先住所、および製造業者のリンクサイトが含まれます。今私は、FILTER_VALIDATE_URL PHP変数を使用できるリンクの検証を知っています。ここで誰かがhttps://www.google.com?page=bla+blaを投稿したとします。このFILTER_VALIDATE_URL変数は、.com or .net or .orgなどの後のURLを許可します。これはPHP変数がここでのパスを許可し、URLの検証がここで終わらないことを意味します。PHP変数のみがリンクを確認する

私は何を望んでいるのですかあなたはhttpsから.com or .net or .orgなどへのURLの妥当性を検証するだけの上記の例のようなパスを許可しないphp変数を知っていますか?

編集: リストは、全社にさらにアクセスできるPDF形式で更新されます。誰かが間違ったリンクを入れようとするのをやめさせて、リンクの検証が必要なのです。

+1

編集してくださいあなたの質問を無視することができますか?あなたはリンク/ URLで何をしたいですか?なぜURLにクエリ文字列が含まれているのが問題なのですか?あなたがしようとしていることをさらに詳しく記述してください。 – Progman

+1

また、http:// www.example.org /は大丈夫ですが、http://www.example.org/file.php?var = 42は重要ではないのはなぜですか? – Progman

答えて

1

parse_urlは、URLのコンポーネントを含む配列を返します。例えば

var_dump(parse_url('https://www.google.com?page=bla+bla')); 

出力

array (size=3) 
    'scheme' => string 'https' (length=5) 
    'host' => string 'www.google.com' (length=14) 
    'query' => string 'page=bla+bla' (length=12) 

は、あなたがしてhost配列要素を検証し、リンクを検証する理由のquery

$clean_url = parse_url($url)['host']; 
関連する問題