Warum wird aus "&part=" ein "∂=" ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Warum wird aus "&part=" ein "∂=" ?

    Ich habe ein total verrücktes Problem:

    Ich setze einen String zusammen:
    PHP-Code:
    $seite="detail.php?lang=" $the_language "&mid=" $row[6] . "&part=" $part "&tvshow=" urlencode($row[$row_searchfield]) . "&id=" $row[0]; 
    Herauskommen tut:
    detail.php?lang=de&mid=∂=p&tvshow=&id=

    lol, ich kann dieses Zeichen nichtmal darstellen "∂", d.h. er macht aus "&part="--> "∂="

    Habe diese Codezeile in zig Seiten, alle sind als UTF-8 abgespeichert ...

    Auf einer anderen Seite habe ich so eine ähnliche Zeile:
    PHP-Code:
    if ($iLauf>$anzahl_items) echo "<a href='detail.php?lang=" $_GET['lang'] . "&id=" $news['id'] . "&mid=" $news['mid'] . "&tvshow=" $news[$order] . "&part=" $part "'>" $news[$order] . "</a> (<i>" $news[$order2] . "</i>)<br>\n"
    die aber einwandfrei funktioniert. Der Header ist bei beiden Dateien identisch, da über eine Funktion eingebunden ...

  • #2
    Jag mal deinen HTML-Code durch den W3C-Validator, dann wirst du feststellen, dass er über deine & meckert. Ein kaufmännisches Und wird in HTML nämlich als &amp; geschrieben.

    Falsch:
    HTML-Code:
    <a href="script.php?foo=1&bar=2">click</a>
    Richtig:
    HTML-Code:
    <a href="script.php?foo=1&amp;bar=2">click</a>

    Kommentar


    • #3
      Das erklärt aber nicht wirklich, warum es auf allen Seiten funktioniert, nur auf dieser einen nicht, bzw. warum es mit allen anderen Begriffen, wie "&id", "&mid" etc. funktioniert.
      Außerdem setze ich so eine URL zusammen, ersetze ich da durch das "&", erkennt das Script die Variable "part" nicht mehr ...

      Kommentar


      • #4
        Zitat von KoopaOne Beitrag anzeigen
        Das erklärt aber nicht wirklich, warum es auf allen Seiten funktioniert, nur auf dieser einen nicht, bzw. warum es mit allen anderen Begriffen, wie "&id", "&mid" etc. funktioniert.
        Weil die Browser so gnädig sind und diese Fehler ignorieren. Anscheinend nicht immer.

        Zitat von KoopaOne Beitrag anzeigen
        Außerdem setze ich so eine URL zusammen, ersetze ich da durch das "&", erkennt das Script die Variable "part" nicht mehr ...
        Glaub ich dir nicht:

        PHP-Code:
        <pre><?php print_r($_GET); ?></pre>
        <a href="<?php echo basename(__FILE__); ?>?foo=1&amp;bar=2&amp;part=3">click me</a>

        Kommentar


        • #5
          Ok, ich verstehe es trotzdem nicht. Weil, wenn ich
          PHP-Code:
          $seite="detail.php?lang=" $the_language "&mid=" $row[6] . "&part=" $part "&tvshow=" urlencode($row[$row_searchfield]) . "&id=" $row[0];
          echo 
          $seite "<br>"
          mache, kommt derselbe blödsinn raus:

          detail.php?lang=de&mid=0455275∂=p&tvshow=&id=332

          Kommentar


          • #6
            Du sollst &amp; statt & schreiben!!!

            Kommentar


            • #7
              Ich habe jetzt einfach die variable "part" durch "category" ersetzt.
              Würde mich trotzdem interessieren, warum das auf demselben Webserver, mit demselben Browser einmal funktioniert und einmal nicht ...

              Danke trotzdem!

              P.S.: Anscheinend interpretiert er "&part" als "&part;" was diesem komischen Zeichen entspricht ...

              Kommentar


              • #8
                Nochmals: & alleine ist falsch. F-A-L-S-C-H. Schreib &amp;!!!!!

                Meine Güte, wie kann man nur so lernresistent sein?

                Du willst mit Gewalt dein falsches HTML durchsetzen, oder wie?

                Kommentar


                • #9
                  Zitat von KoopaOne Beitrag anzeigen
                  Anscheinend interpretiert er "&part" als "&part;" was diesem komischen Zeichen entspricht ...
                  Natürlich tut er das, er interpretiert ja auch "&category" nur deswegen als "&amp;category", weil es zufällig keine Entität "category" gibt und er versucht, aus deinem ungültigen Quellcode noch was brauchbares zu machen.

                  Dein Durchhaltevermögen, alle Hinweise zu ignorieren, die den Fehler beheben, ist bemerkenswert
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Sorry, wenn ich lernresisten daherkomme, aber das bin ich beim besten Willen nicht.
                    Natürlich habe ich das versucht, wenn ich
                    PHP-Code:
                    $seite="detail.php?lang=" $the_language "&amp;mid=" $row[6] . "&amp;p=" $part "&amp;tvshow=" urlencode($row[$row_searchfield]) . "&amp;id=" $row[0]; 
                    mache und danach:
                    PHP-Code:
                    echo "<a href='" $seite "'>Forward</a>"
                    funktioniert das einwandfrei. Aber ich gebe $seite an ein Forward-Script weiter, wo es dann eben nicht funktioniert.
                    PHP-Code:
                    function forward($seite)
                    {
                        echo 
                    "<script language='javascript' type='text/javascript'>\n";
                        echo 
                    "<!-- // JavaScript-Bereich für ältere Browser auskommentieren\n";
                        echo 
                    "window.location.href = '" $seite "'\n";
                        echo 
                    "// -->\n";
                        echo 
                    "</script>\n";

                    Nochmals Entschuldigung, falls ich "dumm" daherkomme ....

                    Kommentar


                    • #11
                      Dann musst du $seite so lassen wie es vorher war und im Link nicht als $seite sondern als htmlspecialchars($seite) einfügen und an das Forwardscript unverändert als $seite übergeben.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Zitat von AmicaNoctis Beitrag anzeigen
                        Dann musst du $seite so lassen wie es vorher war und im Link nicht als $seite sondern als htmlspecialchars($seite) einfügen und an das Forwardscript unverändert als $seite übergeben.
                        Konnte ich ja nicht, weil er "&part=" als "&part;=" interpretiert hat!

                        Kommentar


                        • #13
                          Deswegen ja auch htmlspecialchars. Lies es doch mal bitte komplett und wenn du es nicht verstanden haben solltest, probier's einfach aus.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar

                          Lädt...
                          X