Marja: Probleme mit QueryString

Hallo Leute,

ich versuche im PHP Werte an die gleiche Seite zu übergeben und diese dann abzufragen:
Der ganze Code sieht so aus (ist bloss ein erster Anfang):
<html>
<head><title>Testfile.php</title></head>
<body>

<?
  $x=4;
  for ($i=0; $i<$x; $i++) {
?>
<table border=1>
  <tr>
    <td>
      <a href="Testfile.php?testid=<?=$i?>"> Test<?=$i?></a>
    </td>
   </tr>
</table>

<?
  $strEx = $_SERVER["QUERY_STRING"];
  if (strEx=="1")
?>
  Der Wert von testid ist <?=strEx?>
<?
  else
?>
  Blubb
<?
}
?>

</body>
</html>

Naja wenn ich das mache, passiert bei Click auf die Links zwar ein reöffnen der Seite und das ? wird im browser auch richtig ausgegeben, aber die Ausgabewerte innerhalb der if - else erscheinen gar nicht.
Kann mir jemand helfen?

PS: im ASP klappt das ohne Probleme.
PPS: Antworten bitte per email, da ich selten in die Foren schauen kann.

  1. Hi,

    $strEx = $_SERVER["QUERY_STRING"];

    echo $strEx;

    if (strEx=="1")

    Mir wäre neu, dass strEx gleich "1" ist. In Python beispielsweise wäre die Erfolgschance dabei größer.

    PS: im ASP klappt das ohne Probleme.

    Ach herrje. ASP hat exakt die selbe Syntax und Funktionalität wie PHP? Wow!

    PPS: Antworten bitte per email,

    RTF</faq/>

    Cheatah

    1. $strEx = $_SERVER["QUERY_STRING"];

      echo $strEx;

      if (strEx=="1")

      Mir wäre neu, dass strEx gleich "1" ist. In Python beispielsweise wäre die Erfolgschance dabei größer.

      1. habe ich nicht nach Python gefragt und 2. warum sollte eine korrekt übergebene Variable nicht ="1" sein, wenn sie als "1" übergeben wird?

      PS: im ASP klappt das ohne Probleme.

      Ach herrje. ASP hat exakt die selbe Syntax und Funktionalität wie PHP? Wow!

      Nein, aber das oben geschilderte Problem habe ich in ASP nicht.
      Sprich, eine ASP Seite mit der Funktionalität klappt 100% auf Anhieb.
      Und ASP ist auch weitaus weniger umstaendlich als PHP.

      Und schlussendlich habe ich nach Rat gefragt und nach mehr oder weniger sinnlosem Gelaber in Antworten.

      1. $strEx = $_SERVER["QUERY_STRING"];

        echo $strEx;

        if (strEx=="1")

        Mir wäre neu, dass strEx gleich "1" ist. In Python beispielsweise wäre die Erfolgschance dabei größer.

        eine Zahl ist eine Zahl und kein STRING  "1" ist ein String und somit keine Zahl !!!

        PS: im ASP klappt das ohne Probleme.

        Ach herrje. ASP hat exakt die selbe Syntax und Funktionalität wie PHP? Wow!
        Nein, aber das oben geschilderte Problem habe ich in ASP nicht.
        Sprich, eine ASP Seite mit der Funktionalität klappt 100% auf Anhieb.
        Und ASP ist auch weitaus weniger umstaendlich als PHP.

        dann benutze ASP!!!

        Und schlussendlich habe ich nach Rat gefragt und nach mehr oder weniger sinnlosem Gelaber in Antworten.

        das Gelaber war nicht sinnlos, sondern sollte Dich selbst zum Nachdenken anregen ... wenn DU etwas im Forum stöberst wirst Du merken, wer wann wie antwortet, das war keinesfalls böse gemeint von Cheatah

        lg Romy

        1. Hi,

          $strEx = $_SERVER["QUERY_STRING"];

          echo $strEx;

          if (strEx=="1")

          Mir wäre neu, dass strEx gleich "1" ist. In Python beispielsweise wäre die Erfolgschance dabei größer.

          eine Zahl ist eine Zahl und kein STRING  "1" ist ein String und somit keine Zahl !!!

          Quatsch! Cheatah sagte, daß strEx nicht "1" ist.
          Lies richtig!

          PS: im ASP klappt das ohne Probleme.

          Ach herrje. ASP hat exakt die selbe Syntax und Funktionalität wie PHP? Wow!
          Nein, aber das oben geschilderte Problem habe ich in ASP nicht.
          Sprich, eine ASP Seite mit der Funktionalität klappt 100% auf Anhieb.
          Und ASP ist auch weitaus weniger umstaendlich als PHP.
          dann benutze ASP!!!

          Bringt Marja wohl kein bischen weiter, oder?

          Und schlussendlich habe ich nach Rat gefragt und nach mehr oder weniger sinnlosem Gelaber in Antworten.

          das Gelaber war nicht sinnlos, sondern sollte Dich selbst zum Nachdenken anregen ... wenn DU etwas im Forum stöberst wirst Du merken, wer wann wie antwortet, das war keinesfalls böse gemeint von Cheatah

          Also, mal ehrlich: Man kann doch nicht verlangen, daß hier jeder den Antwortenden kennt, sein Gefühlsleben aus dem Archiv erahnen soll...

          Natürlich war Cheatahs Antwort korrekt, denn er sagte, daß PHP nicht ASP ist, somit kann es nicht einfach substituiert werden, denn sonst könnte man ja ASP nehmen (was ich für eine wirkliche Sch...sprache halte).

          Generell sollte man versuchen, nicht alte Fehler dieses (an sich netten Forums) immer und immer wieder zu wiederholen, indem man mit drei Leuten auf einen Fragesteller einprescht. Und wenn man dies schon tut, um zum selber Nachdenken anzuregen, was an sich nicht falsch sein muß, so sollte man wenigstens die Antworten von jemanden, auf dessen Seite man sich zu stellen glaubt, RICHTIG lesen!

          Gruß,
          Reiner

          lg Romy

        2. $strEx = $_SERVER["QUERY_STRING"];

          echo $strEx;

          if (strEx=="1")

          Mir wäre neu, dass strEx gleich "1" ist. In Python beispielsweise wäre die Erfolgschance dabei größer.

          eine Zahl ist eine Zahl und kein STRING  "1" ist ein String und somit keine Zahl !!!

          Sorry Romy ich übergebe den STRING 1 und nicht die ZAHL!
          Und daher war meine Frage diesbezüglich schon korrekt.

          Nein, aber das oben geschilderte Problem habe ich in ASP nicht.
          Sprich, eine ASP Seite mit der Funktionalität klappt 100% auf Anhieb.
          Und ASP ist auch weitaus weniger umstaendlich als PHP.
          dann benutze ASP!!!

          Man Romy wenn ich ASP benutzen KÖNNTE, würde ich das sofort TUN. Aber auf dem Server gibts nun mal NUR php.
          Und das PHP Buch was ich habe ist auf dem Gebiet leider sehr schlecht, bzw. liefert null Informationen zum HowTo..

          Und schlussendlich habe ich nach Rat gefragt und nach mehr oder weniger sinnlosem Gelaber in Antworten.

          das Gelaber war nicht sinnlos, sondern sollte Dich selbst zum Nachdenken anregen ...

          Mann wenn ich ne Frage stelle, will ich ned zum Nachdenken angeregt werden, sondern eine Korrekte Antwort, entweder wies genau geht ODER wo ich Literatur finde zu dem Thema. Ergo war das sinnloses Gelaber, da ich in KEINSTER WEISE nach Python gefragt habe.

          wenn DU etwas im Forum stöberst wirst Du merken, wer wann wie antwortet, das war keinesfalls böse gemeint von Cheatah
          Nein, es war nur total sinnlos :(

          1. Hi,

            Man Romy wenn ich ASP benutzen KÖNNTE, würde ich das sofort TUN. Aber auf dem Server gibts nun mal NUR php.

            dann war Dein Hinweis darauf, dass Du etwas entsprechendes in ASP erfolgreich umzusetzen in der Lage bist, nutzfrei.

            Und das PHP Buch was ich habe ist auf dem Gebiet leider sehr schlecht, bzw. liefert null Informationen zum HowTo..

            Hast Du die Doku unter http://www.php.net konsultiert? Hast Du Debug-Ausgaben gemacht?

            Mann wenn ich ne Frage stelle, will ich ned zum Nachdenken angeregt werden, sondern eine Korrekte Antwort,

            Das eine schließt das andere nicht aus.

            entweder wies genau geht ODER wo ich Literatur finde zu dem Thema.

            Das einzige Problem, dass ich sah, ist dermaßen trivial, dass dazu vermutlich keine passende Literatur existiert. Analoge Probleme werden allenfalls im Duden gelöst.

            Ergo war das sinnloses Gelaber, da ich in KEINSTER WEISE nach Python gefragt habe.

            Hättest Du über meinen Vergleich nachgedacht, wärst Du vermutlich schnell darauf gekommen, dass in unterschiedlichen Sprachen unterschiedliche Syntax, Grammatik und Semantik besteht, was die Ursache Deines Problems darstellt.

            Nein, es war nur total sinnlos :(

            Es war nur dann sinnlos (im Sinne von "vergeudete Liebesmüh"), wenn Du nicht selbst zu denken bereit bist. Eine fertige Lösung wirst Du hier nicht erhalten, Du musst schon eigenständig zum Ziel kommen. Wir sind gerne bereit, Dich stetig in die richtige Richtung zu schubsen - wenn Du mehr erwartest, bist Du hier falsch.

            Cheatah

      2. Hi,

        Mir wäre neu, dass strEx gleich "1" ist. In Python beispielsweise wäre die Erfolgschance dabei größer.

        1. habe ich nicht nach Python gefragt

        in Python wird, im Gegensatz zu z.B. PHP, Variablen kein besonderes Identifikationsmerkmal vorangestellt.

        und 2. warum sollte eine korrekt übergebene Variable nicht ="1" sein, wenn sie als "1" übergeben wird?

        Erstens werden per HTTP _keine_ Variablen übergeben, und zweitens existiert in der von mir genannten Zeile kein Hinweis auf eine Variable. Schau sie Dir noch mal _genau_ an. Folge meinen Hinweisen, anstatt sie als "sinnloses Gelaber" abzutun. Auf diese Weise kommst Du nämlich sonst nie zu einer Lösung.

        Nein, aber das oben geschilderte Problem habe ich in ASP nicht.
        Sprich, eine ASP Seite mit der Funktionalität klappt 100% auf Anhieb.
        Und ASP ist auch weitaus weniger umstaendlich als PHP.

        Warum zur Hölle nimmst Du dann nicht einfach ASP?

        Cheatah, kopfschüttelnd

  2. Hallo,

    <?
      $x=4;
      for ($i=0; $i<$x; $i++) {
    ?>
    <table border=1>
      <tr>
        <td>
          <a href="Testfile.php?testid=<?=$i?>"> Test<?=$i?></a>
        </td>
       </tr>
    </table>

    <?
      $strEx = $_SERVER["QUERY_STRING"];

    wird hier nicht der ganze querystring abgefragt, du willst ja nur einen parameter? in asp request.servervariables("querystring")
    du brauchst: $$HTTP_GET_VARS("testid") in asp request.querystring("testid")

    if (strEx=="1")

    php verlangt klammerung if (vergleiche} { tu was} else { was anderes}

    ?>
      Der Wert von testid ist <?=strEx?>
    <?
      else
    ?>
      Blubb
    <?
    }

    diese klammer schließt erst das if, aber nicht die for schleife, das ist auch in asp so(<schlotter>das ich selbst gern benutze</schlotter>)

    ?>

    Odium