2016-04-12 15 views
0

Ich möchte zulassen, dass nur https: // Links als entfernte Avatarbilder in phpbb verwendet werden, um gemischte Inhalte zu vermeiden. Dies scheint den Code zu sein, die verwendet wird, um zu überprüfen, ob die eingegebene URL korrekt ist (in /phpbb/avatar/driver/remote.php zu finden):preg_match, um nur https: // in einer URL zuzulassen

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; 
} 

Ich möchte ein hinzufügen, wenn { } -Condition vor diesem Codeblock, um eine informative Fehlermeldung zu geben, wenn der Benutzer ein Image von einem nicht sicheren Server ausgewählt hat. Kann jemand mir helfen, die korrekte preg_match() Schnur bitte zu definieren?

+1

Verwendung parse_url .. –

Antwort

0

Basierend auf den Vorschlag von @casimir, habe ich den folgenden Code und es funktioniert:

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