2016-04-12 7 views
0

混合コンテンツを避けるために、https://リンクのみをphpbbのリモートアバター画像として使用したいと考えています。preg_match URLのhttps://のみを許可する

if (!preg_match('#^(http|https|ftp)://(?:(.*?\.)*?[a-z0-9\-]+?\.[a-z]{2,4}|(?:\d{1,3}\.){3,5}\d{1,3}):?([0-9]*?).*?\.('. implode('|', $this->allowed_extensions) . ')$#i', $url)) 
{ 
    $error[] = 'AVATAR_URL_INVALID'; 
    return false; 
} 

は私が{場合は追加したい:これは(/phpbb/avatar/driver/remote.phpで発見される)入力したURLが正しいかどうかを確認するために使用されるコードであるように思えます} - ユーザーが非安全なサーバーから画像を選択した場合、このコードブロックの前に条件を付けてエラーメッセージを表示します。誰も私が正しいpreg_match()文字列を定義するのを手伝ってもらえますか? @casimirの提案に基づいて

+1

使用の場合でもparse_urlを.. –

答えて

0

は、私は次のコードを使用し、それが動作します:

$urlchk = parse_url($url); 
    $urlscheme = isset($urlchk['scheme']) ? $urlchk['scheme'].'://' : 'http://'; 
    if ($urlscheme=='http://'){ 
     // error message 
    } 
関連する問題