asdf: & in href verwirrt Netscape un Mozilla

Hallo Selfhtml!

Folgendes:

Ich habe vor einigen Tagen herausgefunden das & im href von einem Link nicht dem Standard entspricht. Also habe ich alle & mit & ersetzt. Beim IE functioniert alles es wird sogar in der Adressleiste steht statt & & angezeigt, doch der Netscape kommt damit überhaupt nciht zurecht, sowohl NN4.7 also auch NN6, genauso bei Mozilla. Weiß einer ob es eine Möglichkeit gibt dieses Problem zu umgehen, ohne eine eigene Funktion zu erstellen die statt & mit einem anderen Zeichen die einzelnen Parameter der URL trennt?

Infos: Ich habe keinen eigenen Server zu hause stehen.

MFG Robert

  1. »»Weiß einer ob es eine Möglichkeit gibt dieses Problem zu umgehen, ohne eine eigene Funktion zu erstellen die statt & mit einem anderen Zeichen die einzelnen Parameter der URL trennt?

    Klingt vielleicht platt, aber warum lässt du das "&" nicht einfach als "&" ? Stört doch anscheinend keinen...

    MfG

    Mastershrimp

    1. Hallo,

      Klingt vielleicht platt, aber warum lässt du das "&" nicht einfach als "&" ? Stört doch anscheinend keinen...

      Doch! Sobald & und Parametername eine bekannte Entity-Referenz ergeben, macht nicht mehr nur der Validator Ärger.

      an asdf: Zeig mal die Seite, auf der dieses Problem auftreten soll. Da das & wie jede andere Entity-Referenz auch (sofern bekannt) zu dem entsprechenden Zeichen umgesetzt werden sollte, sollte es absolut keine Probleme geben.

      Viele Grüße
      Carsten

      1. Hallo Carsten,
        auch dir danke ich.

        die Seite lautet:

        http://ikt.bg9.at/~rchiryai/az/index.php

        es wird weitergeleitet auf
        http://ikt.bg9.at/~rchiryai/az/index.php?seite=newsaus
        wenn man seite=newsaus löscht und dann
        http://ikt.bg9.at/~rchiryai/az/index.php?pass=irgendwas
        hinschreibt
        wird vom Code automatisch erkannt das "seite" keinen inhalt hat und leitet einfach auf aktuelle SELFPHP+QueryString+&seite=newsaus also:
        http://ikt.bg9.at/~rchiryai/az/index.php?pass=irgendwas&seite=newsaus

        dann nochmal "seite" wird nicht erkannt und gleich weiterleite
        und dann.....

        aber du hast mir die Lösung gesagt:

        Bei weiterleitung mit self.location.href="irendwas&irgenwas" wird das & für den browser wahrscheinlich nciht als & sondern als & gelesen.

        Danke
        Robert

        MFG Robert

        1. Hallo asdf,

          Du maskierst ein wenig viel. ;-)
          So schaut die URL in der Adresszeile nach dem LOGIN aus:
          http://ikt.bg9.at/~rchiryai/az/index.php?seite=newsaus&&nick=Nickname&pass=3e45af4ca27ea2b03fc6183af40ea112
          Merkste was?

          Gruß

          Kurt

          --
          "Unzufriedenheit ist der erste Schritt in der Entwicklung von Menschen und Voelkern."  (Oscar Wilde; ir. Dramatiker, Erzaehler u. Lyriker; 1854-1900)
          http://elektro-dunzinger.at
          http://shop.elektro-dunzinger.at
          1. Hallo!

            So schaut die URL in der Adresszeile nach dem LOGIN aus:
            http://ikt.bg9.at/~rchiryai/az/index.php?seite=newsaus&&nick=Nickname&pass=3e45af4ca27ea2b03fc6183af40ea112

            Habe ich vor einpar minuten erfahren aber trotzdem auch dir danke.
            MFG Robert

            Gute Nacht(Schicht)!

        2. Bei weiterleitung mit self.location.href.....

          blödsinn
          blödsinn
          Robert

    2. Hallo,
      danke für die Antwort.

      Klingt vielleicht platt, aber warum lässt du das "&" nicht einfach als "&" ? Stört doch anscheinend keinen...

      Es ist platt :)

      Leider stört es mich.
      Auch wenn es keine Sau da draußen interessiert ob meine Seite validiert oder nicht ist, will ich sie CSS und HTML 4.01 validiert haben.
      Außerdem habe ich das Logo von W3c auf meiner Seite stehen. :)

      MFG Robert

  2. Hi,

    Ich habe vor einigen Tagen herausgefunden das & im href von einem Link nicht dem Standard entspricht. Also habe ich alle & mit & ersetzt. Beim IE functioniert alles es wird sogar in der Adressleiste steht statt & & angezeigt, doch der Netscape kommt damit überhaupt nciht zurecht, sowohl NN4.7 also auch NN6, genauso bei Mozilla.

    Dann machst Du irgendwas falsch.
    Da Du aber keinerlei Code vorzeigst, ist natürlich nicht festzustellen, was.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.mud-guard.de/
    1. Hallo  MudGuard,

      Da Du aber keinerlei Code vorzeigst, ist natürlich nicht

      der href inhalt wird von einer Funktion in PHP erstellt, deswegen kannich dir keinen Quelltext schicken, es sei den ich schike dir meine ganzen includes und den index.php quellcode.
      Aber ich muss dir recht geben, ich hätte den ablauf bis zum fehler besser erklären sollen.
      Also das einzige was ich dir sagen kann ist das am Ende:

      http://127.0.0.1/az/index.php?nick=DerRobert&pass=2d718a699af65d3844fd217ea94b8426&seite=newsaus

      in der Adressleiste steht und der Parameter "seite" nicht erkannt wird.

      Ich hoffe du kannst daraus was schließen.

      Danke und FG RObert

      1. Hallo asdf,

        der href inhalt wird von einer Funktion in PHP
        erstellt, deswegen kannich dir keinen Quelltext
        schicken, es sei den ich schike dir meine ganzen
        includes und den index.php quellcode.

        'Speichern Unter' ;)

        Also das einzige was ich dir sagen kann ist das
        am Ende:

        http://127.0.0.1/az/index.php?nick=DerRobert&pass=2d718a699af65d3844fd217ea94b8426&seite=newsaus

        in der Adressleiste steht

        Dann hast du den &-Parameter wahrscheinlich doppelt
        maskiert: & Schau dir die HTML-Ausgabe mal
        im Browser per 'Quelltext Anzeigen' bzw. per
        'view-source:url' an.

        Gruesse,
         CK

        --
        Es ist uns nicht möglich, in einem Bereich unseres Lebens richtig zu verhalten, wenn wir in allen anderen falsch handeln. Das Leben ist ein unteilbares Ganzes.
        1. Ja.

          Dann hast du den &-Parameter wahrscheinlich doppelt
          maskiert

          Stimmt :)

  3. Hallo asdf,

    Ich habe vor einigen Tagen herausgefunden das &
    im href von einem Link nicht dem Standard
    entspricht. Also habe ich alle & mit &
    ersetzt.

    Gut! :)

    Beim IE functioniert alles es wird sogar in der
    Adressleiste steht statt & & angezeigt, doch
    der Netscape kommt damit überhaupt nciht zurecht,
    sowohl NN4.7 also auch NN6, genauso bei Mozilla.

    Was heisst 'sie kommen damit nicht zurecht'?
    Genauere Beschreibung, bitte. Ich habe keine
    Glaskugel. Ich kann nur aus persoenlicher Erfahrung
    sagen, dass das voellig unproblematisch ist und
    ich noch nie Probleme damit hatte.

    Weiß einer ob es eine Möglichkeit gibt dieses
    Problem zu umgehen, ohne eine eigene Funktion zu
    erstellen die statt & mit einem anderen Zeichen
    die einzelnen Parameter der URL trennt?

    Statt dem & kannst du auch das ; nehmen. Der
    Standard sieht das vor, und sowohl PHP als auch
    Perls CGI.pm koennen das. Von anderen Sprachen
    weiss ich es nicht.

    Gruesse,
     CK

    --
    To define recursion, we must first define recursion.
    1. Hallo!

      Danke für die Antwort

      Statt dem & kannst du auch das ; nehmen. Der
      Standard sieht das vor, und sowohl PHP als auch
      Perls CGI.pm koennen das. Von anderen Sprachen
      weiss ich es nicht.

      Damit sollte ich mein Problem auch lösen.
      Ich sehe, hätte ich bei www.W3.org noch zwei zeilen weitergelesen hätte ich nicht mehr hier fragen müssen.

      Ich danke allen für die Schnelle Hilfe
      mfg Robert (asdf)

    2. Hallo,

      Statt dem & kannst du auch das ; nehmen. Der
      Standard sieht das vor, und sowohl PHP als auch
      Perls CGI.pm koennen das. Von anderen Sprachen
      weiss ich es nicht.

      versteh ich das jetzt richtig,dann könnte ich also mit meinem html-editor
      phase5 all meine html seiten(ca. 800) sowie perl cgis (ca.20)nach dem zeichen & suchen und es durch ;
      ersetzen lassen?
      Gruss vom Alain

      --
      ..."Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)
      1. Hi,

        versteh ich das jetzt richtig,dann könnte ich also mit meinem html-editor
        phase5 all meine html seiten(ca. 800) sowie perl cgis (ca.20)nach dem zeichen & suchen und es durch ;
        ersetzen lassen?

        Aber nur die &, die Parameter in der URL trennen, nicht die, die eine Entity einleiten.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.mud-guard.de/
        1. Hallo,

          versteh ich das jetzt richtig,dann könnte ich also mit meinem html-editor
          phase5 all meine html seiten(ca. 800) sowie perl cgis (ca.20)nach dem zeichen & suchen und es durch ;
          ersetzen lassen?
          Aber nur die &, die Parameter in der URL trennen, nicht die, die »» eine Entity einleiten.

          Wenn ein Link auf http://irgendwas.at/index.php?a=10;b=5 zeigt
          wirst du mit $_GET["b"] nichts erreichen. Da müsstest du schon mit $QUERY_STRING dir selbst etwas basteln, das als trennzeichen ; nimmt.
          Ich glaub es geht auch, wenn man am Webserver rumarbeitet aber ich glaube nicht, dass du die Rechte dafür hast.

          MFG asdf(Robert)

          1. Hi,

            versteh ich das jetzt richtig,dann könnte ich also mit meinem html-editor
            phase5 all meine html seiten(ca. 800) sowie perl cgis (ca.20)nach dem zeichen & suchen und es durch ;
            ersetzen lassen?
            Aber nur die &, die Parameter in der URL trennen, nicht die, die eine Entity einleiten.

            Und auch nicht die, die z.B. im Javascript als Operator benutzt werden...

            Wenn ein Link auf http://irgendwas.at/index.php?a=10;b=5 zeigt
            wirst du mit $_GET["b"] nichts erreichen. Da müsstest du schon mit $QUERY_STRING dir selbst etwas basteln, das als trennzeichen ; nimmt.
            Ich glaub es geht auch, wenn man am Webserver rumarbeitet aber ich glaube nicht, dass du die Rechte dafür hast.

            Ich weiß nicht mehr, ob ich das mal in meiner PHP.ini geändert hab, bei mir steht da
            arg_separator.input = ";&"
            drin - und damit funktioniert es. Steht so auch in der php.ini-dist und php.ini-recommended drin, die sich im PHP-Installverzeichnis befinden (mit dem selben Datei-Datum wie die anderen Dateien - also höchstwahrscheinlich unverändert).

            cu,
            Andreas

            --
            MudGuard? Siehe http://www.mud-guard.de/
            1. hi,

              Ich weiß nicht mehr, ob ich das mal in meiner PHP.ini geändert hab, bei mir steht da
              arg_separator.input = ";&"
              drin - und damit funktioniert es. Steht so auch in der php.ini-dist und php.ini-recommended drin, die sich im PHP-Installverzeichnis befinden (mit dem selben Datei-Datum wie die anderen Dateien - also höchstwahrscheinlich unverändert).

              laut manual ist aber nur "&" der default-wert dieser einstellung, siehe http://de.php.net/manual/en/configuration.directives.php.

              gruss,
              wahsaga