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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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>

    Comment


    • #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 ...

      Comment


      • #4
        Originally posted by KoopaOne View Post
        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.

        Originally posted by KoopaOne View Post
        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>

        Comment


        • #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

          Comment


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

            Comment


            • #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 ...

              Comment


              • #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?

                Comment


                • #9
                  Originally posted by KoopaOne View Post
                  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]

                  Comment


                  • #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 ....

                    Comment


                    • #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]

                      Comment


                      • #12
                        Originally posted by AmicaNoctis View Post
                        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!

                        Comment


                        • #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]

                          Comment

                          Working...
                          X