Patrick Andrieu: Just another »Schei? encoding«-Frage ;) - Social Bookmarks

Hallo alle!

Zur Vorgeschichte: $Kunde würde gerne seinen @Besuchern die Möglichkeit bieten, seine Startseite bei @SocialBookmarks einzutragen ($Kunde verspricht sich sicher ein besseres $Ranking dadurch). Also hat sich $Auftragnehmer, dem alles, was nach Web 2.0 klingt suspekt, ja fast zuwider ist, und der sich mit sowas nie beschäftigt hat, weil nie beschäftigen wollte, doch noch etwas im Web 1.0 erkundigt.

Am Einfachsten wäre gewesen, eine Art Icon-Leiste zu bauen mit $SocialBoomarks[0], $SocialBookmarks[1],..., $SocialBookmarks[$#SocialBookmarks]. Doch irgendwo hat $Auftragnehmer gelesen, dass es nicht so gut sein soll, direkte Links zu $SocialBookmarks[i] zu setzten, wenn $Kunde->startseite('PageRank™') < $x || $Kunde->startseite('PageRank™') == 0 ist.

Dafür gibt es im Web @kostenloseDienste, die dank eines JavaScript($Code) das Problem umgehen. Zwei davon hat $Auftragnehmer in die engere($Wahl) genommen.

Bei $kostenloseDienste[0] muss man sich registrieren, das ist $Auftragnehmer, dessen MisstrauenRank™ sehr hoch ist, auch etwas suspekt - zumal laut $Anbieter->NutzungsBedingungen('§xy') $Kostenlosigkeit jederzeit von $Anbieter den Wert $kostetDochWas_Aetsch zugewiesen werden kann.

Und bei $kostenloseDienste[1] tritt $Problem auf, das ich nach dieser sehr »kurzen Vorgeschichte«™ schildern möchte:

  • enthält $Kunde->startseite(-charset => utf8) im $Kunde->startseite(-title => 'äüß') Sonderzeichen oder Umlaute und $Besuchern[i] benutzt $Browser{'Firefox 3.5.x'} kommt bei $SocialBookmarks[i] das bei $Schei?encoding{'probleme'} oft beschriebene $Schei?encoding{'garbage'} 'raus. $Problem tritt auch bei $Browser{'MSIE 6'} und $Browser{'MSIE 7'} auf, aber beide verlieren zunehmend an $Bedeutung. Getestet wurde auch mit $Browser{'Safari'}, $Browser{'Opera'}, $Browser{'Google Chrome'}, $Browser{'MSIE 8'} bei denen es jedoch kein $Schei?encoding{'garbage'} zu sehen ist.

Ein $Problem von $Browser{'Firefox 3.5.x'}? Oder ist JavaScript($Code) von $kostenloseDienste[1] kaputt™?

$kostenloseDienste[0] = 'http://www.seitzeichen.de/';
$kostenloseDienste[1] = 'http://www.social-bookmark-script.de/';

$Auftragnehmen würde sich auch freuen, @AllgemeineHinweise zu @SocialBookmarks zu bekommen.

Viele Grüße aus Frankfurt/Main,
Patrick

--
_ - jenseits vom delirium - _

   Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
  1. hi,

    $kostenloseDienste[0] = 'http://www.seitzeichen.de/';

    Zum Registrieren steht da bei Username*:
    4 bis 20 Zeichen, keine Umlaute, Leer-, Sonderzeichen (außer ._-)

    Wenn $Auftraggeber das so wünscht, bzw. nicht wünscht, soll sich der $Username gefääligst daran halten ;-)

    Und wenn $Auftraggeber nicht mit "Umlaute, Leer-, Sonderzeichen (außer ._-)" umgehen kann, sollte er das Teufelszeug rausfiltern.

    So!
    Hotti

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  2. Hi!

    Kannst du dein eigentliches Problem nochmal nachvollziehbar und ohne den ganze Perl-Operatoren-Firlefanz aufzeigen? (Zumal da auch noch ein Haufen Implementationsfehler[*] drin sind, die die Interpretation erschweren.)

    Was konkret (inklusive Angaben zum charset im Content-Type) steht wo? Wo genau soll es hin und auf welche Weise? Wie erscheint es dort? Kann man beim Nutzen des Dienstes irgendwo exakt die verwendete Kodierung angeben?

    [*] Beispiel: $Kunde->startseite('PageRank™') - PageRank ist entweder eine Eigenschaft der Seite (weil irgendwer diese Information bereits ermittelt und ihr zugewiesen hat) oder eine Funktion, die die Seite als Parameter erwartet. Die Seite selbst kann jedenfalls ihren PageRank nicht ermitteln. Das wäre so, als ob eine Kuh ermitteln müsste, was der Bauer ihr für einen Verkaufspreis zugedacht hat. Entweder hat man ihr diese Information als Metadatum angeheftet oder der Bauer kann sie liefern.

    Lo!

    1. Hallo dedlfix!

      Zumal da auch noch ein Haufen Implementationsfehler[*] drin sind

      Ich hatte beim Posten nicht den Anspruch auf $Perfektion ;)

      Was konkret (inklusive Angaben zum charset im Content-Type) steht wo?

      Also krass konkret:

      Die Kundenseite ist utf8. Der Titel enthält Sonderzeichen und Umlaute. Das title-Element wurde nach dem meta »Content-Type« notiert.

      Klickt man auf den vom JS-Code des Anbieters generierten Button, landet man auf eine Seite mit einer Icon-Liste von einigen Social Bookmarks (Wong, del.icio.us, etc...) und kann sich eins auswählen. Ich nehme da immer Wong, weil del.icio.us beispielsweise sofort einen Registrierungsformular anzeigt, während Wong zumindest fragt, ob die Seite gebookmarked werden soll, dabei den Titel der Seite anzeigt. Und eben da erscheinen, wenn ich Firefox benutze, die Sonderzeichen als Garbage. Benutze ich für die Aktion andere Browser (außer IE 6 und 7), ist der Title korrekt wiedergegeben.

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --
      _ - jenseits vom delirium - _

         Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
      Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
      1. Hi!

        Ich hatte beim Posten nicht den Anspruch auf $Perfektion ;)

        Leider, so muss ich wieder nachfragen.

        Klickt man auf den vom JS-Code des Anbieters generierten Button,

        Wo ist der JS-Code zu finden? Ist der in die fragliche Seite eingebettet (oder auch hinzugeladen, jedenfalls im Kontext der Seite aktiv)?

        landet man auf eine Seite mit einer Icon-Liste von einigen Social Bookmarks [...]

        Die Seite gehört zum Dienstleister?

        Und eben da erscheinen, wenn ich Firefox benutze, die Sonderzeichen als Garbage.

        Garbage gibt es in vielen Versionen. Wenn du zeigst, wie es genau aussieht, kann man zumindest konkret raten, was passiert sein könnte.

        Lo!

        1. Hallo dedlfix!

          Wo ist der JS-Code zu finden? Ist der in die fragliche Seite eingebettet (oder auch hinzugeladen, jedenfalls im Kontext der Seite aktiv)?

          Ich habe diesen Code eingebunden:

          <div id="bm-button">
                  <script src="http://www.social-bookmark-script.de/js/button-long.js" type="text/javascript"></script>
                  <noscript><p><a href="http://www.social-bookmark-script.de/bookmark.button.htm">Social Bookmark Button</a></p></noscript>
                </div>

          Die Seite gehört zum Dienstleister?

          Ja.

          Garbage gibt es in vielen Versionen. Wenn du zeigst, wie es genau aussieht, kann man zumindest konkret raten, was passiert sein könnte.

          Aus »–« wird »â€“« und aus »ü« wird »Ã¼r«.

          Anscheinend werden an irgendeiner Stelle die Zeichen nicht richtig kodiert an die URL angehängt, denn das steht in der Adresszeile der Dienstanbieterseite nachdem auf den Button geklickt wurde (Firefox):

          http://www.social-bookmark-script.de/submit.bookmarks.htm?url=http%3A%2F%2Fwww.example.com%2Findex.html&title=Kundenfirma%20GmbH%20%E2%80%93%20Ihr%20Partner%20f%C3%BCr%20dies%2C%20das%2C%20und%2C%20jenes

          Jetzt wähle ich Mister Wong, und das steht nun in der Adresszeile:

          http://www.mister-wong.de/index.php?action=addurl&bm_url=http://www.example.com/index.html&bm_notice=&bm_description=Kundenfirma GmbH – Ihr Partner für dies, das und jenes&bm_tags=

          Auf der Seite steht:

          »Diese Website speichern

          Kundenfirma GmbH – Ihr Partner für dies, das und jenes«

          Viele Grüße aus Frankfurt/Main,
          Patrick

          --
          _ - jenseits vom delirium - _

             Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
          Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
          1. Ich habe diesen Code eingebunden:

            <div id="bm-button">
                    <script src="http://www.social-bookmark-script.de/js/button-long.js" type="text/javascript"></script>
                    <noscript><p><a href="http://www.social-bookmark-script.de/bookmark.button.htm">Social Bookmark Button</a></p></noscript>
                  </div>

            Wie sieht's aus wenn du das Script verwendest, das dir addthis ausgibt?
            http://www.addthis.com/
            (keine Reg, nur deftiges Tracking)

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
          2. Hi!

            Ich habe diesen Code eingebunden:
                    <script src="http://www.social-bookmark-script.de/js/button-long.js" type="text/javascript"></script>

            Der verwendet encodeURIComponent(). Während das Mozilla Developer Center sagt, dass es UTF-8 nimmt, schweigt sich die MSDN zur verwendeten Kodierung aus. Die ECMA jedenfalls definiert, dass das Ergebnis UTF-8-kodiert (und anschließend URL-kodiert) sein soll.

            Die Seite gehört zum Dienstleister?
            Ja.

            Dann liegt es in seiner Verantwortung, die Daten korrekt weiterzureichen und dabei gegebenenfalls umzukodieren, je nachdem, wie das Ziel es haben will (und dieses "wie" natürlich vorher herauszufinden).

            Garbage gibt es in vielen Versionen. Wenn du zeigst, wie es genau aussieht, kann man zumindest konkret raten, was passiert sein könnte.
            Aus »–« wird »â€“« und aus »ü« wird »Ã¼r«.

            Also UTF-8, wenn man es als ISO-8859-1 interpretiert.

            Anscheinend werden an irgendeiner Stelle die Zeichen nicht richtig kodiert an die URL angehängt, denn das steht in der Adresszeile der Dienstanbieterseite nachdem auf den Button geklickt wurde (Firefox):
            http://www.social-bookmark-script.de/submit.bookmarks.htm?url=http%3A%2F%2Fwww.example.com%2Findex.html&title=Kundenfirma%20GmbH%20%E2%80%93%20Ihr%20Partner%20f%C3%BCr%20dies%2C%20das%2C%20und%2C%20jenes

            Soweit enttspricht das der Definition von encodeURIComponent().

            Jetzt wähle ich Mister Wong, und das steht nun in der Adresszeile:
            http://www.mister-wong.de/index.php?action=addurl&bm_url=http://www.example.com/index.html&bm_notice=&bm_description=Kundenfirma GmbH – Ihr Partner für dies, das und jenes&bm_tags=

            Ich würde das dem Dienstleister ankreiden, wenn er eine eine ordnungsgemäße URL nicht richtig weitersenden kann. Du kannst da nichts weiter machen als Nicht-ASCII-Zeichen zu vermeiden (was natürlich keine akzeptable Lösung ist).

            Lo!

            1. Hallo dedlfix!

              Jetzt wähle ich Mister Wong, und das steht nun in der Adresszeile:
              http://www.mister-wong.de/index.php?action=addurl&bm_url=http://www.example.com/index.html&bm_notice=&bm_description=Kundenfirma GmbH – Ihr Partner für dies, das und jenes&bm_tags=

              Stutzig macht mich, dass es nur bei Firefox auftritt (olle IEs mal ausgenommen). Und noch was. Das was ich hier gepostet habe:

              http://www.mister-wong.de/index.php?action=addurl&bm_url=http://www.example.com/index.html&bm_notice=&bm_description=Kundenfirma GmbH – Ihr Partner für dies, das und jenes&bm_tags=

              ist das, wie ich es in der Adresszeile »sehe«. Klicke ich nun in die Adresszeile und mache ein [STRG]+[C] um es dann hier zu pasten, erhalte ich:

              http://www.mister-wong.de/index.php?action=addurl&bm_url=http://www.example.com/index.html&bm_notice=&bm_description=Kundenfirma%20GmbH%20%C3%A2%E2%82%AC%E2%80%9C%20Ihr%20Partner%20f%C3%83%C2%BCr%20dies,%20das%20und%20jenes&bm_tags=

              Ich würde das dem Dienstleister ankreiden, wenn er eine eine ordnungsgemäße URL nicht richtig weitersenden kann. Du kannst da nichts weiter machen als Nicht-ASCII-Zeichen zu vermeiden (was natürlich keine akzeptable Lösung ist).

              Naja, ich wollte mir was selber proggen, nur die Zeit...

              @Beat: Fehlerfrei, nur gefällt mir irgendwie nicht so... Ich werde mal nach weiteren Anbieter suchen... oder doch selber proggen...

              Viele Grüße aus Frankfurt/Main,
              Patrick

              --
              _ - jenseits vom delirium - _

                 Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
              Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
              1. Hi!

                Stutzig macht mich, dass es nur bei Firefox auftritt (olle IEs mal ausgenommen). Und noch was. Das was ich hier gepostet habe:

                Die UTF-8-Kodierung jedenfalls wäre richtig. Und prinzipiell kann ich am IE8 bei encodeURIComponent() auch keinen Fehler sehen, denn der liefert auch ein UTF-8- und URL-kodiertes Ergebnis bei dieser Funktion.

                http://www.mister-wong.de/index.php?action=addurl&bm_url=http://www.example.com/index.html&bm_notice=&bm_description=Kundenfirma GmbH – Ihr Partner für dies, das und jenes&bm_tags=

                ist das, wie ich es in der Adresszeile »sehe«. Klicke ich nun in die Adresszeile und mache ein [STRG]+[C] um es dann hier zu pasten, erhalte ich:

                http://www.mister-wong.de/index.php?action=addurl&bm_url=http://www.example.com/index.html&bm_notice=&bm_description=Kundenfirma%20GmbH%20%C3%A2%E2%82%AC%E2%80%9C%20Ihr%20Partner%20f%C3%83%C2%BCr%20dies,%20das%20und%20jenes&bm_tags=

                Dann kommt doppelte UTF-8-Kodierung ins Spiel. Der bereits einmal UTF-8-kodierte Wert wird/wurde fälschlicherweise als ISO-8859-1 interpretiert und erneut UTF-8-kodiert. Das lohnt sich aber nicht weiter zu betrachten, denn das ist ein Folgefehler.

                Lo!

              2. hi,

                Naja, ich wollte mir was selber proggen, nur die Zeit...

                Biste eh am besten mit bedient. Ist ja nicht mal viel Arbeit, das meiste ist mit Copy&Paste erledigt.
                Das Script, dass der Dienstleister anbietet, wird ISO-Kodiert (und sieht nicht wirklich schön aus).

                mfg

                1. Hi!

                  Das Script, dass der Dienstleister anbietet, wird ISO-Kodiert

                  Das verwendet nur ASCII-Zeichen und ist damit alles mögliche. Unter anderem gültiges ISO-8859-irgendwas und UTF-8.

                  (und sieht nicht wirklich schön aus).

                  Das soll es auch nicht. Es soll nur kurz sein, weswegen es möglichst kurze Bezeichner verwendet und mit Whitespace geizt.

                  Lo!

                  1. hi,

                    Das verwendet nur ASCII-Zeichen und ist damit alles mögliche. Unter anderem gültiges ISO-8859-irgendwas und UTF-8.

                    Ich denke, das Problem ist, dass das verlinkte Javascript zuerst zu der Dienstleister-Seite leitet, bevor man einen Bookmark-Dienst auswählen kann; und besagte Seite ist auch ISO-Kodiert.

                    Javascript ist ISO (direkt vom Dienstleister)
                    Javascript ist UTF-8

                    <title>Lörem ipsüm dölär sit amet, cönsetetär</title>

                    Ergebnis in beiden Fällen (Delicious): Lörem ipsüm dölär sit amet, cönsetetär

                    mfg

                    1. Hallo Malcolm!

                      Javascript ist ISO (direkt vom Dienstleister)
                      Javascript ist UTF-8
                      <title>Lörem ipsüm dölär sit amet, cönsetetär</title>

                      Aber wiederum »nur« bei Firefox und den ollen IEs (sprich: den alten, das hat dedlfix vorher sicher missverstanden, denn IE8 macht's richtitg)...

                      Daher meine Frage: was macht Firefox falsch und alle anderen richtig bzw. was machen alle anderen falsch (indem sie das richtig anzeigen) und Firefox richtig (indem er das falsch anzeigt)? Alles Klar? Ich sagte ja schon im Threadtitle: Schei?encoding...

                      Im Übrigen macht Firefox (als Einziger) es falsch bei beiden Links von Dir...

                      Viele Grüße aus Frankfurt/Main,
                      Patrick

                      --
                      _ - jenseits vom delirium - _

                         Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                      Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                      1. AOP!

                        Daher meine Frage: was macht Firefox falsch und alle anderen richtig bzw. was machen alle anderen falsch (indem sie das richtig anzeigen) und Firefox richtig (indem er das falsch anzeigt)? Alles Klar? Ich sagte ja schon im Threadtitle: Schei?encoding...

                        Fehlerkorrektur nehme ich mal an.

                        Im Übrigen macht Firefox (als Einziger) es falsch bei beiden Links von Dir...

                        Ich habe mal die Links verglichen, die in den Browsern produziert werden, wenn man bei dem Bookmark-Dienst auf Mr. Wong klickt:
                        So komme ich bei Mr. Wong an (Wenn man in die Adresszeile klickt und mit Enter bestätigt, ist alles Ok)

                        Firefox 3.5
                        &bm_description=Lörem ipsüm dölär sit amet, cönsetetär; Script: UTF-8

                        IE 8
                        &bm_description=Lörem ipsüm dölär sit amet, cönsetetär; Script: UTF-8

                        Multipler IE 6
                        &bm_description=Lörem%20ipsüm%20dölär%20sit%20amet,%20cönsetetär;%20Script:%20UTF-8

                        Opera 10  (Fehlerkorrektur?)
                        &bm_description=L%C3%B6rem%20ips%C3%BCm%20d%C3%B6l%C3%A4r%20sit%20amet,%20c%C3%B6nsetet%C3%A4r;%20Script:%20UTF-8

                        Safari 4  (Fehlerkorrektur?)
                        &bm_description=Lörem%20ipsüm%20dölär%20sit%20amet,%20cönsetetär;%20%20Script:%20UTF-8

                        Wie dedlfix schon schrieb: „Jedenfalls glaube ich nicht, dass das was der Bookmarksdienst da veranstaltet, so seine Richtigkeit hat.“

                        Auch der Punkt, dass dieser anbieter die Seiten der Dienste, auf die der User klickt, in einem neuen Fenster/ Tab öffnet, gehört sich nicht. Der Dienstleister hat weiterzuleiten, Sang und Klanglos -- und vor allem: ohne neue Fenster und Tabs.

                        mfg

                    2. Hi!

                      Ich denke, das Problem ist, dass das verlinkte Javascript zuerst zu der Dienstleister-Seite leitet, bevor man einen Bookmark-Dienst auswählen kann; und besagte Seite ist auch ISO-Kodiert.

                      Die Zeichenkodierung, in der eine Response verfasst ist, muss nicht zwingend die gleiche sein, in der der Server zu verarbeitende Daten erwartet. Es gibt da keinen Zusammenhang, den man einfach so herstellen kann.

                      Javascript ist ISO (direkt vom Dienstleister)
                      Javascript ist UTF-8

                      Die Kodierung einer Webseite ist für Javascript nicht von Belang, weil es immer mit Unicode arbeitet. Ein Browser dekodiert jede Webseite in eine interne auf Unicode basierende Form. Etwas anderes wäre sowieso nicht sinnvoll, weil als Zeichensatz für Webseiten Unicode festgelegt wurde. Javascript als im Webseitenkontext laufende Sprache läuft praktischer- und logischerweise auch mit Unicode.

                      In dem vorliegenden Problemscript wird die Funktion encodeURIComponent() verwendet, bei der definiert ist, dass sie die Daten erst nach UTF-8 kodiert und anschließend URL-encodet. Der Bookmarkdienst sollte dies wissen und die empfangenen Daten entsprechend behandeln.

                      Aber was sieht man da? Welchen Link man von den beiden obigen nimmt ist egal, weil die Bookmarkseite stets mit der selben URL aufgerufen wird. Als Antwort bekommt man eine Seite mit

                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

                      Der Link zu beispielsweise Mr. Wong jedoch sieht so aus:

                      <a href="#" rel="nofollow" onClick="window.open('http://www.mister-wong.de/index.php?action=addurl&amp;bm_url=http://dj-tut.de/z_test/selfhtml/bookmarks-utf.html&amp;bm_notice=&amp;bm_description=Lörem ipsüm dölär sit amet, cönsetetär; Script: UTF-8&amp;bm_tags=');">

                      Zu sehen ist also UTF-8-kodierter Text. Firefox ruft beim Click diese URL auf (mit livehttpheaders mitgeschrieben):

                      GET /index.php?action=addurl&bm_url=http://dj-tut.de/z_test/selfhtml/bookmarks.html&bm_notice=&bm_description=L%C3%83%C2%B6rem%20ips%C3%83%C2%BCm%20d%C3%83%C2%B6l%C3%83%C2%A4r%20sit%20amet,%20c%C3%83%C2%B6nsetet%C3%83%C2%A4r;%20Script:%20UTF-8&bm_tags= HTTP/1.1

                      Firefox konnte nicht anders als die UTF-8-Daten gemäß ihrer Deklaration als ISO-8859-1 als solche zu interpretieren, und hat sie UTF-8- und URL-encodiert, weswegen man beim L%C3%83%C2%B6rem 4 kodierte Byte für das ö sieht. Der IE8 hingegen fordert laut der DebugBar jedoch dies an:

                      GET /index.php?action=addurl&bm_url=http://dj-tut.de/z_test/selfhtml/bookmarks.html&bm_notice=&bm_description=Lörem%20ipsüm%20dölär%20sit%20amet,%20cönsetetär;%20Script:%20UTF-8&bm_tags= HTTP/1.1

                      Er URL-kodiert zwar Leerzeichen richtig nach %20, lässt aber die anderen Zeichen unkodiert, das heißt, er kodiert sie nur einmal von ISO-8859-1 nach Richtung UTF-8, lässt aber die URL-Kodierung weg.

                      Beide Varianten sehen aber verkorkst aus, weil zweimal UTF-8-kodiert wurde. Der FF bringt lediglich noch die URL-kodierung hinzu. Es ist auf alle Fälle schon fast ein Wunder, dass wenigstens einmal Mister Wong richtige Umlaute erkennen konnte. Jedenfalls glaube ich nicht, dass das was der Bookmarksdienst da veranstaltet, so seine Richtigkeit hat.

                      Lo!

                2. Hallo Malcolm!

                  Biste eh am besten mit bedient. Ist ja nicht mal viel Arbeit, das meiste ist mit Copy&Paste erledigt.

                  Nun ja... ich mach' mir erstma ein Perl-Skript. Wenn das OK ist, mache ich ein JS dazu.

                  BTW: Kennt jemand die Parameternamen, die an die URL der gängigsten Social Bookmarks angehängt werden? Im Moment sieht mein Hash %sb so aus (die URIs habe ich von dj-tut.de geklaut, aber ich will mindestens 20 Dienste anbieten, damit $Kunde Ruhe gibt - Ferner, einmal geproggt, kann ich es weiteren $Kunden  anbieten):

                  my %sb = ('webnews'   => 'http://www.webnews.de/einstellen?url=',  
                            'delicious' => 'http://www.del.icio.us/post?v=4&noui&jump=closed&url=',  
                            'digg'      => 'http://digg.com/submit?phase=2&url=');
                  

                  Wie zu sehen ist, bei Webnews ist es ?url, bei del.icio.us kommen weitere davor, etc...

                  Viele Grüße aus Frankfurt/Main,
                  Patrick

                  --
                  _ - jenseits vom delirium - _

                     Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                  Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                  1. Hi!

                    my %sb = ('webnews'   => 'http://www.webnews.de/einstellen?url=',

                    'delicious' => 'http://www.del.icio.us/post?v=4&noui&jump=closed&url=',
                              'digg'      => 'http://digg.com/submit?phase=2&url=');

                      
                    Damit umgehst du das Title-Problem, weil du gleich gar keinen angibst? Oder willst du doch noch einen Linktext hinzufügen, bei dem du das gleiche oder zumindest ein ähnlich gelagertes Problem bekommen wirst: Feststellen zu müssen, welche Kodierung das Zielsystem haben möchte und diese dann für die Nicht-ASCII-Zeichen verwenden.  
                      
                      
                    Lo!
                    
                    1. Hallo dedlfix!

                      Damit umgehst du das Title-Problem, weil du gleich gar keinen angibst? Oder willst du doch noch einen Linktext hinzufügen, bei dem du das gleiche oder zumindest ein ähnlich gelagertes Problem bekommen wirst: Feststellen zu müssen, welche Kodierung das Zielsystem haben möchte und diese dann für die Nicht-ASCII-Zeichen verwenden.

                      Nein. Eine Subroutine sorgt dafür, dass zu dem aus dem Hash gewählten Dienst redirected wird:

                      print $cgi->redirect($sb{$cgi->param('sb')}.$_[0].'&title='.$cgi->param('t'));

                      wobei $cgi->param('t') der Title ist. Bis jetzt funzt™ das mit dem Schei?encoding.

                      Viele Grüße aus Frankfurt/Main,
                      Patrick

                      --
                      _ - jenseits vom delirium - _

                         Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                      Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                      1. Re!

                        Bis jetzt funzt™ das mit dem Schei?encoding.

                        Der Richtigkeit halber muss ich sagen, dass ich momentan nur das Perl-Skript teste und keine JavaScript-Links. Der noscript-Aufruf sieht in der HTML-Datei so aus:

                        <div id="bookmarks">  
                          <!--  Link mit JS: sb=delicious oder sb=wong -->  
                          <noscript><p><a href="/cgi-bin/bm.pl?sb=yahoo&p=http%3A%2F%2Fwww.example.com%2F&t=Firma+GmbH+–+Ihr+Partner+für++foo+bar!"><img src="/images/bm.png" alt="Social Bookmarks" /></a></p></noscript>  
                        </div>
                        

                        Bei Delicious kann ich wie gesagt nicht testen, weil nur ein Registrier-Formular zu sehen ist, aber bei webnews wird der Titel schon mal korrekt angezeigt. Bei Mister Wong kenne ich die Parameter noch nicht (kann ich aus den vorher zitierten @kostenlsoseDienste nicht entnehmen, da sie auch zu einer .php oder eine .htm-Datei umleiten).

                        Später, wenn ich ans JavaScript 'rangehe, werde ich sicher encodeUriComponents() brauchen, aber zunächst arbeite ich an der Perl-Ausgabe.

                        Viele Grüße aus Frankfurt/Main,
                        Patrick

                        --
                        _ - jenseits vom delirium - _

                           Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                        Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                  2. AOP,

                    BTW: Kennt jemand die Parameternamen, die an die URL der gängigsten Social Bookmarks angehängt werden?

                    Ich kann dir gleich ein paar posten -- also, wenn ich es schaffe, den inneren Schweinehund zu überwinden und zur Arbeit zu gehen :)

                    mfg

                    1. ARE!

                      Ich kann dir gleich ein paar posten -- also, wenn ich es schaffe, den inneren Schweinehund zu überwinden und zur Arbeit zu gehen :)

                      Hat ja Zeit, während Du des Nachts irgendwann den Schweinehund überwinden wirst, wird meiner schlafen gehen - ich lese es dann morgen ;)

                      BTW: Du hast bei Facebook und noch eins gar kein Title angegeben. Nehmen die keinen an, oder war Dir der entsprechende Parametername unbekannt?

                      P.S.: Nein, ich werde mich nicht bei jedem dieser Web2.0-Dingens registrieren, nur um zu sehen, wie das geht. Nein, nein, non merci!

                      Viele Grüße aus Frankfurt/Main,
                      Patrick

                      --
                      _ - jenseits vom delirium - _

                         Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                      Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                      1. hi,

                        Hat ja Zeit, während Du des Nachts irgendwann den Schweinehund überwinden wirst, wird meiner schlafen gehen

                        Schweinehund ist überwunden -- Gute nacht :)

                        BTW: Du hast bei Facebook und noch eins gar kein Title angegeben. Nehmen die keinen an, oder war Dir der entsprechende Parametername unbekannt?

                        War mir nicht bekannt, jedenfalls nicht zu der Zeit, als ich mein Script geschrieben hatte.
                        Für Facebook sollte es lauten: ?u=[[SITEURL]]&amp;t=[[TITLE]]

                        P.S.: Nein, ich werde mich nicht bei jedem dieser Web2.0-Dingens registrieren, nur um zu sehen, wie das geht. Nein, nein, non merci!

                        Ich hatte es bei einigen gemacht; und auch auf den betreffenden Seiten nach der Syntax gesucht, meistens vergebens. Dann habe ich einfach einen der Bookmark-Dienstleister in anspruch genommen und mir den Quelltext kopiert.

                        http://dj-tut.de/z_test/bookmark/
                        In dem Verzeichnis liegen auch ein Paar Bildchen, die ich schon angefangen hatte, zu sammeln.

                        mfg

                        1. Rere:

                          BTW: Du hast bei Facebook und noch eins gar kein Title angegeben. Nehmen die keinen an, oder war Dir der entsprechende Parametername unbekannt?

                          War mir nicht bekannt, jedenfalls nicht zu der Zeit, als ich mein Script geschrieben hatte.
                          Für Facebook sollte es lauten: ?u=[[SITEURL]]&amp;t=[[TITLE]]

                          Ich habe das gerade mit meinem Facebook-Profil getestet, für Facebook brauchst du keine Title, da Facebook die verlinkte Seite Intern aufruft und alle wichtigen Infos (Title und Description) selbst bezieht.
                          Setzt aber beim User aktiviertes Javascript voraus; ohne Javascript passiert -- so wie es das Web 2.0 auch vorschreibt -- garnichts.

                          mfg

                        2. ARE!

                          http://dj-tut.de/z_test/bookmark/
                          In dem Verzeichnis liegen auch ein Paar Bildchen, die ich schon angefangen hatte, zu sammeln.

                          WOW, ich bin beeeindruckt, super, vielen vielen Dank! Dann kann ich ja heute, wenn ich nicht zu oft auf Fahrt muss, mit den Scripten weiter machen!

                          Viele Grüße aus Frankfurt/Main,
                          Patrick

                          --
                          _ - jenseits vom delirium - _

                             Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                          Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
  3. Hallo Patrick,

    $Auftragnehmer, dem alles, was nach Web 2.0 klingt suspekt, ja fast zuwider ist
    [...] muss man sich registrieren, das ist $Auftragnehmer, dessen MisstrauenRank™ sehr hoch ist, auch etwas suspekt

    verdammt, der Schriftverkehr zu diesem Auftrag muss mir irgendwie abhandengekommen sein ...
    Echt, ich dachte bei den ersten Zeilen, du redest von mir. ;-)

    So long,
     Martin

    --
    Dem Philosoph ist nichts zu doof.
    1. Hallo Martin!

      verdammt, der Schriftverkehr zu diesem Auftrag muss mir irgendwie abhandengekommen sein ...
      Echt, ich dachte bei den ersten Zeilen, du redest von mir. ;-)

      Hehe... wobei Registrierung für mich kein Hindernis darstellt, wenn ich weiß, ich werde diesen Dienst öfters benutzen. Aber wenn ich eine Frage alle zwei Jahre habe, oder einen Dienst ein einziges Mal in Anspruch nehmen möchte, dann  k*** es mich regelrecht an ;)

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --
      _ - jenseits vom delirium - _

         Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
      Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
      1. Hallo,

        Echt, ich dachte bei den ersten Zeilen, du redest von mir. ;-)
        Hehe... wobei Registrierung für mich kein Hindernis darstellt, wenn ich weiß, ich werde diesen Dienst öfters benutzen. Aber wenn ich eine Frage alle zwei Jahre habe, oder einen Dienst ein einziges Mal in Anspruch nehmen möchte, dann  k*** es mich regelrecht an ;)

        exakt. So sehe ich das auch.
        Und wenn ich mich für einmalige Nutzung eines bestimmten Angebots unbedingt registrieren muss, gebe ich Phantasiedaten an. Wenn's denn sein soll, ist auch eine halbanonyme Wegwerf-Mailadresse schnell eingerichtet und ebenso schnell wieder entsorgt.

        Ciao,
         Martin

        --
        Wenn die Amerikaner eines Tages von jeder Tierart ein Pärchen nach Cape Canaveral treiben ...
        ja, DANN sollte man endlich misstrauisch werden.