diff --git a/admin_domains.php b/admin_domains.php index be9f508e..af3c18a1 100644 --- a/admin_domains.php +++ b/admin_domains.php @@ -282,10 +282,23 @@ if ($page == 'domains' || $page == 'overview') { standard_error('admin_domain_emailsystemhostname'); } + if (strpos($_POST['domain'], '--') !== false) { + standard_error('domain_nopunycode'); + } + $domain = $idna_convert->encode(preg_replace(array( '/\:(\d)+$/', '/^https?\:\/\//' ), '', validate($_POST['domain'], 'domain'))); + + // Check whether domain validation is enabled and if, validate the domain + if (Settings::Get('system.validate_domain') && ! validateDomain($domain)) { + standard_error(array( + 'stringiswrong', + 'mydomain' + )); + } + $subcanemaildomain = intval($_POST['subcanemaildomain']); $isemaildomain = 0; @@ -679,12 +692,6 @@ if ($page == 'domains' || $page == 'overview') { 'stringisempty', 'mydomain' )); - } // Check whether domain validation is enabled and if, validate the domain -elseif (Settings::Get('system.validate_domain') && ! validateDomain($domain)) { - standard_error(array( - 'stringiswrong', - 'mydomain' - )); } elseif ($documentroot == '') { standard_error(array( 'stringisempty', diff --git a/customer_domains.php b/customer_domains.php index daccf9f5..c34f296a 100644 --- a/customer_domains.php +++ b/customer_domains.php @@ -247,6 +247,11 @@ if ($page == 'overview') { } elseif ($action == 'add') { if ($userinfo['subdomains_used'] < $userinfo['subdomains'] || $userinfo['subdomains'] == '-1') { if (isset($_POST['send']) && $_POST['send'] == 'send') { + + if (strpos($_POST['subdomain'], '--') !== false) { + standard_error('domain_nopunycode'); + } + $subdomain = $idna_convert->encode(preg_replace(array('/\:(\d)+$/', '/^https?\:\/\//'), '', validate($_POST['subdomain'], 'subdomain', '', 'subdomainiswrong'))); $domain = $idna_convert->encode($_POST['domain']); $domain_stmt = Database::prepare("SELECT * FROM `" . TABLE_PANEL_DOMAINS . "` diff --git a/install/froxlor.sql b/install/froxlor.sql index dc692f2f..202d4d5a 100644 --- a/install/froxlor.sql +++ b/install/froxlor.sql @@ -558,7 +558,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'password_numeric', '0'), ('panel', 'password_special_char_required', '0'), ('panel', 'password_special_char', '!?<>§$%+#=@'), - ('panel', 'version', '0.9.35.1'), + ('panel', 'version', '0.9.36'), ('panel', 'db_version', '201605170'); diff --git a/lng/english.lng.php b/lng/english.lng.php index bb631418..72873745 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -2014,3 +2014,5 @@ $lng['serversettings']['dnseditorenable']['description'] = 'Allows admins and cu $lng['dns']['howitworks'] = 'Here you can manage DNS entries for your domain. Note that froxlor will automatically generate NS/MX/A/AAAA records for you. The custom entries are prefered, only missing entries will be automatically generated.'; $lng['serversettings']['dns_server']['title'] = 'DNS server daemon'; $lng['serversettings']['dns_server']['description'] = 'Remember that daemons have to be configured using froxlors configuration templates'; + +$lng['error']['domain_nopunycode'] = 'You must not specify punycode (IDNA). The domain will automatically be converted'; diff --git a/lng/german.lng.php b/lng/german.lng.php index fc42c0ad..ee44bec4 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -1667,3 +1667,5 @@ $lng['serversettings']['dnseditorenable']['description'] = 'Erlaubt es Admins un $lng['dns']['howitworks'] = 'Hier können DNS Einträge für die Domain verwaltet werden. Beachte das Froxlor automatisch NS/MX/A/AAAA Einträge generiert. Die benutzerdefinierten Einträge werden bevorzugt, nur fehlende Einträge werden automatisch generiert.'; $lng['serversettings']['dns_server']['title'] = 'DNS Server Dienst'; $lng['serversettings']['dns_server']['description'] = 'Dienste müssen mit den froxlor Konfigurationstemplates konfiguriert werden'; + +$lng['error']['domain_nopunycode'] = 'Die Eingabe von Punycode (IDNA) ist nicht notwendig. Die Domain wird automatisch konvertiert.';