Jump to content
Froxlor Forum
  • 0

Fehler: "This is already a Punycode string"


André W.

Question

Hallo liebe Forums-Mitglieder,

 

ich habe seit Version 0.9.37 ein Problem bei der Anlage von neuen E-Mail Adressen welche einen Umlaut in der Domain enthalten.

Es existieren 2 Domains, welche auch ordnungsgemäß in älteren Versionen von Froxlor angelegt werden konnten.

Beispiel: musterqualitaet.de und musterqualität.de

 

Bis zur Version 0.9.37 konnten auch Problemlos E-Mails zu diesen Domains angelegt werden.

Beispiel: max.mustermann@musterqualitaet.de und max.mustermann@musterqualität.de

 

Seit der aktuellen Version kommt folgender Fehler:

[Fri Aug 05 11:17:29.404365 2016] [:error] [pid 10145] [client 84.177.xxx.xxx:13969] FastCGI: server "/var/www/php-fpm/froxlor.panel/froxlor.musterdomain.de/02b0.ssl-fpm.external" stderr: PHP message: PHP Fatal error:  Uncaught exception 'InvalidArgumentException' with message 'This is already a Punycode string' in /var/www/froxlor/lib/classes/idna/ext/Punycode.php:173, referer: https://froxlor.musterdomain.de/customer_email.php?page=emails&action=add&s=133eab2a860eb7470376d50ce1dc9c02

 

Ursache ist die Selectbox auf der Seite, wo man die E-Mail Adressen anlegen kann. Dort wird als Value bereits ein IDN-encodierte Domain hinterlegt.

Beispiel:

<select id="domain" name="domain">
<option value="musterqualitaet.de">musterqualitaet.de</option>
<option value="xn--musterqualitt-mfb.de">musterqualität.de</option>
</select>

Schreibt man dort als Value die eigentliche Domain rein, lässt sich die E-Mail Adresse anlegen.

 

Könnt ihr bitte schauen, was zur Behebung des Fehlers getan werden muss? 

 

Super vielen Dank schon mal für eure Hilfe.

 

Viele Grüße

André

 

 

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

Könntest du mal testen, ob es mit folgendem Patch funktioniert?

diff --git a/customer_email.php b/customer_email.php
index 45c0e3f..22a4685 100644
--- a/customer_email.php
+++ b/customer_email.php
@@ -205,7 +205,8 @@ if ($page == 'overview') {
                if ($userinfo['emails_used'] < $userinfo['emails'] || $userinfo['emails'] == '-1') {
                        if (isset($_POST['send']) && $_POST['send'] == 'send') {
                                $email_part = $_POST['email_part'];
-                               $domain = $idna_convert->encode(validate($_POST['domain'], 'domain'));
+                               // domain does not need idna encoding as the value of the select-box is already Punycode
+                               $domain = validate($_POST['domain'], 'domain');
                                $stmt = Database::prepare("SELECT `id`, `domain`, `customerid` FROM `" . TABLE_PANEL_DOMAINS . "`
                                        WHERE `domain`= :domain
                                        AND `customerid`= :customerid

Link to comment
Share on other sites

Hallo,

das gleiche Problem haben wir auch in customer_domains.php.

 

dort steht: $domain = $idna_convert->encode($_POST['domain']);

 

sollte aber :  $domain = $_POST['domain'];

sein.

 

Mit dieser Änderung lassen sich nun auch Subdomains anlegen.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...