Thomas: Variable vom Header in den Body

Hi,
ich haenge einfach fest:

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<?
$x = true;
global $y = true;
</head>

<?
welchen Wert haben x und y?
?>

</body>
</html>

Wie bekomme ich den Wert der Variablen vom Header in den Body?
1. Ich kann in diesem Fall keine Funktionen verwenden!
2. Ich kann das Script aus dem Header nicht in dem Script im Body unterbringen oder umgekehrt!

Man ich steh echt auf dem Schlauch...

Danke!

-ich

  1. Huhu Thomas

    ich haenge einfach fest:

    ich glaube Du machst Dir in diesem Fall mehr Gedanken als nötig.
    Probier es einfach mal aus.

    Wenn innerhalb einer HTML-Seite mehrere PHP-Bereiche definiert sind
    haben die alle den gleichen Geltungsbereich (scope).

    Viele Grüße

    lulu

    1. Huhu Thomas

      ich haenge einfach fest:
      ich glaube Du machst Dir in diesem Fall mehr Gedanken als nötig.
      Probier es einfach mal aus.
      Wenn innerhalb einer HTML-Seite mehrere PHP-Bereiche definiert sind
      haben die alle den gleichen Geltungsbereich (scope).
      Viele Grüße
      lulu

      <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
      <html>
      <head>
      <title>commentcaller</title>

      <script language="JavaScript">
      var reporturl="http://www.irgendwas.com";
      var username="thomas";
      </script>

      <?
       $varindex = count($HTTP_POST_VARS);
       if($varindex != "0")
        {
         $username = $HTTP_POST_VARS["username"];
         $reporturl = $HTTP_POST_VARS["reporturl"];
        }
       else
       {
        print ("<script language="JavaScript">");
        print ("document.write("<form action='commentcaller.php' method='post' name='commentcheck'>");");
        print ("document.write("<input type='hidden' name='username' value='" + username + "'>");");
        print ("document.write("<input type='hidden' name='reporturl' value='" + reporturl + "'>");");
        print ("document.commentcheck.submit();");
        print ("document.write("</form>");");
        print ("</script>");
       }

      $filename = $username . ".txt";
      $fileexists = file_exists($filename);
      if ($fileexists==true) {
       $file = fopen($filename, "r");
       $comment = fread($file, filesize($filename));
       fclose($file);
       $comment = trim ($comment);
       print($comment);
       if ($comment != "") {
       $commentexists = true;
       }
       else {
       $commentexists = false;
       }
      }
      $HTTP_POST_VARS["username"] = "";
      $HTTP_POST_VARS["reporturl"]= "";
      ?>

      </head>
      <body>

      <?
      if ($commentexits = true) {
       print ("Es besteht bereits ein Kommentar");
      }
      else {
      print ("kein Kommentar");
      }
      ?>

      </body>
      </html>

      Zum Hintergrund:
      Ich habe JScript Variablen die ich an PHP uebergeben muss. Dadurch die IF Abfragen am Anfang. Beim erstem aufruf werden die Vars uebergeben und dann in PHP vars geschrieben. Dies geschieht alles im Header. Die PHP var ($commentexists) im Header frage ich nun im Body ab, dort hat Sie aber immer den Wert true, auch wenn sie die else Variante der letzten Header IF-Abfrage durchlaeuft. Wenn ich die Variable $comment im body ausgeben moechte, nur zum testen, bekomme ich die Fehlermeldung Variable nicht definiert...

      Wie gesagt, ich steh echt auf dem Schlauch!!!

      Aber trotzdem schonmal DANKE!

      1. Die PHP var ($commentexists) im Header frage ich nun im Body ab, dort hat Sie aber immer den Wert true, auch wenn sie die else Variante der letzten Header IF-Abfrage durchlaeuft.

        if ($commentexits = true) {

        ---------------------^

        Typische Stolperfalle :) Du wolltest da doch nicht wirklich eine Zuweisung machen, oder?

        Gruß,
          soenk.e

        1. Die PHP var ($commentexists) im Header frage ich nun im Body ab, dort hat Sie aber immer den Wert true, auch wenn sie die else Variante der letzten Header IF-Abfrage durchlaeuft.

          if ($commentexits = true) {
          ---------------------^

          Typische Stolperfalle :) Du wolltest da doch nicht wirklich eine Zuweisung machen, oder?

          Gruß,
            soenk.e

          GGRRR HASS!!!!!!!!!

          Danke, ich haette garantiert noch bis morgen daran gebastelt!
          Das ist das Problem wenn man sich andauernd mit anderen Programmiersprachen beschaeftigt, anstatt wenigstens eine zu beherschen...

          Nochmals Danke!

  2. <head>
    <?
    $x = true;
    global $y = true;

    ?>
    </head>
    <body>

    Abgesehen davon erkenne ich bei diesem konkreten Beispiel keinen Grund, $y als global zu deklarieren. $y ist hier bereits global. Und angesehen davon, würde ich das statement "global" sicherheitshalber nicht mit einer Zuweisung verbinden.

    <?
    welchen Wert haben x und y?
    ?>

    var_dump($x,$y); /* ziemlich straightforward, oder? ;-> */

    1. Ich kann das Script aus dem Header nicht in dem Script im
      Body unterbringen oder umgekehrt!

    Das gesamte file ist das script, der scope (=Gültigkeitsbereich von Variablen) endet nicht am ?> sondern erst am EOF (von sessions etc. einmal abgesehen).