IDN-Domainüberprüfung (Punnycode)
IDN-Domainüberprüfung (Punnycode)
Hallo guten Abend,
Ich habe in einem Webformular eine Eingabezeile, die bei normalen Domains und IDN-Domains unterschiedliche Aktionen durchführen soll. Und zwar:
- Bei "normalen" Domains einfach übernehmen und verarbeiten.
- Bei IDN-Domains, diese in Punnycode umwandeln und dann verarbeiten.
Wie kann ich dies am besten erledigen, dass Eingaben automatisch überprüft werden? Hat jemand von euch eine Idee?
Liebe Grüsse
Euer DtS
Ich habe in einem Webformular eine Eingabezeile, die bei normalen Domains und IDN-Domains unterschiedliche Aktionen durchführen soll. Und zwar:
- Bei "normalen" Domains einfach übernehmen und verarbeiten.
- Bei IDN-Domains, diese in Punnycode umwandeln und dann verarbeiten.
Wie kann ich dies am besten erledigen, dass Eingaben automatisch überprüft werden? Hat jemand von euch eine Idee?
Liebe Grüsse
Euer DtS
Re: IDN-Domainüberprüfung (Punnycode)
Danke, aber von dieser Seite komme ich doch... 8Owgot wrote:hier gibt's ein fertiges Script:
http://phlymail.de/?page=products&what=idna
Hier steht doch nirgends, wie automatisch erkannt werden kann, ob
eine eingegebene Domains "NORMAL" oder "IDN" ist (einfach ausgedrückt).
Vielleicht noch eine andere Idee?
Lg, Jürgen
Re: IDN-Domainüberprüfung (Punnycode)
Hallo,
Du wolltest ein Script das normale Domains unverändert läßt und IDN nach Punny konvertiert. Das Script macht exakt das - und der Code steht zum Download bereit.
Gruß, Wolfgang
Du wolltest ein Script das normale Domains unverändert läßt und IDN nach Punny konvertiert. Das Script macht exakt das - und der Code steht zum Download bereit.
Gruß, Wolfgang
Re: IDN-Domainüberprüfung (Punnycode)
Hi Wolfgang,
Oki oki, du hast gewonnen :lol: - da habe ich wohl ein wenig zu wenig
gelesen und habe mir schon länger Gedanken gemacht, wie ich das
erledigen kann.
Jaja, manchmal wäre es so einfach - wenn man nicht ZU :!: kompliziert
denken würde... 8O
Danke dir auf jeden Fall für den Tip!
Liebe Grüsse
Jürgen
Oki oki, du hast gewonnen :lol: - da habe ich wohl ein wenig zu wenig
gelesen und habe mir schon länger Gedanken gemacht, wie ich das
erledigen kann.
Jaja, manchmal wäre es so einfach - wenn man nicht ZU :!: kompliziert
denken würde... 8O
Danke dir auf jeden Fall für den Tip!
Liebe Grüsse
Jürgen
Re: IDN-Domainüberprüfung (Punnycode)
Und wenn du wirklich vorher prüfen willst dann mach doch einfach einen RegExp Ausdruck dafür.
Re: IDN-Domainüberprüfung (Punnycode)
Man lässt doch einfach jede Domain durch den Punny laufen! Der erkennt automatisch, obs was zu decodieren oder codieren gibt... :-D
Re: IDN-Domainüberprüfung (Punnycode)
Hallo,
Wäre toll, wenn mir da jemand weiterhelfen kann...
Liebe Grüsse
Euer DtS
Du hast recht, ich habe es selbst ausprobiert, dass es problemlos läuft. Aber hat diesen Punny schonmal jemand in EazyDNS integriert? Ich schaffe es einfach nicht, den einzubauen... ohne dass nach der Funktion "NICHTS" mehr rauskommt (wahrscheinlich falsche Variablenzuweisung oder so).Man lässt doch einfach jede Domain durch den Punny laufen! Der erkennt automatisch, obs was zu decodieren oder codieren gibt...
Wäre toll, wenn mir da jemand weiterhelfen kann...
Liebe Grüsse
Euer DtS
Re: IDN-Domainüberprüfung (Punnycode)
ich hab ne eigene Lösung im Einsetz, welche ich aus verschiedenen Lösungen aus dem netz zusammengebastelt habe, kann also nix zu dem PEAR paket oben sagen. Aber hast Du es schon geschafft, ohne EazyDNS zum laufen zu bekommen? Ich hab auch kein EazyDNS im Einsatz, weiß deshalb auch nicht, wo man puny da integrieren muss... vorher oder muss man da im code hacken? weil wenn vorher, dann isses doch einfach:
$domain = 'irgendwoher.bekommen';
$puny = new xxx; //PEAR Objekt instaziieren
$domain = $puny->encode($domain); //encoden
:-)
$domain = 'irgendwoher.bekommen';
$puny = new xxx; //PEAR Objekt instaziieren
$domain = $puny->encode($domain); //encoden
:-)
Re: IDN-Domainüberprüfung (Punnycode)
Also ja ich weiss, dass es so einfach wäre, aber EazyDNS pfuscht mir da jetzt ein wenig dazwischen, weil es die eingegebenen Domains überprüft und (bedingt durch die Sonderzeichen nach der Codierung) nun mir einen Fehler ausgibt.
Das ist die Funktion zur Ã?berprüfung der Domains:
Klar für diese Abfrage ist die Domain nicht gültig, durch die Sonderzeichen, die nach der Konvertierung entstehen. Wenn ich die Konvertierung aber erst nachher mache, geht das auch nicht, weil dann wiederum die Sonderzeichen (Ã?, Ã?, Ã?, etc.) als Fehler interpriert werden.
Was soll ich nun machen - auch wenn es nach einer Newbie-Frage klingt?
Lg, Jürgen
Das ist die Funktion zur Ã?berprüfung der Domains:
Code: Select all
function eingabepruefen ($domain,$check){
settype($domain,"string");
switch ($check) {
case 0: $field_checkOK = "öäü0123456789abcdefghijklmnopqrstuvwxyz0.*-";break;
case 1: $field_checkOK = "öäü0123456789abcdefghijklmnopqrstuvwxyz0.-";break;
case 2: $field_checkOK = "01234567890.";break;
case 3: $field_checkOK = "01234567890";break;
case 4: $field_checkOK = "öäü0123456789abcdefghijklmnopqrstuvwxyz0.-";break;
case 5: $field_checkOK = "0123456789abcdefABCDEF:0";break;
default:$field_checkOK = "0";break;
}
if($check != 5 && $check != 4 && $check != 3 && substr_count($domain, ".")==0){
$fehler = 1;
}
if($check == 5 && substr_count($domain, ":")!=7){
//$fehler = 1; ???
}
if(substr ($domain, -1) =="."){
$fehler = 1;
}
$field_check = $domain;
for ($j = 0; $j < strlen ($domain); $j++){
if(!strrpos ($field_checkOK,substr ($domain, $j, 1))){
$fehler = 1;
}
}
RETURN $fehler;
}Was soll ich nun machen - auch wenn es nach einer Newbie-Frage klingt?
Lg, Jürgen
Re: IDN-Domainüberprüfung (Punnycode)
Hmm verstehe ich nicht ganz, wieso es da zu Fehlern kommt. Eine Domain "müller.com" wird ja zu "xn--mller-kva.de". Das sind doch alles gültige Zeichen! Das ist ja der Effekt von Puny. Es macht aus Umlautdomains eine Domain, die Rückwärtskompatibel ist, und nur noch die zeichen a-z und das - enthält.
Welchen Fehler gibt er denn aus?
Welchen Fehler gibt er denn aus?
Re: IDN-Domainüberprüfung (Punnycode)
Ja ich weiss, darum verstehe ich es auch nicht ganz.
Die Fehlermeldung ist kurz und prägnant (z.b. mit "müller.at"):
Die Fehlermeldung ist kurz und prägnant (z.b. mit "müller.at"):
Vielleicht eine Ahnung, warum das so ist...?müller.at fehlerhaft
Re: IDN-Domainüberprüfung (Punnycode)
ist die funktion oben eine funktion aus eazydns, oder von dir? weil anstatt
würde ich
schreiben. weil dann kann man unten ganz einfach über jeden buchstaben der domain iterieren mittels
wäre zumindest etwas performanter :-) weil so nur n (n = länge der domain) einzelvergleiche, anstatt n * m (m = anzahl der gültigen buchstaben) gemacht werden müssten.
Code: Select all
case 2: $field_checkOK = "01234567890.";breakCode: Select all
case 2: $field_checkOK = array('0' => 1, '1' => 1, '2' => 1, .... '0' => 1, '.' => 1); break; Code: Select all
for ($j = 0; $j < strlen ($domain); $j++){
if(!$field_checkOK[$domain, $j, 1]){
$fehler = 1;
}
}
Re: IDN-Domainüberprüfung (Punnycode)
Hallo Svenuser,
Also ganz verstehe ich nicht, was du da schreibst, aber ich versuche es mal zu verstehen. Der einfache Austausch von
mit
funktioniert nicht:
Hier noch die Codestelle, die dann die Domains überprüft:
Hmm, so und was nun... ich blicke jetzt gar nichtmehr durch! :roll: :lol:
Vielleicht könnte mir noch jemand BITTE :!: helden?
Lg,
DtS
Also ganz verstehe ich nicht, was du da schreibst, aber ich versuche es mal zu verstehen. Der einfache Austausch von
Code: Select all
case 2: $field_checkOK = "01234567890.";breakCode: Select all
case 2: $field_checkOK = array('0' => 1, '1' => 1, '2' => 1, .... '0' => 1, '.' => 1); break;Die Funktion ist übrigens nicht von mir, sondern direkt von EazyDNS.Parse error: parse error, unexpected '.', expecting ')' in index.php on line 9
Hier noch die Codestelle, die dann die Domains überprüft:
Code: Select all
if($domain ==""||eingabepruefen($domain,1) == 1){
echo("<script><!--
alert('$domain ".$ezd_lan["fehlerhaft"]."');
history.back()
//--></script>");
exit;
}Vielleicht könnte mir noch jemand BITTE :!: helden?
Lg,
DtS
Re: IDN-Domainüberprüfung (Punnycode)
nein der Code war auch nur symbolisch... 1:1 kopieren klappt da nicht. Sorry, falls ich damit verwirrung gestiftet habe :?
was mir in der Funktion eingabepruefen() auffällt ist, dass die Variable $fehler nur auf 1 gesetzt wird. Allerdings müsste sie aber in der ersten zeile auf 0 gesetzt werden, diese zeile scheint aber zu fehlen. wenn ich mir das so anschaue, müsse eigentlich jede domain einen fehler bringen. und der funktion eingabepruefen() ist es auch eigentlich egal, ob es müller oder xn--mller-kb heißt. (ist nicht die korrekte Punny überstetzung, aber habs mal so pi mal daumen gemacht.)
was mir in der Funktion eingabepruefen() auffällt ist, dass die Variable $fehler nur auf 1 gesetzt wird. Allerdings müsste sie aber in der ersten zeile auf 0 gesetzt werden, diese zeile scheint aber zu fehlen. wenn ich mir das so anschaue, müsse eigentlich jede domain einen fehler bringen. und der funktion eingabepruefen() ist es auch eigentlich egal, ob es müller oder xn--mller-kb heißt. (ist nicht die korrekte Punny überstetzung, aber habs mal so pi mal daumen gemacht.)
Re: IDN-Domainüberprüfung (Punnycode)
Hallo,
Also irgendwie klappt es einfach nicht, sorry ich glaub ich bin wohl etwas zu doof, da durchzublicken. Hast du (svenuser) oder jemand anderer Lust sich das anzusehen...? Könnte mal einen Demozugang einrichten, damit Ihr an die Dateien heran kommt.
Wenn es klappt... naja, kann man ja reden, wie man für die Mühe einen Ausgleich schafft (@CaptainCrunch: ich hoffe, ich darf das schreiben?)
Ciao
DtS
Also irgendwie klappt es einfach nicht, sorry ich glaub ich bin wohl etwas zu doof, da durchzublicken. Hast du (svenuser) oder jemand anderer Lust sich das anzusehen...? Könnte mal einen Demozugang einrichten, damit Ihr an die Dateien heran kommt.
Wenn es klappt... naja, kann man ja reden, wie man für die Mühe einen Ausgleich schafft (@CaptainCrunch: ich hoffe, ich darf das schreiben?)
Ciao
DtS
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: IDN-Domainüberprüfung (Punnycode)
In Perl würde ich IDNA::Punycode nehmen
Re: IDN-Domainüberprüfung (Punnycode)
@Dts hab Dir mal ne PM geschickt.
@all Da es ja ein sehr spezifisches Problem ist, ist es sinnvoller es persönlich zu klären. Ich kann ja dann hier im Forum evtl. schreiben woran es lag, damit auch alle anderen die ähnliche Probleme haben davon profitieren können :-)
@all Da es ja ein sehr spezifisches Problem ist, ist es sinnvoller es persönlich zu klären. Ich kann ja dann hier im Forum evtl. schreiben woran es lag, damit auch alle anderen die ähnliche Probleme haben davon profitieren können :-)
Re: IDN-Domainüberprüfung (Punnycode)
Tja, ich brauche es aber für PHP :(Alexander Newald wrote:In Perl würde ich IDNA::Punycode nehmen
Re: IDN-Domainüberprüfung (Punnycode)
Wäre sicherlich keine schlechte Idee, dass hier abzuhandeln. Werde mir dann gleich mal deine PN zu Gemüte führen... vielleicht schaffen wir das ja irgendwie zusammen *g*@all Da es ja ein sehr spezifisches Problem ist, ist es sinnvoller es persönlich zu klären. Ich kann ja dann hier im Forum evtl. schreiben woran es lag, damit auch alle anderen die ähnliche Probleme haben davon profitieren können :-)
Danke und viele Grüsse
Jürgen (DtS)
Re: IDN-Domainüberprüfung (Punnycode)
In welchem RPM Paket ist das Modul IDNA::Punycode enthalten? wie mus ich was installieren um darauf zurückzugreifen.
Gruß
Gruß